Рефакт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),
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<Trainee> listTrainees;
listTrainees.clear();
listTrainees.append(trainee);
initMessangerWidget(listTrainees);
@@ -169,40 +163,22 @@ void MessangerWidget::slot_LanguageChanged(QString language)
void MessangerWidget::initMessangerWidget(QList<Trainee> 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)
{
// В случае получения события изменения языка приложения