From 588f921a7309ae3b6c3d75e6f9c720c8b16b9468 Mon Sep 17 00:00:00 2001 From: krivoshein Date: Tue, 9 Sep 2025 13:28:23 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A0=D0=B5=D1=84=D0=B0=D0=BA=D1=825=20=D0=9C?= =?UTF-8?q?=D0=B5=D1=81=D1=81=D0=B5=D0=BD=D0=B4=D0=B6=D0=B5=D1=80=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../messanger/messangerwidget.cpp | 63 +++++++------------ .../messanger/messangerwidget.h | 6 +- 2 files changed, 27 insertions(+), 42 deletions(-) diff --git a/InstructorsAndTrainees/messanger/messangerwidget.cpp b/InstructorsAndTrainees/messanger/messangerwidget.cpp index 40c99ea..e1f19a9 100644 --- a/InstructorsAndTrainees/messanger/messangerwidget.cpp +++ b/InstructorsAndTrainees/messanger/messangerwidget.cpp @@ -12,8 +12,7 @@ MessangerWidget::MessangerWidget(QWidget *parent) : QWidget(parent), ui(new Ui::MessangerWidget), selectedUserLogin(""), - selectedUserId(""), - flOneTrainee(false) + selectedUserId("") { ui->setupUi(this); @@ -75,11 +74,8 @@ void MessangerWidget::addTabDialogMessenger(Trainee trainee) { if(dialogMsg->getUserLogin() == trainee.getLogin()) {//Диалог для этого клиента уже существует - //Обновляем статус залогинивания - if(trainee.getLoggedIn()) - ui->tabWidget->setTabIcon(getIndexTab(trainee.getLogin()), QIcon(":/resources/icons/circleGreen.png")); - else - ui->tabWidget->setTabIcon(getIndexTab(trainee.getLogin()), QIcon(":/resources/icons/circleGray.png")); + //Обновляем статус залогинивания + updateLoggedIn(trainee.getLoggedIn()); return; } } @@ -91,13 +87,10 @@ void MessangerWidget::addTabDialogMessenger(Trainee trainee) listTabDialogMessenger.append(tabDialog); //Добавляем новую вкладку диалога - int index = ui->tabWidget->addTab(tabDialog, /*login + ": " +*/ trainee.getName()); + int index = ui->tabWidget->addTab(tabDialog, tr("Trainee") + ": " + trainee.getName() + " (" + trainee.getLogin() + ")"); //Обновляем статус залогинивания - if(trainee.getLoggedIn()) - ui->tabWidget->setTabIcon(index, QIcon(":/resources/icons/circleGreen.png")); - else - ui->tabWidget->setTabIcon(index, QIcon(":/resources/icons/circleGray.png")); + updateLoggedIn(trainee.getLoggedIn()); } int MessangerWidget::getIndexTab(QString login) @@ -130,9 +123,10 @@ void MessangerWidget::showSendedMessage(QString text) void MessangerWidget::setOneTrainee(Trainee trainee) { - flOneTrainee = true; + this->trainee = trainee; + + QList listTrainees; - listTrainees.clear(); listTrainees.append(trainee); initMessangerWidget(listTrainees); @@ -169,40 +163,22 @@ void MessangerWidget::slot_LanguageChanged(QString language) void MessangerWidget::initMessangerWidget(QList listTrainees) { - if(flOneTrainee) + for(Trainee traineeUpdate: listTrainees) { - Trainee traineeOne = this->listTrainees.first(); - for(Trainee trainee: listTrainees) + if(trainee.getID() == traineeUpdate.getID()) { - if(traineeOne.getID() == trainee.getID()) - { - this->listTrainees.replace(0, trainee); - break; - } + trainee = traineeUpdate; + break; } } - else - { - this->listTrainees = listTrainees; - } - for(Trainee trainee: this->listTrainees) - { - if(! trainee.getArchived()) - addTabDialogMessenger(trainee); - } + addTabDialogMessenger(trainee); } void MessangerWidget::showReceivedMessage(ClientMessage clientMessage) { - for(Trainee trainee: listTrainees) - { - if(QString::number(trainee.getID()) == clientMessage.fromId) - { - addMsgFromClient(trainee, clientMessage.Text); - break; - } - } + if(QString::number(trainee.getID()) == clientMessage.fromId) + addMsgFromClient(trainee, clientMessage.Text); } void MessangerWidget::keyPressEvent(QKeyEvent *event) @@ -213,6 +189,15 @@ void MessangerWidget::keyPressEvent(QKeyEvent *event) } } +void MessangerWidget::updateLoggedIn(bool loggedIn) +{ + //Обновляем статус залогинивания + if(loggedIn) + ui->tabWidget->setTabIcon(0, QIcon(":/resources/icons/circleGreen.png")); + else + ui->tabWidget->setTabIcon(0, QIcon(":/resources/icons/circleGray.png")); +} + void MessangerWidget::changeEvent(QEvent *event) { // В случае получения события изменения языка приложения diff --git a/InstructorsAndTrainees/messanger/messangerwidget.h b/InstructorsAndTrainees/messanger/messangerwidget.h index b0628c3..d1e8b6a 100644 --- a/InstructorsAndTrainees/messanger/messangerwidget.h +++ b/InstructorsAndTrainees/messanger/messangerwidget.h @@ -61,17 +61,17 @@ public: private: virtual void keyPressEvent(QKeyEvent *event) override; + void updateLoggedIn(bool loggedIn); + private: Ui::MessangerWidget *ui; QList listTabDialogMessenger; - QList listTrainees; //? + //QList listTrainees; //? Trainee trainee; QString selectedUserLogin; //Логин клиента текущего диалога QString selectedUserId; //id клиента текущего диалога QString currClientId; //id этого клиента QTranslator qtLanguageTranslator; - - bool flOneTrainee; //? }; #endif // MESSANGERWIDGET_H