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