До трансляции message на ГУИ от Клиента

This commit is contained in:
krivoshein
2024-12-16 17:47:33 +03:00
parent b4e30429f7
commit e393244bf7
60 changed files with 877 additions and 551 deletions

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE QtCreatorProject>
<!-- Written by QtCreator 4.11.1, 2024-12-13T16:41:17. -->
<!-- Written by QtCreator 4.11.1, 2024-12-16T17:46:50. -->
<qtcreator>
<data>
<variable>EnvironmentId</variable>

View File

@@ -75,6 +75,29 @@ void DataParser::createAuthMessage(ClientAutorization *auth)
file.close();
}
void DataParser::createToClientMessage(ToClientMessage *toClientMessage)
{
QFile file(tempName);
file.open(QIODevice::WriteOnly);
QXmlStreamWriter xmlWriter(&file);
xmlWriter.setAutoFormatting(true);
xmlWriter.writeStartDocument();
xmlWriter.writeStartElement("ToClientMessage");
xmlWriter.writeAttribute("id", QString::number(toClientMessage->id));
xmlWriter.writeAttribute("Login", toClientMessage->Login);
xmlWriter.writeAttribute("Text", toClientMessage->Text);
xmlWriter.writeEndElement();
xmlWriter.writeEndElement();
xmlWriter.writeEndDocument();
file.close();
}
void DataParser::createQueryToDBMessage(ClientQueryToDB *queryToDB, int id, void* data)
{
QFile file(tempName);

View File

@@ -22,6 +22,7 @@ public:
void saveClientSettrings(QString language,bool isAutoStart);
void createFileDataList(QList<FileData> fileDataList,QString filename);
void createAuthMessage(ClientAutorization *auth);
void createToClientMessage(ToClientMessage *toClientMessage);
void createQueryToDBMessage(ClientQueryToDB *queryToDB, int id = 0, void* data = nullptr);
void createDeAuthMessage(ClientDeAutorization *deAuth);
void createAuthData(ServerAuthorization *serverAuth);

View File

@@ -31,7 +31,7 @@ void SendSystem::sendDisable()
socket->waitForBytesWritten();
}
void SendSystem::sendClientAutorization()
void SendSystem::sendXMLmsgGUItoServer()
{
QDataStream stream(socket);
stream.setVersion(QDataStream::Qt_DefaultCompiledVersion);
@@ -129,23 +129,6 @@ void SendSystem::sendFinish()
socket->waitForReadyRead(100);
}
void SendSystem::sendClientQueryToDB()
{
QDataStream stream(socket);
stream.setVersion(QDataStream::Qt_DefaultCompiledVersion);
QFile file(tempName);
file.open(QIODevice::ReadOnly);
QByteArray array = file.readAll();
stream << PacketType::TYPE_XMLANSWER;
stream << array;
socket->waitForBytesWritten();
file.close();
}
SendSystem::~SendSystem()
{

View File

@@ -11,7 +11,7 @@ class SendSystem :public QObject
public:
explicit SendSystem(QObject* parent = nullptr);
void setSocket(QTcpSocket *socket);
void sendClientAutorization();
void sendXMLmsgGUItoServer();
void sendDisable();
void sendFileBlock(QString path);
void sendFolderBlock(QString path);
@@ -20,7 +20,6 @@ public:
~SendSystem();
void sendFinish();
void sendClientQueryToDB();
signals:
void sigSend();
QByteArray sigGetXmlAnswer(QString);

View File

@@ -43,7 +43,6 @@ public:
};
enum TypeQueryToDB{
TYPE_QUERY_GET_LIST_INSTRUCTORS,
TYPE_QUERY_GET_ALL_LISTS,
TYPE_QUERY_NEW_INSTRUCTOR,
TYPE_QUERY_DEL_INSTRUCTOR,
@@ -73,6 +72,14 @@ public:
QString Text;
};
class ToClientMessage
{
public:
int id;
QString Login;
QString Text;
};
class ServerTask
{
public:

View File

@@ -25,7 +25,7 @@ bool ConnectorToServer::authorizationInstructorLocal(QString login, QString pass
autorization->TypeClient = TypeClientAutorization::TYPE_GUI;
dataParser->createAuthMessage(autorization);
emit sigSendAutorization();
emit signal_sendXMLmsgGUItoServer();
return true;
}
@@ -41,7 +41,7 @@ bool ConnectorToServer::deAuthorizationInstructorLocal(QString login)
deAutorization->Login = login;
dataParser->createDeAuthMessage(deAutorization);
emit sigSendDeAutorization();
emit signal_sendXMLmsgGUItoServer();
return true;
}
@@ -57,7 +57,25 @@ bool ConnectorToServer::sendQueryToDB(TypeQueryToDB typeQuery, int id, void* dat
queryToDB->typeQuery = typeQuery;
dataParser->createQueryToDBMessage(queryToDB, id, data);
emit sigSendQueryToDB();
emit signal_sendXMLmsgGUItoServer();
return true;
}
bool ConnectorToServer::sendMessageForClient(int id, QString login, QString text)
{
if (!client->getIsConnected())
{
return false;
}
ToClientMessage *toClientMessage = new ToClientMessage;
toClientMessage->id = id;
toClientMessage->Login = login;
toClientMessage->Text = text;
dataParser->createToClientMessage(toClientMessage);
emit signal_sendXMLmsgGUItoServer();
return true;
}
@@ -198,6 +216,16 @@ Group ConnectorToServer::getGroup(int id)
return Group();
}
int ConnectorToServer::getIdTraineeByLogin(QString login)
{
for(Trainee trainee : listTrainees)
{
if(trainee.getLogin() == login)
return trainee.getID();
}
return 0;
}
/*
void ConnectorToServer::slot_AnswerQueryToDB(QList<Instructor>* listInstructors,
QList<Trainee>* listTrainees,
@@ -246,6 +274,13 @@ void ConnectorToServer::slot_AnswerQueryToDB_ListTasks(QList<Task> listTasks)
//emit signal_UpdateDB(false, true);
}
void ConnectorToServer::slot_msgToClientReady(QString login, QString text)
{
int id = getIdTraineeByLogin(login);
if(id)
sendMessageForClient(id, login, text);
}
void ConnectorToServer::initialize()
@@ -263,10 +298,7 @@ void ConnectorToServer::bindConnection()
{
connect(this,&ConnectorToServer::sigInitializeClient,client,&TCPClient::initialize,Qt::AutoConnection);
connect(this,&ConnectorToServer::sigSetConnect,client,&TCPClient::setConnect,Qt::AutoConnection);
connect(this,&ConnectorToServer::sigSendAutorization,sendSystem,&SendSystem::sendClientAutorization);
connect(this,&ConnectorToServer::sigSendDeAutorization,sendSystem,&SendSystem::sendClientAutorization);
connect(this,&ConnectorToServer::sigSendQueryToDB,sendSystem,&SendSystem::sendClientQueryToDB);
connect(this,&ConnectorToServer::signal_sendXMLmsgGUItoServer,sendSystem,&SendSystem::sendXMLmsgGUItoServer);
connect(recognizeSystem,&RecognizeSystem::sigAuth,this,&ConnectorToServer::sigLoginResult);
connect(recognizeSystem,&RecognizeSystem::sigDeAuth,this,&ConnectorToServer::sigDeLoginResult);

View File

@@ -23,6 +23,7 @@ public:
bool deAuthorizationInstructorLocal(QString login);
bool sendQueryToDB(TypeQueryToDB typeQuery, int id = 0, void* data = nullptr);
bool sendMessageForClient(int id, QString login, QString text);
void SetConnectToServer();
@@ -46,6 +47,8 @@ public:
Trainee getTrainee(int id);
Group getGroup(int id);
int getIdTraineeByLogin(QString login);
public slots:
/*void slot_AnswerQueryToDB(QList<Instructor>* listInstructors,
QList<Trainee>* listTrainees,
@@ -58,16 +61,15 @@ public slots:
void slot_AnswerQueryToDB_ListClassrooms(QList<Classroom> listClassrooms);
void slot_AnswerQueryToDB_ListTasks(QList<Task> listTasks);
void slot_msgToClientReady(QString login, QString text);
signals:
void sigSetConnect(ServerSettings* serverSettings,QThread *thread);
void sigInitializeClient(RecognizeSystem *recognizeSystem,
SendSystem *sendSystem,
QThread *thread);
void sigSendAutorization();
void sigSendDeAutorization();
void sigSendQueryToDB();
QThread *thread);
void signal_sendXMLmsgGUItoServer();
void sigLoginResult(ServerAuthorization * serverAuth);
void sigDeLoginResult(ServerDeAuthorization * serverDeAuth);

View File

@@ -47,6 +47,8 @@ InstructorsAndTraineesWidget::InstructorsAndTraineesWidget(QWidget *parent) :
connect(connectorToServer,&ConnectorToServer::signal_InitMessanger,messangerWidget,&MessangerWidget::slot_InitMessanger);
connect(viewerTrainees, &ViewerTrainees::signal_traineeSelected, messangerWidget, &MessangerWidget::slot_traineeSelected);
connect(messangerWidget, &MessangerWidget::signal_tabMessengerChanged, viewerTrainees, &ViewerTrainees::slot_tabMessengerChanged);
connect(messangerWidget, &MessangerWidget::signal_msgToClientReady, connectorToServer, &ConnectorToServer::slot_msgToClientReady);
docTasksWidget = new DocTasksWidget(this);