From e12ca8b62eb93466202d891f1d21c27ee6822c58 Mon Sep 17 00:00:00 2001 From: krivoshein Date: Fri, 12 Sep 2025 14:49:02 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A0=D0=B5=D1=84=D0=B0=D0=BA=D1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../instructorsandtraineeswidget.cpp | 2 +- .../messanger/messangercontroller.cpp | 16 ++++++++-------- .../messanger/messangercontroller.h | 4 ++-- .../messanger/messangerwidget.cpp | 15 +++++++-------- .../messanger/messangerwidget.h | 4 ++-- .../messanger/tabdialogmessenger.cpp | 15 ++++++++++----- .../messanger/tabdialogmessenger.h | 7 ++++--- 7 files changed, 34 insertions(+), 29 deletions(-) diff --git a/InstructorsAndTrainees/instructorsandtraineeswidget.cpp b/InstructorsAndTrainees/instructorsandtraineeswidget.cpp index 7f15a9f..d8f7655 100644 --- a/InstructorsAndTrainees/instructorsandtraineeswidget.cpp +++ b/InstructorsAndTrainees/instructorsandtraineeswidget.cpp @@ -177,7 +177,7 @@ void InstructorsAndTraineesWidget::slot_checkLoginResult(ServerAuthorization *se updateLabelLoggedInInstructor(serverAuth->Login, serverAuth->ClientName); connectorToServer->setLoginName(nameInstructorLoggedInLocal); - messangerController->setGUIclientId(serverAuth->Id); + messangerController->setUserLocalGUI_ID(serverAuth->Id.toInt()); connectorToServer->sendQueryTasksXML("fim"); connectorToServer->sendQueryTasksXML("amm"); diff --git a/InstructorsAndTrainees/messanger/messangercontroller.cpp b/InstructorsAndTrainees/messanger/messangercontroller.cpp index 9b92f9f..b79531c 100644 --- a/InstructorsAndTrainees/messanger/messangercontroller.cpp +++ b/InstructorsAndTrainees/messanger/messangercontroller.cpp @@ -3,7 +3,7 @@ MessangerController::MessangerController(ConnectorToServer* connectorToServer, QObject *parent) : QObject(parent), connectorToServer(connectorToServer), - GUIclientId("") + userLocalGUI_ID(0) { connect(connectorToServer, &ConnectorToServer::signal_receiveMessage, this, &MessangerController::slot_receiveMessage); } @@ -22,7 +22,7 @@ MessangerWidget *MessangerController::newWidget(QWidget *parent, User* user, QVB connect(msgWdgt, &MessangerWidget::signal_sendMessage, this, &MessangerController::slot_sendMessage); - msgWdgt->initGUIclientId(GUIclientId); + msgWdgt->initUserLocalGUI(connectorToServer->getInstructor(userLocalGUI_ID)); if(user) { @@ -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, msg.time.toString("hh:mm"))); + msgWdgt->showSendedMessage(ClientMessage(QString::number(userLocalGUI_ID), QString::number(id_user), msg.text, msg.time.toString("hh:mm"))); else - msgWdgt->showReceivedMessage(ClientMessage(QString::number(id_user), GUIclientId, msg.text, msg.time.toString("hh:mm"))); + msgWdgt->showReceivedMessage(ClientMessage(QString::number(id_user), QString::number(userLocalGUI_ID), msg.text, msg.time.toString("hh:mm"))); } } } @@ -70,13 +70,13 @@ void MessangerController::deleteAllWidgets() listWidgets.clear(); } -void MessangerController::setGUIclientId(QString id_GUIclient) +void MessangerController::setUserLocalGUI_ID(int id) { - GUIclientId = id_GUIclient; + userLocalGUI_ID = id; for(MessangerWidget* widget : listWidgets) { - widget->initGUIclientId(GUIclientId); + widget->initUserLocalGUI(connectorToServer->getInstructor(userLocalGUI_ID)); } } @@ -112,7 +112,7 @@ void MessangerController::showMessageInAllWidgets(ClientMessage clientMessage) int id_user = 0; MessageOfMessanger msg; - if(clientMessage.fromId == GUIclientId) + if(clientMessage.fromId == QString::number(userLocalGUI_ID)) {//Send id_user = clientMessage.toId.toInt(); msg.flLocal = true; diff --git a/InstructorsAndTrainees/messanger/messangercontroller.h b/InstructorsAndTrainees/messanger/messangercontroller.h index c408bc2..6e9cdfd 100644 --- a/InstructorsAndTrainees/messanger/messangercontroller.h +++ b/InstructorsAndTrainees/messanger/messangercontroller.h @@ -25,7 +25,7 @@ public: void deleteWidget(MessangerWidget* msgWdgt); void deleteAllWidgets(); - void setGUIclientId(QString id_GUIclient); + void setUserLocalGUI_ID(int id); public slots: void slot_sendMessage(ClientMessage clientMessage); @@ -40,7 +40,7 @@ private: ConnectorToServer* connectorToServer; QList listWidgets; - QString GUIclientId; //id этого GUI клиента + int userLocalGUI_ID; QMap *> mapAlldialogsWithClients; }; diff --git a/InstructorsAndTrainees/messanger/messangerwidget.cpp b/InstructorsAndTrainees/messanger/messangerwidget.cpp index 7e838ce..25101d5 100644 --- a/InstructorsAndTrainees/messanger/messangerwidget.cpp +++ b/InstructorsAndTrainees/messanger/messangerwidget.cpp @@ -11,7 +11,6 @@ MessangerWidget::MessangerWidget(QWidget *parent) : QWidget(parent), oneDialogMessenger(nullptr), - currGUIclientId(""), ui(new Ui::MessangerWidget) { ui->setupUi(this); @@ -46,9 +45,9 @@ void MessangerWidget::reinitMessangerWidget(User user) } } -void MessangerWidget::initGUIclientId(QString id_GUIclient) +void MessangerWidget::initUserLocalGUI(User user) { - currGUIclientId = id_GUIclient; + userLocalGUI = user; } int MessangerWidget::getIDuserRemote() @@ -58,13 +57,13 @@ int MessangerWidget::getIDuserRemote() void MessangerWidget::showSendedMessage(ClientMessage clientMessage) { - if(currGUIclientId == clientMessage.fromId) + if(userLocalGUI.getID() == clientMessage.fromId.toInt()) oneDialogMessenger->addMsgWidgetLocal(clientMessage.Text, clientMessage.timeStr); } void MessangerWidget::showReceivedMessage(ClientMessage clientMessage) { - if(QString::number(userRemote.getID()) == clientMessage.fromId) + if(userRemote.getID() == clientMessage.fromId.toInt()) oneDialogMessenger->addMsgWidgetRemote(clientMessage.Text, clientMessage.timeStr); } @@ -73,7 +72,7 @@ void MessangerWidget::addTabDialogMessenger(User user) if(!oneDialogMessenger) {//Диалога еще не существует - oneDialogMessenger = new OneDialogMessenger(user, this); + oneDialogMessenger = new OneDialogMessenger(userLocalGUI, userRemote, this); ui->verticalLayout_ListMsg->addWidget(oneDialogMessenger); @@ -84,7 +83,7 @@ void MessangerWidget::addTabDialogMessenger(User user) {//Диалог уже существует //Проверяем наличие диалога именно с этим клиентом - if(oneDialogMessenger->getUserId() == user.getID()) + if(oneDialogMessenger->getUserRemoteId() == user.getID()) { //Обновляем заголовок updateHeader(user); @@ -126,7 +125,7 @@ void MessangerWidget::updateHeader(User user) void MessangerWidget::on_btnSend_clicked() { QString text = ui->editMsg->toPlainText(); - QString from = currGUIclientId; + QString from = QString::number(userLocalGUI.getID()); QString to = QString::number(userRemote.getID()); ClientMessage message = ClientMessage(from, to, text); diff --git a/InstructorsAndTrainees/messanger/messangerwidget.h b/InstructorsAndTrainees/messanger/messangerwidget.h index bae57f0..770c7da 100644 --- a/InstructorsAndTrainees/messanger/messangerwidget.h +++ b/InstructorsAndTrainees/messanger/messangerwidget.h @@ -23,7 +23,7 @@ public: public: void initUserRemote(User user); void reinitMessangerWidget(User user); - void initGUIclientId(QString id_GUIclient); + void initUserLocalGUI(User user); int getIDuserRemote(); void showSendedMessage(ClientMessage clientMessage); @@ -48,8 +48,8 @@ protected: private: OneDialogMessenger* oneDialogMessenger; + User userLocalGUI; User userRemote; - QString currGUIclientId; //id этого клиента QTranslator qtLanguageTranslator; diff --git a/InstructorsAndTrainees/messanger/tabdialogmessenger.cpp b/InstructorsAndTrainees/messanger/tabdialogmessenger.cpp index 24afdf3..f260027 100644 --- a/InstructorsAndTrainees/messanger/tabdialogmessenger.cpp +++ b/InstructorsAndTrainees/messanger/tabdialogmessenger.cpp @@ -5,10 +5,11 @@ #include "instructor.h" -OneDialogMessenger::OneDialogMessenger(User user, QWidget *parent): +OneDialogMessenger::OneDialogMessenger(User userLocalGUI, User userRemote, QWidget *parent): QListWidget(parent) { - this->user = user; + this->userLocalGUI = userLocalGUI; + this->userRemote = userRemote; setWordWrap(true); setVerticalScrollBarPolicy(Qt::ScrollBarPolicy::ScrollBarAlwaysOn); @@ -38,16 +39,20 @@ void OneDialogMessenger::addMsgWidget(QString text, QString timeStr, MsgWidget:: if(direction == MsgWidget::DirectionMsg::Outgoing) {//Исходящее - avatar = ":/resources/icons/instructor.png"; + if(static_cast(&userLocalGUI)->getIsAdmin()) + avatar = ":/resources/icons/admin.png"; + else + avatar = ":/resources/icons/instructor.png"; + aligneAvatar = MsgWidget::AligneAvatar::Left; } else {//Входящее - if(user.getTypeUserDB() == User::TypeUserDBTrainee) + if(userRemote.getTypeUserDB() == User::TypeUserDBTrainee) avatar = ":/resources/icons/trainee.png"; else { - if(static_cast(&user)->getIsAdmin()) + if(static_cast(&userRemote)->getIsAdmin()) avatar = ":/resources/icons/admin.png"; else avatar = ":/resources/icons/instructor.png"; diff --git a/InstructorsAndTrainees/messanger/tabdialogmessenger.h b/InstructorsAndTrainees/messanger/tabdialogmessenger.h index 3c5199a..2330aa0 100644 --- a/InstructorsAndTrainees/messanger/tabdialogmessenger.h +++ b/InstructorsAndTrainees/messanger/tabdialogmessenger.h @@ -10,10 +10,10 @@ class OneDialogMessenger : public QListWidget Q_OBJECT public: - OneDialogMessenger(User user, QWidget *parent = nullptr); + OneDialogMessenger(User userLocalGUI, User userRemote, QWidget *parent = nullptr); ~OneDialogMessenger(); - int getUserId() {return user.getID();} + int getUserRemoteId() {return userRemote.getID();} void addMsgWidgetLocal(QString text, QString timeStr = ""); void addMsgWidgetRemote(QString text, QString timeStr = ""); @@ -22,7 +22,8 @@ private: void addMsgWidget(QString text, QString timeStr, MsgWidget::DirectionMsg direction); private: - User user; + User userLocalGUI; + User userRemote; }; #endif // TABDIALOGMESSENGER_H