mirror of
https://gitea.msk.dinamika-avia.ru/Constanta-Design/RRJServer.git
synced 2026-03-27 19:45:43 +03:00
Подготовка мессенджера под юзеров
This commit is contained in:
@@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
#include "basicentity.h"
|
#include "basicentity.h"
|
||||||
|
|
||||||
class User: public BasicEntity
|
class DATABASELMS_EXPORT User: public BasicEntity
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
User();
|
User();
|
||||||
|
|||||||
@@ -341,6 +341,13 @@ void ConnectorToServer::slot_AnswerQueryToDB_ListInstructors(QList<Instructor> l
|
|||||||
{
|
{
|
||||||
this->listInstructors = listInstructors;
|
this->listInstructors = listInstructors;
|
||||||
emit signal_UpdateDB(true, false);
|
emit signal_UpdateDB(true, false);
|
||||||
|
|
||||||
|
QList<User> listUsers;
|
||||||
|
for(Instructor instructor : listInstructors)
|
||||||
|
{
|
||||||
|
listUsers.append(instructor);
|
||||||
|
}
|
||||||
|
emit signal_reInitMessangerByUsers(listUsers);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ConnectorToServer::slot_AnswerQueryToDB_ListGroups(QList<Group> listGroups)
|
void ConnectorToServer::slot_AnswerQueryToDB_ListGroups(QList<Group> listGroups)
|
||||||
@@ -353,7 +360,13 @@ void ConnectorToServer::slot_AnswerQueryToDB_ListTrainees(QList<Trainee> listTra
|
|||||||
{
|
{
|
||||||
this->listTrainees = listTrainees;
|
this->listTrainees = listTrainees;
|
||||||
emit signal_UpdateDB(false, true);
|
emit signal_UpdateDB(false, true);
|
||||||
emit signal_InitMessanger(listTrainees);
|
|
||||||
|
QList<User> listUsers;
|
||||||
|
for(Trainee trainee : listTrainees)
|
||||||
|
{
|
||||||
|
listUsers.append(trainee);
|
||||||
|
}
|
||||||
|
emit signal_reInitMessangerByUsers(listUsers);
|
||||||
|
|
||||||
if (isLoggedIn)
|
if (isLoggedIn)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -115,7 +115,7 @@ signals:
|
|||||||
|
|
||||||
void signal_ConnectedToServer(bool state);
|
void signal_ConnectedToServer(bool state);
|
||||||
|
|
||||||
void signal_InitMessanger(QList<Trainee> listTrainees);
|
void signal_reInitMessangerByUsers(QList<User> listUsers);
|
||||||
|
|
||||||
void signal_receiveMessage(ClientMessage clientMessage);
|
void signal_receiveMessage(ClientMessage clientMessage);
|
||||||
void sigSendAnswerToServer(QByteArray array);
|
void sigSendAnswerToServer(QByteArray array);
|
||||||
|
|||||||
@@ -321,7 +321,7 @@ void InstructorsAndTraineesWidget::on_btnAuthorizationInstructor_clicked()
|
|||||||
{
|
{
|
||||||
connect(connectorToServer,&ConnectorToServer::signal_UpdateDB,viewerInstructors,&ViewerInstructors::slot_NeedUpdateUI);
|
connect(connectorToServer,&ConnectorToServer::signal_UpdateDB,viewerInstructors,&ViewerInstructors::slot_NeedUpdateUI);
|
||||||
connect(connectorToServer,&ConnectorToServer::signal_UpdateDB,viewerTrainees,&ViewerTrainees::slot_NeedUpdateUI);
|
connect(connectorToServer,&ConnectorToServer::signal_UpdateDB,viewerTrainees,&ViewerTrainees::slot_NeedUpdateUI);
|
||||||
connect(connectorToServer,&ConnectorToServer::signal_InitMessanger,messangerController,&MessangerController::slot_reinitMessangers);
|
connect(connectorToServer,&ConnectorToServer::signal_reInitMessangerByUsers,messangerController,&MessangerController::slot_reinitMessangers);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
ui->btnAuthorizationInstructor->setChecked(false);
|
ui->btnAuthorizationInstructor->setChecked(false);
|
||||||
@@ -334,7 +334,7 @@ void InstructorsAndTraineesWidget::on_btnAuthorizationInstructor_clicked()
|
|||||||
{
|
{
|
||||||
disconnect(connectorToServer,&ConnectorToServer::signal_UpdateDB,viewerInstructors,&ViewerInstructors::slot_NeedUpdateUI);
|
disconnect(connectorToServer,&ConnectorToServer::signal_UpdateDB,viewerInstructors,&ViewerInstructors::slot_NeedUpdateUI);
|
||||||
disconnect(connectorToServer,&ConnectorToServer::signal_UpdateDB,viewerTrainees,&ViewerTrainees::slot_NeedUpdateUI);
|
disconnect(connectorToServer,&ConnectorToServer::signal_UpdateDB,viewerTrainees,&ViewerTrainees::slot_NeedUpdateUI);
|
||||||
disconnect(connectorToServer,&ConnectorToServer::signal_InitMessanger,messangerController,&MessangerController::slot_reinitMessangers);
|
disconnect(connectorToServer,&ConnectorToServer::signal_reInitMessangerByUsers,messangerController,&MessangerController::slot_reinitMessangers);
|
||||||
|
|
||||||
viewerTrainees->deactivate();
|
viewerTrainees->deactivate();
|
||||||
viewerInstructors->deactivate();
|
viewerInstructors->deactivate();
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ MessangerController::~MessangerController()
|
|||||||
deleteAllWidgets();
|
deleteAllWidgets();
|
||||||
}
|
}
|
||||||
|
|
||||||
MessangerWidget *MessangerController::newWidget(QWidget *parent, Trainee* trainee, QVBoxLayout* boxLayout)
|
MessangerWidget *MessangerController::newWidget(QWidget *parent, User* user, QVBoxLayout* boxLayout)
|
||||||
{
|
{
|
||||||
MessangerWidget *msgWdgt = new MessangerWidget(parent);
|
MessangerWidget *msgWdgt = new MessangerWidget(parent);
|
||||||
|
|
||||||
@@ -24,12 +24,12 @@ MessangerWidget *MessangerController::newWidget(QWidget *parent, Trainee* traine
|
|||||||
|
|
||||||
msgWdgt->initGUIclientId(GUIclientId);
|
msgWdgt->initGUIclientId(GUIclientId);
|
||||||
|
|
||||||
if(trainee)
|
if(user)
|
||||||
{
|
{
|
||||||
msgWdgt->setOneTrainee(*trainee);
|
msgWdgt->initUserRemote(*user);
|
||||||
|
|
||||||
//Заполнение предыстории
|
//Заполнение предыстории
|
||||||
int id_user = trainee->getID();
|
int id_user = user->getID();
|
||||||
QList<MessageOfMessanger>* list = nullptr;
|
QList<MessageOfMessanger>* list = nullptr;
|
||||||
if(mapAlldialogsWithClients.contains(id_user))
|
if(mapAlldialogsWithClients.contains(id_user))
|
||||||
{//Уже есть
|
{//Уже есть
|
||||||
@@ -70,9 +70,9 @@ void MessangerController::deleteAllWidgets()
|
|||||||
listWidgets.clear();
|
listWidgets.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
void MessangerController::setGUIclientId(QString id)
|
void MessangerController::setGUIclientId(QString id_GUIclient)
|
||||||
{
|
{
|
||||||
GUIclientId = id;
|
GUIclientId = id_GUIclient;
|
||||||
|
|
||||||
for(MessangerWidget* widget : listWidgets)
|
for(MessangerWidget* widget : listWidgets)
|
||||||
{
|
{
|
||||||
@@ -130,10 +130,17 @@ void MessangerController::slot_receiveMessage(ClientMessage clientMessage)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void MessangerController::slot_reinitMessangers(QList<Trainee> listTrainees)
|
void MessangerController::slot_reinitMessangers(QList<User> listUsers)
|
||||||
{
|
{
|
||||||
for(MessangerWidget* widget : listWidgets)
|
for(MessangerWidget* widget : listWidgets)
|
||||||
{
|
{
|
||||||
widget->reinitMessangerWidget(listTrainees);
|
for(User user : listUsers)
|
||||||
|
{
|
||||||
|
if(user.getID() == widget->getIDuserRemote())
|
||||||
|
{
|
||||||
|
widget->reinitMessangerWidget(user);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,17 +20,17 @@ public:
|
|||||||
~MessangerController();
|
~MessangerController();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
MessangerWidget* newWidget(QWidget *parent, Trainee* trainee, QVBoxLayout* boxLayout);
|
MessangerWidget* newWidget(QWidget *parent, User* user, QVBoxLayout* boxLayout);
|
||||||
void deleteWidget(MessangerWidget* msgWdgt);
|
void deleteWidget(MessangerWidget* msgWdgt);
|
||||||
void deleteAllWidgets();
|
void deleteAllWidgets();
|
||||||
|
|
||||||
void setGUIclientId(QString id);
|
void setGUIclientId(QString id_GUIclient);
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
void slot_sendMessage(ClientMessage clientMessage);
|
void slot_sendMessage(ClientMessage clientMessage);
|
||||||
void slot_receiveMessage(ClientMessage clientMessage);
|
void slot_receiveMessage(ClientMessage clientMessage);
|
||||||
|
|
||||||
void slot_reinitMessangers(QList<Trainee> listTrainees);
|
void slot_reinitMessangers(QList<User> listUsers);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
ConnectorToServer* connectorToServer;
|
ConnectorToServer* connectorToServer;
|
||||||
|
|||||||
@@ -27,32 +27,32 @@ MessangerWidget::~MessangerWidget()
|
|||||||
delete ui;
|
delete ui;
|
||||||
}
|
}
|
||||||
|
|
||||||
void MessangerWidget::setOneTrainee(Trainee trainee)
|
void MessangerWidget::initUserRemote(User user)
|
||||||
{
|
{
|
||||||
this->trainee = trainee;
|
userRemote = user;
|
||||||
|
|
||||||
addTabDialogMessenger(trainee);
|
addTabDialogMessenger(userRemote);
|
||||||
}
|
}
|
||||||
|
|
||||||
void MessangerWidget::reinitMessangerWidget(QList<Trainee> listTrainees)
|
void MessangerWidget::reinitMessangerWidget(User user)
|
||||||
{
|
{
|
||||||
for(Trainee traineeUpdate: listTrainees)
|
if(userRemote.getID() == user.getID())
|
||||||
{
|
{
|
||||||
if(trainee.getID() == traineeUpdate.getID())
|
userRemote = user;
|
||||||
{
|
|
||||||
trainee = traineeUpdate;
|
|
||||||
|
|
||||||
//Обновляем статус залогинивания
|
//Обновляем статус залогинивания
|
||||||
updateLoggedIn(trainee.getLoggedIn());
|
updateLoggedIn(userRemote.getLoggedIn());
|
||||||
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void MessangerWidget::initGUIclientId(QString id_client)
|
void MessangerWidget::initGUIclientId(QString id_GUIclient)
|
||||||
{
|
{
|
||||||
currGUIclientId = id_client;
|
currGUIclientId = id_GUIclient;
|
||||||
|
}
|
||||||
|
|
||||||
|
int MessangerWidget::getIDuserRemote()
|
||||||
|
{
|
||||||
|
return userRemote.getID();
|
||||||
}
|
}
|
||||||
|
|
||||||
void MessangerWidget::showSendedMessage(ClientMessage clientMessage)
|
void MessangerWidget::showSendedMessage(ClientMessage clientMessage)
|
||||||
@@ -63,31 +63,31 @@ void MessangerWidget::showSendedMessage(ClientMessage clientMessage)
|
|||||||
|
|
||||||
void MessangerWidget::showReceivedMessage(ClientMessage clientMessage)
|
void MessangerWidget::showReceivedMessage(ClientMessage clientMessage)
|
||||||
{
|
{
|
||||||
if(QString::number(trainee.getID()) == clientMessage.fromId)
|
if(QString::number(userRemote.getID()) == clientMessage.fromId)
|
||||||
tabDialogMessenger->addMsgWidgetRemote(clientMessage.Text);
|
tabDialogMessenger->addMsgWidgetRemote(clientMessage.Text);
|
||||||
}
|
}
|
||||||
|
|
||||||
void MessangerWidget::addTabDialogMessenger(Trainee trainee)
|
void MessangerWidget::addTabDialogMessenger(User user)
|
||||||
{
|
{
|
||||||
if(!tabDialogMessenger)
|
if(!tabDialogMessenger)
|
||||||
{//Диалога еще не существует
|
{//Диалога еще не существует
|
||||||
|
|
||||||
tabDialogMessenger = new TabDialogMessenger(trainee.getLogin(),QString::number(trainee.getID()), this);
|
tabDialogMessenger = new TabDialogMessenger(user.getLogin(), QString::number(user.getID()), this);
|
||||||
|
|
||||||
//Добавляем новую вкладку диалога
|
//Добавляем новую вкладку диалога
|
||||||
int index = ui->tabWidget->addTab(tabDialogMessenger, tr("Trainee") + ": " + trainee.getName() + " (" + trainee.getLogin() + ")");
|
int index = ui->tabWidget->addTab(tabDialogMessenger, tr("User") + ": " + user.getName() + " (" + user.getLogin() + ")");
|
||||||
|
|
||||||
//Обновляем статус залогинивания
|
//Обновляем статус залогинивания
|
||||||
updateLoggedIn(trainee.getLoggedIn());
|
updateLoggedIn(user.getLoggedIn());
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{//Диалог уже существует
|
{//Диалог уже существует
|
||||||
|
|
||||||
//Проверяем наличие диалога с этим клиентом
|
//Проверяем наличие диалога с этим клиентом
|
||||||
if(tabDialogMessenger->getUserLogin() == trainee.getLogin())
|
if(tabDialogMessenger->getUserLogin() == user.getLogin())
|
||||||
{
|
{
|
||||||
//Обновляем статус залогинивания
|
//Обновляем статус залогинивания
|
||||||
updateLoggedIn(trainee.getLoggedIn());
|
updateLoggedIn(user.getLoggedIn());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -105,7 +105,7 @@ void MessangerWidget::on_btnSend_clicked()
|
|||||||
{
|
{
|
||||||
QString text = ui->editMsg->toPlainText();
|
QString text = ui->editMsg->toPlainText();
|
||||||
QString from = currGUIclientId;
|
QString from = currGUIclientId;
|
||||||
QString to = QString::number(trainee.getID());
|
QString to = QString::number(userRemote.getID());
|
||||||
|
|
||||||
ClientMessage message = ClientMessage(from, to, text);
|
ClientMessage message = ClientMessage(from, to, text);
|
||||||
emit signal_sendMessage(message);
|
emit signal_sendMessage(message);
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
#include <QWidget>
|
#include <QWidget>
|
||||||
#include <QTranslator>
|
#include <QTranslator>
|
||||||
#include <trainee.h>
|
#include <user.h>
|
||||||
#include "Datas.h"
|
#include "Datas.h"
|
||||||
#include "tabdialogmessenger.h"
|
#include "tabdialogmessenger.h"
|
||||||
|
|
||||||
@@ -24,15 +24,16 @@ public:
|
|||||||
~MessangerWidget();
|
~MessangerWidget();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
void setOneTrainee(Trainee trainee);
|
void initUserRemote(User user);
|
||||||
void reinitMessangerWidget(QList<Trainee> listTrainees);
|
void reinitMessangerWidget(User user);
|
||||||
void initGUIclientId(QString id_client);
|
void initGUIclientId(QString id_GUIclient);
|
||||||
|
int getIDuserRemote();
|
||||||
|
|
||||||
void showSendedMessage(ClientMessage clientMessage);
|
void showSendedMessage(ClientMessage clientMessage);
|
||||||
void showReceivedMessage(ClientMessage clientMessage);
|
void showReceivedMessage(ClientMessage clientMessage);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void addTabDialogMessenger(Trainee trainee);
|
void addTabDialogMessenger(User user);
|
||||||
void updateLoggedIn(bool loggedIn);
|
void updateLoggedIn(bool loggedIn);
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
@@ -50,7 +51,7 @@ protected:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
TabDialogMessenger* tabDialogMessenger;
|
TabDialogMessenger* tabDialogMessenger;
|
||||||
Trainee trainee;
|
User userRemote;
|
||||||
QString currGUIclientId; //id этого клиента
|
QString currGUIclientId; //id этого клиента
|
||||||
|
|
||||||
QTranslator qtLanguageTranslator;
|
QTranslator qtLanguageTranslator;
|
||||||
|
|||||||
Reference in New Issue
Block a user