Рефакт5 Мессенджера

This commit is contained in:
2025-09-09 13:28:23 +03:00
parent bb4cb9cfa3
commit 588f921a73
2 changed files with 27 additions and 42 deletions

View File

@@ -12,8 +12,7 @@ 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);
@@ -76,10 +75,7 @@ void MessangerWidget::addTabDialogMessenger(Trainee trainee)
if(dialogMsg->getUserLogin() == trainee.getLogin()) if(dialogMsg->getUserLogin() == trainee.getLogin())
{//Диалог для этого клиента уже существует {//Диалог для этого клиента уже существует
//Обновляем статус залогинивания //Обновляем статус залогинивания
if(trainee.getLoggedIn()) updateLoggedIn(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"));
return; return;
} }
} }
@@ -91,13 +87,10 @@ void MessangerWidget::addTabDialogMessenger(Trainee trainee)
listTabDialogMessenger.append(tabDialog); 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()) updateLoggedIn(trainee.getLoggedIn());
ui->tabWidget->setTabIcon(index, QIcon(":/resources/icons/circleGreen.png"));
else
ui->tabWidget->setTabIcon(index, QIcon(":/resources/icons/circleGray.png"));
} }
int MessangerWidget::getIndexTab(QString login) int MessangerWidget::getIndexTab(QString login)
@@ -130,9 +123,10 @@ void MessangerWidget::showSendedMessage(QString text)
void MessangerWidget::setOneTrainee(Trainee trainee) void MessangerWidget::setOneTrainee(Trainee trainee)
{ {
flOneTrainee = true; this->trainee = trainee;
QList<Trainee> listTrainees;
listTrainees.clear();
listTrainees.append(trainee); listTrainees.append(trainee);
initMessangerWidget(listTrainees); initMessangerWidget(listTrainees);
@@ -169,40 +163,22 @@ void MessangerWidget::slot_LanguageChanged(QString language)
void MessangerWidget::initMessangerWidget(QList<Trainee> listTrainees) void MessangerWidget::initMessangerWidget(QList<Trainee> listTrainees)
{ {
if(flOneTrainee) for(Trainee traineeUpdate: listTrainees)
{ {
Trainee traineeOne = this->listTrainees.first(); if(trainee.getID() == traineeUpdate.getID())
for(Trainee trainee: listTrainees)
{ {
if(traineeOne.getID() == trainee.getID()) trainee = traineeUpdate;
{
this->listTrainees.replace(0, trainee);
break; break;
} }
} }
}
else
{
this->listTrainees = listTrainees;
}
for(Trainee trainee: this->listTrainees)
{
if(! trainee.getArchived())
addTabDialogMessenger(trainee); addTabDialogMessenger(trainee);
} }
}
void MessangerWidget::showReceivedMessage(ClientMessage clientMessage) void MessangerWidget::showReceivedMessage(ClientMessage clientMessage)
{
for(Trainee trainee: listTrainees)
{ {
if(QString::number(trainee.getID()) == clientMessage.fromId) if(QString::number(trainee.getID()) == clientMessage.fromId)
{
addMsgFromClient(trainee, clientMessage.Text); addMsgFromClient(trainee, clientMessage.Text);
break;
}
}
} }
void MessangerWidget::keyPressEvent(QKeyEvent *event) 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) void MessangerWidget::changeEvent(QEvent *event)
{ {
// В случае получения события изменения языка приложения // В случае получения события изменения языка приложения

View File

@@ -61,17 +61,17 @@ public:
private: private:
virtual void keyPressEvent(QKeyEvent *event) override; virtual void keyPressEvent(QKeyEvent *event) override;
void updateLoggedIn(bool loggedIn);
private: private:
Ui::MessangerWidget *ui; Ui::MessangerWidget *ui;
QList <TabDialogMessenger*> listTabDialogMessenger; QList <TabDialogMessenger*> listTabDialogMessenger;
QList<Trainee> listTrainees; //? //QList<Trainee> listTrainees; //?
Trainee trainee; Trainee trainee;
QString selectedUserLogin; //Логин клиента текущего диалога QString selectedUserLogin; //Логин клиента текущего диалога
QString selectedUserId; //id клиента текущего диалога QString selectedUserId; //id клиента текущего диалога
QString currClientId; //id этого клиента QString currClientId; //id этого клиента
QTranslator qtLanguageTranslator; QTranslator qtLanguageTranslator;
bool flOneTrainee; //?
}; };
#endif // MESSANGERWIDGET_H #endif // MESSANGERWIDGET_H