mirror of
https://gitea.msk.dinamika-avia.ru/Constanta-Design/RRJServer.git
synced 2026-03-28 19:55:48 +03:00
ref: segregate chat sytem
This commit is contained in:
@@ -11,8 +11,8 @@
|
||||
MessangerWidget::MessangerWidget(QWidget *parent) :
|
||||
QWidget(parent),
|
||||
ui(new Ui::MessangerWidget),
|
||||
currLogin(""),
|
||||
currId("")
|
||||
selectedUserLogin(""),
|
||||
selectedUserId("")
|
||||
{
|
||||
ui->setupUi(this);
|
||||
|
||||
@@ -38,7 +38,7 @@ void MessangerWidget::addMsgFromClient(Trainee trainee, QString text)
|
||||
QString login = trainee.getLogin();
|
||||
foreach(TabDialogMessenger* tabDialog, listTabDialogMessenger)
|
||||
{//Есть такой
|
||||
if(tabDialog->getLogin() == trainee.getLogin())
|
||||
if(tabDialog->getUserLogin() == trainee.getLogin())
|
||||
{
|
||||
//Добавляем в существующую вкладку
|
||||
ui->tabWidget->setCurrentIndex(getIndexTab(login));
|
||||
@@ -46,8 +46,8 @@ void MessangerWidget::addMsgFromClient(Trainee trainee, QString text)
|
||||
//Делаем ее текущей
|
||||
ui->tabWidget->setCurrentIndex(getIndexTab(login));
|
||||
|
||||
currLogin = login;
|
||||
currId = QString::number(trainee.getID());
|
||||
selectedUserLogin = login;
|
||||
selectedUserId = QString::number(trainee.getID());
|
||||
return;
|
||||
}
|
||||
}
|
||||
@@ -62,9 +62,9 @@ void MessangerWidget::addTabDialogMessenger(Trainee trainee)
|
||||
{
|
||||
if(listTabDialogMessenger.count() == 0)
|
||||
{//Самая первая вкладка, делаем ее активной
|
||||
currLogin = trainee.getLogin();
|
||||
currId = QString::number(trainee.getID());
|
||||
emit signal_tabMessengerChanged(currLogin);
|
||||
selectedUserLogin = trainee.getLogin();
|
||||
selectedUserId = QString::number(trainee.getID());
|
||||
emit signal_tabMessengerChanged(selectedUserLogin);
|
||||
ui->btnSend->setEnabled(true);
|
||||
ui->editMsg->setEnabled(true);
|
||||
}
|
||||
@@ -72,7 +72,7 @@ void MessangerWidget::addTabDialogMessenger(Trainee trainee)
|
||||
//Проверяем наличие диалога с этим клиентом
|
||||
foreach(TabDialogMessenger* dialogMsg, listTabDialogMessenger)
|
||||
{
|
||||
if(dialogMsg->getLogin() == trainee.getLogin())
|
||||
if(dialogMsg->getUserLogin() == trainee.getLogin())
|
||||
{//Диалог для этого клиента уже существует
|
||||
//Обновляем статус залогинивания
|
||||
if(trainee.getLoggedIn())
|
||||
@@ -86,7 +86,7 @@ void MessangerWidget::addTabDialogMessenger(Trainee trainee)
|
||||
//Диалога для этого клиента еще не существует
|
||||
|
||||
//Помещаем новый диалог в список диалогов
|
||||
TabDialogMessenger* tabDialog = new TabDialogMessenger(0 /*TODO доделать передачу реального ID*/, trainee.getLogin(), this);
|
||||
TabDialogMessenger* tabDialog = new TabDialogMessenger(trainee.getLogin(),QString::number(trainee.getID()), this);
|
||||
listTabDialogMessenger.append(tabDialog);
|
||||
|
||||
//Добавляем новую вкладку диалога
|
||||
@@ -103,7 +103,7 @@ void MessangerWidget::actualizationTabsDialogMessenger()
|
||||
{
|
||||
foreach(TabDialogMessenger* tabDialog, listTabDialogMessenger)
|
||||
{
|
||||
QString login = tabDialog->getLogin();
|
||||
QString login = tabDialog->getUserLogin();
|
||||
bool exist = false;
|
||||
|
||||
for(Trainee trainee : listTrainees)
|
||||
@@ -136,7 +136,7 @@ int MessangerWidget::getIndexTab(QString login)
|
||||
for(int index = 0; index < ui->tabWidget->count(); index++)
|
||||
{
|
||||
TabDialogMessenger* tabDialogMessenger = static_cast<TabDialogMessenger*>(ui->tabWidget->widget(index));
|
||||
if(tabDialogMessenger->getLogin() == login)
|
||||
if(tabDialogMessenger->getUserLogin() == login)
|
||||
return index;
|
||||
}
|
||||
return -1;
|
||||
@@ -154,19 +154,19 @@ void MessangerWidget::on_btnSend_clicked()
|
||||
{
|
||||
QString text = ui->editMsg->toPlainText();
|
||||
|
||||
emit signal_sendMessage(currClientId, currId, text);
|
||||
emit signal_sendMessage(currClientId, selectedUserId, text);
|
||||
|
||||
ui->editMsg->clear();
|
||||
|
||||
//Ищем нужный диалог
|
||||
foreach(TabDialogMessenger* tabDialog, listTabDialogMessenger)
|
||||
{
|
||||
if(tabDialog->getLogin() == currLogin)
|
||||
if(tabDialog->getUserLogin() == selectedUserLogin)
|
||||
{
|
||||
//Добавляем в существующую вкладку
|
||||
tabDialog->addMsgWidgetLocal(text);
|
||||
//Делаем ее активной
|
||||
ui->tabWidget->setCurrentIndex(getIndexTab(currLogin));
|
||||
ui->tabWidget->setCurrentIndex(getIndexTab(selectedUserLogin));
|
||||
|
||||
return;
|
||||
}
|
||||
@@ -178,10 +178,12 @@ void MessangerWidget::on_tabWidget_currentChanged(int index)
|
||||
//Ищем нужный диалог
|
||||
foreach(TabDialogMessenger* tabDialog, listTabDialogMessenger)
|
||||
{
|
||||
if(getIndexTab(tabDialog->getLogin()) == index)
|
||||
|
||||
if(getIndexTab(tabDialog->getUserLogin()) == index)
|
||||
{
|
||||
currLogin = tabDialog->getLogin();
|
||||
emit signal_tabMessengerChanged(currLogin);
|
||||
selectedUserLogin = tabDialog->getUserLogin();
|
||||
selectedUserId = tabDialog->getUserId();
|
||||
emit signal_tabMessengerChanged(selectedUserLogin);
|
||||
return;
|
||||
}
|
||||
}
|
||||
@@ -192,7 +194,7 @@ void MessangerWidget::slot_traineeSelected(QString login)
|
||||
//Ищем нужный диалог
|
||||
foreach(TabDialogMessenger* tabDialog, listTabDialogMessenger)
|
||||
{
|
||||
if(tabDialog->getLogin() == login)
|
||||
if(tabDialog->getUserLogin() == login)
|
||||
{
|
||||
//Активируем нужную вкладку
|
||||
ui->tabWidget->setCurrentIndex(getIndexTab(login));
|
||||
|
||||
@@ -67,8 +67,8 @@ private:
|
||||
Ui::MessangerWidget *ui;
|
||||
QList <TabDialogMessenger*> listTabDialogMessenger;
|
||||
QList<Trainee> listTrainees;
|
||||
QString currLogin; //Логин клиента текущего диалога
|
||||
QString currId; //id клиента текущего диалога
|
||||
QString selectedUserLogin; //Логин клиента текущего диалога
|
||||
QString selectedUserId; //id клиента текущего диалога
|
||||
QString currClientId; //id этого клиента
|
||||
QTranslator qtLanguageTranslator;
|
||||
};
|
||||
|
||||
@@ -3,12 +3,12 @@
|
||||
#include "msgwidget.h"
|
||||
|
||||
|
||||
TabDialogMessenger::TabDialogMessenger(int id, QString login, QWidget *parent):
|
||||
TabDialogMessenger::TabDialogMessenger(QString login , QString userId, QWidget *parent):
|
||||
QListWidget(parent),
|
||||
login(""),
|
||||
id(0)
|
||||
userId("")
|
||||
{
|
||||
this->id = id;
|
||||
this->userId = userId;
|
||||
this->login = login;
|
||||
|
||||
setWordWrap(true);
|
||||
|
||||
@@ -12,18 +12,18 @@ class TabDialogMessenger : public QListWidget
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
TabDialogMessenger(int id, QString login, QWidget *parent = nullptr);
|
||||
TabDialogMessenger(QString userLogin, QString userId, QWidget *parent = nullptr);
|
||||
~TabDialogMessenger();
|
||||
|
||||
QString getLogin() {return login;};
|
||||
int getID() {return id;};
|
||||
QString getUserLogin() {return login;};
|
||||
QString getUserId() {return userId;}
|
||||
|
||||
void addMsgWidgetLocal(QString text);
|
||||
void addMsgWidgetRemote(QString text);
|
||||
|
||||
private:
|
||||
QString login;
|
||||
int id;
|
||||
QString userId;
|
||||
};
|
||||
|
||||
#endif // TABDIALOGMESSENGER_H
|
||||
|
||||
Reference in New Issue
Block a user