mirror of
https://gitea.msk.dinamika-avia.ru/Constanta-Design/RRJServer.git
synced 2026-03-27 19:45:43 +03:00
Мессенджер: время
This commit is contained in:
@@ -77,15 +77,17 @@ public:
|
||||
QString fromId;//формат id-typeId
|
||||
QString toId;//формат id-typeId
|
||||
QString Text;
|
||||
QString timeStr;
|
||||
|
||||
//TypeId
|
||||
//0 - инструктор, 1 - обучаемый
|
||||
ClientMessage(){}
|
||||
ClientMessage(QString fromId, QString toId, QString text)
|
||||
ClientMessage(QString fromId, QString toId, QString text, QString timeStr = "")
|
||||
{
|
||||
this->fromId = fromId;
|
||||
this->toId = toId;
|
||||
this->Text = text;
|
||||
this->timeStr = timeStr;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -38,9 +38,9 @@ MessangerWidget *MessangerController::newWidget(QWidget *parent, User* user, QVB
|
||||
for(MessageOfMessanger msg : *list)
|
||||
{
|
||||
if(msg.flLocal)
|
||||
msgWdgt->showSendedMessage(ClientMessage(GUIclientId, QString::number(id_user), msg.text));
|
||||
msgWdgt->showSendedMessage(ClientMessage(GUIclientId, QString::number(id_user), msg.text, msg.time.toString()));
|
||||
else
|
||||
msgWdgt->showReceivedMessage(ClientMessage(QString::number(id_user), GUIclientId, msg.text));
|
||||
msgWdgt->showReceivedMessage(ClientMessage(QString::number(id_user), GUIclientId, msg.text, msg.time.toString()));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -98,8 +98,11 @@ void MessangerController::slot_sendMessage(ClientMessage clientMessage)
|
||||
MessageOfMessanger msg;
|
||||
msg.flLocal = true;
|
||||
msg.text = clientMessage.Text;
|
||||
msg.time = QTime::currentTime();
|
||||
list->append(msg);
|
||||
|
||||
clientMessage.timeStr = msg.time.toString();
|
||||
|
||||
for(MessangerWidget* widget : listWidgets)
|
||||
{
|
||||
widget->showSendedMessage(clientMessage);
|
||||
@@ -122,8 +125,11 @@ void MessangerController::slot_receiveMessage(ClientMessage clientMessage)
|
||||
MessageOfMessanger msg;
|
||||
msg.flLocal = false;
|
||||
msg.text = clientMessage.Text;
|
||||
msg.time = QTime::currentTime();
|
||||
list->append(msg);
|
||||
|
||||
clientMessage.timeStr = msg.time.toString();
|
||||
|
||||
for(MessangerWidget* widget : listWidgets)
|
||||
{
|
||||
widget->showReceivedMessage(clientMessage);
|
||||
|
||||
@@ -10,6 +10,7 @@ struct MessageOfMessanger
|
||||
{
|
||||
QString text;
|
||||
bool flLocal;
|
||||
QTime time;
|
||||
};
|
||||
|
||||
class MessangerController : public QObject
|
||||
|
||||
@@ -59,13 +59,13 @@ int MessangerWidget::getIDuserRemote()
|
||||
void MessangerWidget::showSendedMessage(ClientMessage clientMessage)
|
||||
{
|
||||
if(currGUIclientId == clientMessage.fromId)
|
||||
tabDialogMessenger->addMsgWidgetLocal(clientMessage.Text);
|
||||
tabDialogMessenger->addMsgWidgetLocal(clientMessage.Text, clientMessage.timeStr);
|
||||
}
|
||||
|
||||
void MessangerWidget::showReceivedMessage(ClientMessage clientMessage)
|
||||
{
|
||||
if(QString::number(userRemote.getID()) == clientMessage.fromId)
|
||||
tabDialogMessenger->addMsgWidgetRemote(clientMessage.Text);
|
||||
tabDialogMessenger->addMsgWidgetRemote(clientMessage.Text, clientMessage.timeStr);
|
||||
}
|
||||
|
||||
void MessangerWidget::addTabDialogMessenger(User user)
|
||||
|
||||
@@ -25,28 +25,34 @@ MsgWidget::~MsgWidget()
|
||||
|
||||
void MsgWidget::setAligneAvatarLeft()
|
||||
{
|
||||
ui->horizontalLayout->removeWidget(ui->textEdit);
|
||||
ui->horizontalLayout->removeItem(ui->verticalLayout_2);
|
||||
ui->horizontalLayout->removeItem(ui->verticalLayout);
|
||||
ui->horizontalLayout->removeItem(ui->horizontalLayout_2);
|
||||
|
||||
ui->horizontalLayout->addLayout(ui->verticalLayout);
|
||||
ui->horizontalLayout->addWidget(ui->textEdit);
|
||||
ui->horizontalLayout->addLayout(ui->verticalLayout_2);
|
||||
ui->horizontalLayout->addLayout(ui->horizontalLayout_2);
|
||||
|
||||
ui->textEdit->setObjectName("MsgWidgetLocal");
|
||||
ui->lbl_time->setObjectName("MsgWidgetLblTimeLocal");
|
||||
|
||||
ui->lbl_time->setAlignment(Qt::AlignLeft);
|
||||
}
|
||||
|
||||
void MsgWidget::setAligneAvatarRight()
|
||||
{
|
||||
ui->horizontalLayout->removeWidget(ui->textEdit);
|
||||
ui->horizontalLayout->removeItem(ui->verticalLayout_2);
|
||||
ui->horizontalLayout->removeItem(ui->verticalLayout);
|
||||
ui->horizontalLayout->removeItem(ui->horizontalLayout_2);
|
||||
|
||||
ui->horizontalLayout->addLayout(ui->horizontalLayout_2);
|
||||
ui->horizontalLayout->addWidget(ui->textEdit);
|
||||
ui->horizontalLayout->addLayout(ui->verticalLayout_2);
|
||||
ui->horizontalLayout->addLayout(ui->verticalLayout);
|
||||
|
||||
ui->textEdit->setObjectName("MsgWidgetRemote");
|
||||
ui->lbl_time->setObjectName("MsgWidgetLblTimeRemote");
|
||||
|
||||
ui->lbl_time->setAlignment(Qt::AlignRight);
|
||||
}
|
||||
|
||||
|
||||
@@ -67,6 +73,11 @@ void MsgWidget::setText(QString text)
|
||||
ui->textEdit->setText(text);
|
||||
}
|
||||
|
||||
void MsgWidget::setTime(QString timeStr)
|
||||
{
|
||||
ui->lbl_time->setText(timeStr);
|
||||
}
|
||||
|
||||
void MsgWidget::on_textEdit_textChanged()
|
||||
{
|
||||
QString text = ui->textEdit->toPlainText();
|
||||
@@ -81,12 +92,12 @@ void MsgWidget::on_textEdit_textChanged()
|
||||
{//Не помещается в одну строку
|
||||
textRect = metricsFont.boundingRect(QRect(0, 0, widthEdit, 10), Qt::TextWordWrap, text);
|
||||
ui->textEdit->setFixedHeight(textRect.height() + X);
|
||||
this->setFixedHeight(textRect.height() + X + 20);
|
||||
this->setFixedHeight(textRect.height() + X + 20 + 30);
|
||||
}
|
||||
else
|
||||
{//В одну строку
|
||||
ui->textEdit->setFixedWidth(textRect.width() + X);
|
||||
ui->textEdit->setFixedHeight(textRect.height() + X);
|
||||
this->setFixedHeight(textRect.height() + X + 20);
|
||||
this->setFixedHeight(textRect.height() + X + 20 + 30);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -29,6 +29,7 @@ public:
|
||||
void setWidth(int width);
|
||||
|
||||
void setText(QString text);
|
||||
void setTime(QString timeStr);
|
||||
|
||||
private slots:
|
||||
void on_textEdit_textChanged();
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>400</width>
|
||||
<height>91</height>
|
||||
<height>212</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="sizePolicy">
|
||||
@@ -59,23 +59,34 @@
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QTextEdit" name="textEdit">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="verticalScrollBarPolicy">
|
||||
<enum>Qt::ScrollBarAlwaysOff</enum>
|
||||
</property>
|
||||
<property name="horizontalScrollBarPolicy">
|
||||
<enum>Qt::ScrollBarAlwaysOff</enum>
|
||||
</property>
|
||||
<property name="sizeAdjustPolicy">
|
||||
<enum>QAbstractScrollArea::AdjustIgnored</enum>
|
||||
</property>
|
||||
</widget>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_2">
|
||||
<item>
|
||||
<widget class="QTextEdit" name="textEdit">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="verticalScrollBarPolicy">
|
||||
<enum>Qt::ScrollBarAlwaysOff</enum>
|
||||
</property>
|
||||
<property name="horizontalScrollBarPolicy">
|
||||
<enum>Qt::ScrollBarAlwaysOff</enum>
|
||||
</property>
|
||||
<property name="sizeAdjustPolicy">
|
||||
<enum>QAbstractScrollArea::AdjustIgnored</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="lbl_time">
|
||||
<property name="text">
|
||||
<string>--:--</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
||||
|
||||
@@ -20,7 +20,7 @@ TabDialogMessenger::~TabDialogMessenger()
|
||||
|
||||
}
|
||||
|
||||
void TabDialogMessenger::addMsgWidgetLocal(QString text)
|
||||
void TabDialogMessenger::addMsgWidgetLocal(QString text, QString timeStr)
|
||||
{
|
||||
QListWidgetItem *listWidgetItem = new QListWidgetItem();
|
||||
QString avatar = ":/resources/icons/instructor.png";
|
||||
@@ -38,6 +38,7 @@ void TabDialogMessenger::addMsgWidgetLocal(QString text)
|
||||
setItemWidget(listWidgetItem, msgWidget);
|
||||
|
||||
msgWidget->setText(text);
|
||||
msgWidget->setTime(timeStr);
|
||||
|
||||
//Корректировка высоты item
|
||||
listWidgetItem->setSizeHint (QSize(10, msgWidget->height()));
|
||||
@@ -45,7 +46,7 @@ void TabDialogMessenger::addMsgWidgetLocal(QString text)
|
||||
scrollToItem(listWidgetItem);
|
||||
}
|
||||
|
||||
void TabDialogMessenger::addMsgWidgetRemote(QString text)
|
||||
void TabDialogMessenger::addMsgWidgetRemote(QString text, QString timeStr)
|
||||
{
|
||||
QListWidgetItem *listWidgetItem = new QListWidgetItem();
|
||||
QString avatar = ":/resources/icons/trainee.png";
|
||||
@@ -63,6 +64,7 @@ void TabDialogMessenger::addMsgWidgetRemote(QString text)
|
||||
setItemWidget(listWidgetItem, msgWidget);
|
||||
|
||||
msgWidget->setText(text);
|
||||
msgWidget->setTime(timeStr);
|
||||
|
||||
//Корректировка высоты item
|
||||
listWidgetItem->setSizeHint (QSize(10, msgWidget->height()));
|
||||
|
||||
@@ -18,8 +18,8 @@ public:
|
||||
QString getUserLogin() {return login;};
|
||||
QString getUserId() {return userId;}
|
||||
|
||||
void addMsgWidgetLocal(QString text);
|
||||
void addMsgWidgetRemote(QString text);
|
||||
void addMsgWidgetLocal(QString text, QString timeStr = "");
|
||||
void addMsgWidgetRemote(QString text, QString timeStr = "");
|
||||
|
||||
private:
|
||||
QString login;
|
||||
|
||||
Reference in New Issue
Block a user