Рефакт

This commit is contained in:
2025-09-12 14:49:02 +03:00
parent 2a8947f378
commit e12ca8b62e
7 changed files with 34 additions and 29 deletions

View File

@@ -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");

View File

@@ -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;

View File

@@ -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 <MessangerWidget*> listWidgets;
QString GUIclientId; //id этого GUI клиента
int userLocalGUI_ID;
QMap <int, QList<MessageOfMessanger>*> mapAlldialogsWithClients;
};

View File

@@ -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);

View File

@@ -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;

View File

@@ -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<Instructor*>(&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<Instructor*>(&user)->getIsAdmin())
if(static_cast<Instructor*>(&userRemote)->getIsAdmin())
avatar = ":/resources/icons/admin.png";
else
avatar = ":/resources/icons/instructor.png";

View File

@@ -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