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

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

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