Контроллер мессенджера упрощенный

This commit is contained in:
2025-09-03 18:30:36 +03:00
parent 5e834b582f
commit 7a909d1ee5
6 changed files with 52 additions and 8 deletions

View File

@@ -345,7 +345,7 @@ void InstructorsAndTraineesWidget::on_btnAuthorizationInstructor_clicked()
{ {
connect(connectorToServer,&ConnectorToServer::signal_UpdateDB,viewerInstructors,&ViewerInstructors::slot_NeedUpdateUI); connect(connectorToServer,&ConnectorToServer::signal_UpdateDB,viewerInstructors,&ViewerInstructors::slot_NeedUpdateUI);
connect(connectorToServer,&ConnectorToServer::signal_UpdateDB,viewerTrainees,&ViewerTrainees::slot_NeedUpdateUI); connect(connectorToServer,&ConnectorToServer::signal_UpdateDB,viewerTrainees,&ViewerTrainees::slot_NeedUpdateUI);
connect(connectorToServer,&ConnectorToServer::signal_InitMessanger,messangerController,&MessangerController::signal_InitMessanger); connect(connectorToServer,&ConnectorToServer::signal_InitMessanger,messangerController,&MessangerController::slot_InitMessanger);
} }
else else
ui->btnAuthorizationInstructor->setChecked(false); ui->btnAuthorizationInstructor->setChecked(false);
@@ -358,7 +358,7 @@ void InstructorsAndTraineesWidget::on_btnAuthorizationInstructor_clicked()
{ {
disconnect(connectorToServer,&ConnectorToServer::signal_UpdateDB,viewerInstructors,&ViewerInstructors::slot_NeedUpdateUI); disconnect(connectorToServer,&ConnectorToServer::signal_UpdateDB,viewerInstructors,&ViewerInstructors::slot_NeedUpdateUI);
disconnect(connectorToServer,&ConnectorToServer::signal_UpdateDB,viewerTrainees,&ViewerTrainees::slot_NeedUpdateUI); disconnect(connectorToServer,&ConnectorToServer::signal_UpdateDB,viewerTrainees,&ViewerTrainees::slot_NeedUpdateUI);
disconnect(connectorToServer,&ConnectorToServer::signal_InitMessanger,messangerController,&MessangerController::signal_InitMessanger); disconnect(connectorToServer,&ConnectorToServer::signal_InitMessanger,messangerController,&MessangerController::slot_InitMessanger);
viewerTrainees->deactivate(); viewerTrainees->deactivate();
viewerInstructors->deactivate(); viewerInstructors->deactivate();

View File

@@ -26,7 +26,7 @@ MessangerWidget *MessangerController::newWidget(QWidget *parent)
connect(this, &MessangerController::signal_traineeSelected, msgWdgt, &MessangerWidget::slot_traineeSelected); connect(this, &MessangerController::signal_traineeSelected, msgWdgt, &MessangerWidget::slot_traineeSelected);
connect(msgWdgt, &MessangerWidget::signal_tabMessengerChanged, this, &MessangerController::signal_tabMessengerChanged); connect(msgWdgt, &MessangerWidget::signal_tabMessengerChanged, this, &MessangerController::signal_tabMessengerChanged);
connect(this, &MessangerController::signal_InitMessanger, msgWdgt,&MessangerWidget::slot_InitMessanger); //connect(this, &MessangerController::slot_InitMessanger, msgWdgt,&MessangerWidget::slot_InitMessanger);
msgWdgt->initialize(currClientId); msgWdgt->initialize(currClientId);
@@ -74,3 +74,11 @@ void MessangerController::slot_sendMessage(ClientMessage clientMessage)
widget->addMsgWidgetLocal(clientMessage.Text); widget->addMsgWidgetLocal(clientMessage.Text);
} }
} }
void MessangerController::slot_InitMessanger(QList<Trainee> listTrainees)
{
for(MessangerWidget* widget : listWidgets)
{
widget->slot_InitMessanger(listTrainees);
}
}

View File

@@ -23,10 +23,11 @@ signals:
void signal_tabMessengerChanged(QString login); void signal_tabMessengerChanged(QString login);
void signal_traineeSelected(QString login); void signal_traineeSelected(QString login);
void signal_InitMessanger(QList<Trainee> listTrainees);
public slots: public slots:
void slot_sendMessage(ClientMessage clientMessage); void slot_sendMessage(ClientMessage clientMessage);
void slot_InitMessanger(QList<Trainee> listTrainees);
private: private:

View File

@@ -12,7 +12,8 @@ MessangerWidget::MessangerWidget(QWidget *parent) :
QWidget(parent), QWidget(parent),
ui(new Ui::MessangerWidget), ui(new Ui::MessangerWidget),
selectedUserLogin(""), selectedUserLogin(""),
selectedUserId("") selectedUserId(""),
flOneTrainee(false)
{ {
ui->setupUi(this); ui->setupUi(this);
@@ -167,6 +168,16 @@ void MessangerWidget::addMsgWidgetLocal(QString text)
} }
} }
void MessangerWidget::setOneTrainee(Trainee trainee)
{
flOneTrainee = true;
listTrainees.clear();
listTrainees.append(trainee);
slot_InitMessanger(listTrainees);
}
void MessangerWidget::on_btnSend_clicked() void MessangerWidget::on_btnSend_clicked()
{ {
QString text = ui->editMsg->toPlainText(); QString text = ui->editMsg->toPlainText();
@@ -236,11 +247,26 @@ void MessangerWidget::slot_LanguageChanged(QString language)
void MessangerWidget::slot_InitMessanger(QList<Trainee> listTrainees) void MessangerWidget::slot_InitMessanger(QList<Trainee> listTrainees)
{ {
this->listTrainees = listTrainees; if(flOneTrainee)
{
Trainee traineeOne = this->listTrainees.first();
for(Trainee trainee: listTrainees)
{
if(traineeOne.getID() == trainee.getID())
{
this->listTrainees.replace(0, trainee);
break;
}
}
}
else
{
this->listTrainees = listTrainees;
}
actualizationTabsDialogMessenger(); actualizationTabsDialogMessenger();
for(Trainee trainee: listTrainees) for(Trainee trainee: this->listTrainees)
{ {
if(! trainee.getArchived()) if(! trainee.getArchived())
addTabDialogMessenger(trainee); addTabDialogMessenger(trainee);

View File

@@ -42,6 +42,8 @@ public:
void addMsgWidgetLocal(QString text); void addMsgWidgetLocal(QString text);
void setOneTrainee(Trainee trainee);
private slots: private slots:
void on_btnSend_clicked(); void on_btnSend_clicked();
void on_tabWidget_currentChanged(int index); void on_tabWidget_currentChanged(int index);
@@ -73,6 +75,8 @@ private:
QString selectedUserId; //id клиента текущего диалога QString selectedUserId; //id клиента текущего диалога
QString currClientId; //id этого клиента QString currClientId; //id этого клиента
QTranslator qtLanguageTranslator; QTranslator qtLanguageTranslator;
bool flOneTrainee;
}; };
#endif // MESSANGERWIDGET_H #endif // MESSANGERWIDGET_H

View File

@@ -37,10 +37,15 @@ PersonalCardTrainee::PersonalCardTrainee(ConnectorToServer* connectorToServer, M
ui->verticalLayout_Messenger->addWidget(messangerWidget); ui->verticalLayout_Messenger->addWidget(messangerWidget);
QList<Trainee> listTrainees;
//QList<Trainee> listTrainees;
Trainee trainee = connectorToServer->getTrainee(id_trainee); Trainee trainee = connectorToServer->getTrainee(id_trainee);
/*
listTrainees.append(trainee); listTrainees.append(trainee);
messangerWidget->slot_InitMessanger(listTrainees); messangerWidget->slot_InitMessanger(listTrainees);
*/
messangerWidget->setOneTrainee(trainee);
ui->groupBox_Messenger->setMaximumWidth(600); ui->groupBox_Messenger->setMaximumWidth(600);
ui->groupBox_Messenger->setMinimumWidth(600); ui->groupBox_Messenger->setMinimumWidth(600);