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

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,viewerTrainees,&ViewerTrainees::slot_NeedUpdateUI);
connect(connectorToServer,&ConnectorToServer::signal_InitMessanger,messangerController,&MessangerController::signal_InitMessanger);
connect(connectorToServer,&ConnectorToServer::signal_InitMessanger,messangerController,&MessangerController::slot_InitMessanger);
}
else
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,viewerTrainees,&ViewerTrainees::slot_NeedUpdateUI);
disconnect(connectorToServer,&ConnectorToServer::signal_InitMessanger,messangerController,&MessangerController::signal_InitMessanger);
disconnect(connectorToServer,&ConnectorToServer::signal_InitMessanger,messangerController,&MessangerController::slot_InitMessanger);
viewerTrainees->deactivate();
viewerInstructors->deactivate();

View File

@@ -26,7 +26,7 @@ MessangerWidget *MessangerController::newWidget(QWidget *parent)
connect(this, &MessangerController::signal_traineeSelected, msgWdgt, &MessangerWidget::slot_traineeSelected);
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);
@@ -74,3 +74,11 @@ void MessangerController::slot_sendMessage(ClientMessage clientMessage)
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_traineeSelected(QString login);
void signal_InitMessanger(QList<Trainee> listTrainees);
public slots:
void slot_sendMessage(ClientMessage clientMessage);
void slot_InitMessanger(QList<Trainee> listTrainees);
private:

View File

@@ -12,7 +12,8 @@ MessangerWidget::MessangerWidget(QWidget *parent) :
QWidget(parent),
ui(new Ui::MessangerWidget),
selectedUserLogin(""),
selectedUserId("")
selectedUserId(""),
flOneTrainee(false)
{
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()
{
QString text = ui->editMsg->toPlainText();
@@ -236,11 +247,26 @@ void MessangerWidget::slot_LanguageChanged(QString language)
void MessangerWidget::slot_InitMessanger(QList<Trainee> 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();
for(Trainee trainee: listTrainees)
for(Trainee trainee: this->listTrainees)
{
if(! trainee.getArchived())
addTabDialogMessenger(trainee);

View File

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

View File

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