mirror of
https://gitea.msk.dinamika-avia.ru/Constanta-Design/RRJServer.git
synced 2026-03-28 19:55:48 +03:00
Рефакт6 Мессенджера
This commit is contained in:
@@ -11,6 +11,7 @@
|
|||||||
MessangerWidget::MessangerWidget(QWidget *parent) :
|
MessangerWidget::MessangerWidget(QWidget *parent) :
|
||||||
QWidget(parent),
|
QWidget(parent),
|
||||||
ui(new Ui::MessangerWidget),
|
ui(new Ui::MessangerWidget),
|
||||||
|
tabDialogMessenger(nullptr),
|
||||||
selectedUserLogin(""),
|
selectedUserLogin(""),
|
||||||
selectedUserId("")
|
selectedUserId("")
|
||||||
{
|
{
|
||||||
@@ -26,31 +27,30 @@ MessangerWidget::MessangerWidget(QWidget *parent) :
|
|||||||
|
|
||||||
MessangerWidget::~MessangerWidget()
|
MessangerWidget::~MessangerWidget()
|
||||||
{
|
{
|
||||||
|
delete tabDialogMessenger;
|
||||||
delete ui;
|
delete ui;
|
||||||
}
|
}
|
||||||
|
|
||||||
void MessangerWidget::addMsgFromClient(Trainee trainee, QString text)
|
void MessangerWidget::addMsgFromClient(Trainee trainee, QString text)
|
||||||
{
|
{
|
||||||
//Пробуем добавить вкладку диалога с клиентом (если вдруг еще нет)
|
//Пробуем добавить вкладку диалога с клиентом (если вдруг еще нет)
|
||||||
addTabDialogMessenger(trainee);
|
//addTabDialogMessenger(trainee);
|
||||||
|
|
||||||
//Ищем нужный диалог
|
//Ищем нужный диалог
|
||||||
QString login = trainee.getLogin();
|
QString login = trainee.getLogin();
|
||||||
foreach(TabDialogMessenger* tabDialog, listTabDialogMessenger)
|
|
||||||
{
|
|
||||||
if(tabDialog->getUserLogin() == trainee.getLogin())
|
|
||||||
{//Есть такой
|
|
||||||
|
|
||||||
//Добавляем в существующую вкладку
|
if(tabDialogMessenger->getUserLogin() == trainee.getLogin())
|
||||||
ui->tabWidget->setCurrentIndex(getIndexTab(login));
|
{//Есть такой
|
||||||
tabDialog->addMsgWidgetRemote(text);
|
|
||||||
//Делаем ее текущей
|
|
||||||
ui->tabWidget->setCurrentIndex(getIndexTab(login));
|
|
||||||
|
|
||||||
selectedUserLogin = login;
|
//Добавляем в существующую вкладку
|
||||||
selectedUserId = QString::number(trainee.getID());
|
ui->tabWidget->setCurrentIndex(getIndexTab(login));
|
||||||
return;
|
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)
|
void MessangerWidget::addTabDialogMessenger(Trainee trainee)
|
||||||
{
|
{
|
||||||
if(listTabDialogMessenger.count() == 0)
|
if(!tabDialogMessenger)
|
||||||
{//Самая первая вкладка, делаем ее активной
|
{//Самая первая вкладка, делаем ее активной
|
||||||
selectedUserLogin = trainee.getLogin();
|
selectedUserLogin = trainee.getLogin();
|
||||||
selectedUserId = QString::number(trainee.getID());
|
selectedUserId = QString::number(trainee.getID());
|
||||||
ui->btnSend->setEnabled(true);
|
ui->btnSend->setEnabled(true);
|
||||||
ui->editMsg->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());
|
updateLoggedIn(trainee.getLoggedIn());
|
||||||
return;
|
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)
|
int MessangerWidget::getIndexTab(QString login)
|
||||||
@@ -107,17 +105,14 @@ int MessangerWidget::getIndexTab(QString login)
|
|||||||
void MessangerWidget::showSendedMessage(QString text)
|
void MessangerWidget::showSendedMessage(QString text)
|
||||||
{
|
{
|
||||||
//Ищем нужный диалог
|
//Ищем нужный диалог
|
||||||
foreach(TabDialogMessenger* tabDialog, listTabDialogMessenger)
|
if(tabDialogMessenger->getUserLogin() == selectedUserLogin)
|
||||||
{
|
{
|
||||||
if(tabDialog->getUserLogin() == selectedUserLogin)
|
//Добавляем в существующую вкладку
|
||||||
{
|
tabDialogMessenger->addMsgWidgetLocal(text);
|
||||||
//Добавляем в существующую вкладку
|
//Делаем ее активной
|
||||||
tabDialog->addMsgWidgetLocal(text);
|
ui->tabWidget->setCurrentIndex(getIndexTab(selectedUserLogin));
|
||||||
//Делаем ее активной
|
|
||||||
ui->tabWidget->setCurrentIndex(getIndexTab(selectedUserLogin));
|
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -144,17 +139,6 @@ void MessangerWidget::on_btnSend_clicked()
|
|||||||
ui->editMsg->clear();
|
ui->editMsg->clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
void MessangerWidget::getTabDialogMessengerByID(QString id_user)
|
|
||||||
{
|
|
||||||
//Ищем нужный диалог
|
|
||||||
foreach(TabDialogMessenger* tabDialog, listTabDialogMessenger)
|
|
||||||
{
|
|
||||||
if(tabDialog->getUserId() == id_user)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void MessangerWidget::slot_LanguageChanged(QString language)
|
void MessangerWidget::slot_LanguageChanged(QString language)
|
||||||
{
|
{
|
||||||
qtLanguageTranslator.load(QString("translationsMy/ServerLMS_") + language, ".");
|
qtLanguageTranslator.load(QString("translationsMy/ServerLMS_") + language, ".");
|
||||||
|
|||||||
@@ -30,9 +30,7 @@ public:
|
|||||||
|
|
||||||
void addMsgFromClient(Trainee trainee, QString text);
|
void addMsgFromClient(Trainee trainee, QString text);
|
||||||
void initialize(QString id);
|
void initialize(QString id);
|
||||||
|
|
||||||
void addTabDialogMessenger(Trainee trainee);
|
void addTabDialogMessenger(Trainee trainee);
|
||||||
|
|
||||||
int getIndexTab(QString login);
|
int getIndexTab(QString login);
|
||||||
|
|
||||||
void showSendedMessage(QString text);
|
void showSendedMessage(QString text);
|
||||||
@@ -56,8 +54,6 @@ public:
|
|||||||
|
|
||||||
void initMessangerWidget(QList<Trainee> listTrainees); //?
|
void initMessangerWidget(QList<Trainee> listTrainees); //?
|
||||||
|
|
||||||
void getTabDialogMessengerByID(QString id_user);
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
virtual void keyPressEvent(QKeyEvent *event) override;
|
virtual void keyPressEvent(QKeyEvent *event) override;
|
||||||
|
|
||||||
@@ -65,8 +61,8 @@ private:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
Ui::MessangerWidget *ui;
|
Ui::MessangerWidget *ui;
|
||||||
QList <TabDialogMessenger*> listTabDialogMessenger;
|
//QList <TabDialogMessenger*> listTabDialogMessenger;
|
||||||
//QList<Trainee> listTrainees; //?
|
TabDialogMessenger* tabDialogMessenger;
|
||||||
Trainee trainee;
|
Trainee trainee;
|
||||||
QString selectedUserLogin; //Логин клиента текущего диалога
|
QString selectedUserLogin; //Логин клиента текущего диалога
|
||||||
QString selectedUserId; //id клиента текущего диалога
|
QString selectedUserId; //id клиента текущего диалога
|
||||||
|
|||||||
Reference in New Issue
Block a user