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

This commit is contained in:
2025-09-09 14:45:50 +03:00
parent 588f921a73
commit deb7938ff8
2 changed files with 39 additions and 59 deletions

View File

@@ -11,6 +11,7 @@
MessangerWidget::MessangerWidget(QWidget *parent) :
QWidget(parent),
ui(new Ui::MessangerWidget),
tabDialogMessenger(nullptr),
selectedUserLogin(""),
selectedUserId("")
{
@@ -26,31 +27,30 @@ MessangerWidget::MessangerWidget(QWidget *parent) :
MessangerWidget::~MessangerWidget()
{
delete tabDialogMessenger;
delete ui;
}
void MessangerWidget::addMsgFromClient(Trainee trainee, QString text)
{
//Пробуем добавить вкладку диалога с клиентом (если вдруг еще нет)
addTabDialogMessenger(trainee);
//addTabDialogMessenger(trainee);
//Ищем нужный диалог
QString login = trainee.getLogin();
foreach(TabDialogMessenger* tabDialog, listTabDialogMessenger)
{
if(tabDialog->getUserLogin() == trainee.getLogin())
{//Есть такой
//Добавляем в существующую вкладку
ui->tabWidget->setCurrentIndex(getIndexTab(login));
tabDialog->addMsgWidgetRemote(text);
//Делаем ее текущей
ui->tabWidget->setCurrentIndex(getIndexTab(login));
if(tabDialogMessenger->getUserLogin() == trainee.getLogin())
{//Есть такой
selectedUserLogin = login;
selectedUserId = QString::number(trainee.getID());
return;
}
//Добавляем в существующую вкладку
ui->tabWidget->setCurrentIndex(getIndexTab(login));
tabDialogMessenger->addMsgWidgetRemote(text);
//Делаем ее текущей
//ui->tabWidget->setCurrentIndex(getIndexTab(login));
selectedUserLogin = login;
selectedUserId = QString::number(trainee.getID());
return;
}
}
@@ -61,36 +61,34 @@ void MessangerWidget::initialize(QString id)
void MessangerWidget::addTabDialogMessenger(Trainee trainee)
{
if(listTabDialogMessenger.count() == 0)
if(!tabDialogMessenger)
{//Самая первая вкладка, делаем ее активной
selectedUserLogin = trainee.getLogin();
selectedUserId = QString::number(trainee.getID());
ui->btnSend->setEnabled(true);
ui->editMsg->setEnabled(true);
}
//Проверяем наличие диалога с этим клиентом
foreach(TabDialogMessenger* dialogMsg, listTabDialogMessenger)
//Диалога для этого клиента еще не существует
//Помещаем новый диалог в список диалогов
tabDialogMessenger = new TabDialogMessenger(trainee.getLogin(),QString::number(trainee.getID()), this);
//Добавляем новую вкладку диалога
int index = ui->tabWidget->addTab(tabDialogMessenger, tr("Trainee") + ": " + trainee.getName() + " (" + trainee.getLogin() + ")");
//Обновляем статус залогинивания
updateLoggedIn(trainee.getLoggedIn());
}
else
{
if(dialogMsg->getUserLogin() == trainee.getLogin())
//Проверяем наличие диалога с этим клиентом
if(tabDialogMessenger->getUserLogin() == trainee.getLogin())
{//Диалог для этого клиента уже существует
//Обновляем статус залогинивания
//Обновляем статус залогинивания
updateLoggedIn(trainee.getLoggedIn());
return;
}
}
//Диалога для этого клиента еще не существует
//Помещаем новый диалог в список диалогов
TabDialogMessenger* tabDialog = new TabDialogMessenger(trainee.getLogin(),QString::number(trainee.getID()), this);
listTabDialogMessenger.append(tabDialog);
//Добавляем новую вкладку диалога
int index = ui->tabWidget->addTab(tabDialog, tr("Trainee") + ": " + trainee.getName() + " (" + trainee.getLogin() + ")");
//Обновляем статус залогинивания
updateLoggedIn(trainee.getLoggedIn());
}
}
int MessangerWidget::getIndexTab(QString login)
@@ -107,17 +105,14 @@ int MessangerWidget::getIndexTab(QString login)
void MessangerWidget::showSendedMessage(QString text)
{
//Ищем нужный диалог
foreach(TabDialogMessenger* tabDialog, listTabDialogMessenger)
if(tabDialogMessenger->getUserLogin() == selectedUserLogin)
{
if(tabDialog->getUserLogin() == selectedUserLogin)
{
//Добавляем в существующую вкладку
tabDialog->addMsgWidgetLocal(text);
//Делаем ее активной
ui->tabWidget->setCurrentIndex(getIndexTab(selectedUserLogin));
//Добавляем в существующую вкладку
tabDialogMessenger->addMsgWidgetLocal(text);
//Делаем ее активной
ui->tabWidget->setCurrentIndex(getIndexTab(selectedUserLogin));
return;
}
return;
}
}
@@ -144,17 +139,6 @@ void MessangerWidget::on_btnSend_clicked()
ui->editMsg->clear();
}
void MessangerWidget::getTabDialogMessengerByID(QString id_user)
{
//Ищем нужный диалог
foreach(TabDialogMessenger* tabDialog, listTabDialogMessenger)
{
if(tabDialog->getUserId() == id_user)
{
}
}
}
void MessangerWidget::slot_LanguageChanged(QString language)
{
qtLanguageTranslator.load(QString("translationsMy/ServerLMS_") + language, ".");