Контроллер мессенджера доработанный

This commit is contained in:
2025-09-04 16:48:48 +03:00
parent 7a909d1ee5
commit adfd058fa1
15 changed files with 250 additions and 143 deletions

View File

@@ -6,8 +6,7 @@
#include "dialogsettings.h"
InstructorsAndTraineesWidget::InstructorsAndTraineesWidget(QWidget *parent) :
QWidget(parent),
ui(new Ui::InstructorsAndTraineesWidget),
QWidget(parent),
connectorToServer(nullptr),
viewerTrainees(nullptr),
viewerInstructors(nullptr),
@@ -16,29 +15,20 @@ InstructorsAndTraineesWidget::InstructorsAndTraineesWidget(QWidget *parent) :
adminMode(false),
loginInstructorLoggedInLocal(QStringLiteral("")),
nameInstructorLoggedInLocal(QStringLiteral("")),
language("ENG")
language("ENG"),
ui(new Ui::InstructorsAndTraineesWidget)
{
ui->setupUi(this);
ui->btnSettings->setObjectName("btnSettings");
ui->widget_Top->setObjectName("widgetTop");
ui->groupBox_Trainees->setObjectName("groupBox_Trainees");
#ifndef PROJECT_TYPE_DEBUG
//ui->btnUpdateStyleSheet->setVisible(false);
#endif
qRegisterMetaType<PacketType>("PacketType");
qRegisterMetaType<QList<Instructor>>("QList<Instructor>");
qRegisterMetaType<QList<Trainee>>("QList<Trainee>");
qRegisterMetaType<QList<Group>>("QList<Group>");
qRegisterMetaType<QList<Computer>>("QList<Computer>");
qRegisterMetaType<QList<Classroom>>("QList<Classroom>");
qRegisterMetaType<QList<Module*>>("QList<Module*>");
qRegisterMetaType<QList<QTreeWidgetItem*>>("QList<QTreeWidgetItem*>");
qRegisterMetaType<QList<TaskAmmFim>>("QList<TaskAmmFim>");
qRegisterMetaType<ClientMessage>("ClientMessage");
registerMetaType();
qDebug() << "InstructorsAndTraineesWidget init thread ID " << QThread::currentThreadId();
@@ -47,8 +37,8 @@ InstructorsAndTraineesWidget::InstructorsAndTraineesWidget(QWidget *parent) :
setLanguageInterfase();
connectorToServer = new ConnectorToServer(this);
connect(connectorToServer,&ConnectorToServer::sigLoginResult,this,&InstructorsAndTraineesWidget::checkLoginResult);
connect(connectorToServer,&ConnectorToServer::sigDeLoginResult,this,&InstructorsAndTraineesWidget::checkDeLoginResult);
connect(connectorToServer,&ConnectorToServer::sigLoginResult,this,&InstructorsAndTraineesWidget::slot_checkLoginResult);
connect(connectorToServer,&ConnectorToServer::sigDeLoginResult,this,&InstructorsAndTraineesWidget::slot_checkDeLoginResult);
messangerController = new MessangerController(connectorToServer, this);
@@ -61,7 +51,7 @@ InstructorsAndTraineesWidget::InstructorsAndTraineesWidget(QWidget *parent) :
connect(connectorToServer,&ConnectorToServer::signal_ConnectedToServer,this,&InstructorsAndTraineesWidget::slot_ConnectedToServer);
connect(viewerTrainees, &ViewerTrainees::signal_traineeSelected, messangerController, &MessangerController::signal_traineeSelected);
connect(viewerTrainees, &ViewerTrainees::signal_traineeSelected, messangerController, &MessangerController::slot_traineeSelected);
connect(messangerController, &MessangerController::signal_tabMessengerChanged, viewerTrainees, &ViewerTrainees::slot_tabMessengerChanged);
messangerWidget = messangerController->newWidget(this);
@@ -69,31 +59,27 @@ InstructorsAndTraineesWidget::InstructorsAndTraineesWidget(QWidget *parent) :
//Размещение
ui->verticalLayout_Trainees->addWidget(viewerTrainees);
ui->verticalLayout_Messenger->addWidget(messangerWidget);
ui->verticalLayout_Instructors->addWidget(viewerInstructors);
ui->verticalLayout_Messenger->addWidget(messangerWidget);
ui->groupBox_Messenger->setMinimumHeight(500);
ui->groupBox_Messenger->setMaximumWidth(600);
ui->groupBox_Messenger->setMinimumWidth(600);
ui->groupBox_Messenger->setMaximumWidth(500);
ui->groupBox_Messenger->setMinimumWidth(500);
ui->groupBox_Instructors->setMinimumHeight(400);
ui->groupBox_Instructors->setMaximumHeight(400);
ui->groupBox_Instructors->setMinimumHeight(300);
ui->groupBox_Instructors->setMaximumHeight(300);
ui->groupBox_Trainees->setMinimumHeight(500);
ui->groupBox_Trainees->setMinimumHeight(400);
ui->groupBox_Trainees->setMinimumWidth(700);
ui->groupBox_Instructors->setMinimumWidth(700);
ui->groupBox_Trainees->setMinimumWidth(800);
ui->groupBox_Instructors->setMinimumWidth(800);
//Доступность кнопок
ui->btnAuthorizationInstructor->setEnabled(false);
ui->btnEditorTrainees->setEnabled(false);
ui->btnEditorInstructors->setEnabled(false);
ui->btnSetVersion->hide();
}
@@ -136,7 +122,6 @@ QString InstructorsAndTraineesWidget::getLanguage()
QString InstructorsAndTraineesWidget::loadStyleSheet()
{
//QString fileName = ":/resources/css/styleSheetMain.css";
QString fileName = "./resources/css/styleSheetMain.css";
QFile styleSheetFile(fileName);
if (!styleSheetFile.open(QFile::ReadOnly | QFile::Text))
@@ -167,7 +152,7 @@ void InstructorsAndTraineesWidget::slot_UpdateStyleSheet()
updateMyStyleSheet();
}
void InstructorsAndTraineesWidget::checkLoginResult(ServerAuthorization *serverAuth)
void InstructorsAndTraineesWidget::slot_checkLoginResult(ServerAuthorization *serverAuth)
{
if (serverAuth->Result)
{
@@ -189,13 +174,11 @@ void InstructorsAndTraineesWidget::checkLoginResult(ServerAuthorization *serverA
if(adminMode)
ui->btnEditorInstructors->setEnabled(true);
Q_EMIT signal_NeedUpdateUI(true, true);
//ui->btnSetVersion->show();
//ui->btnAuthorizationInstructor->setText(tr("Deauthorization Instructor"));
emit signal_NeedUpdateUI(true, true);
updateLabelLoggedInInstructor(serverAuth->Login, serverAuth->ClientName);
connectorToServer->setLoginName(nameInstructorLoggedInLocal);
messangerController->initialize(serverAuth->Id);
messangerController->setGUIclientId(serverAuth->Id);
connectorToServer->sendQueryTasksXML("fim");
connectorToServer->sendQueryTasksXML("amm");
@@ -208,7 +191,7 @@ void InstructorsAndTraineesWidget::checkLoginResult(ServerAuthorization *serverA
}
}
void InstructorsAndTraineesWidget::checkDeLoginResult(ServerDeAuthorization *serverDeAuth)
void InstructorsAndTraineesWidget::slot_checkDeLoginResult(ServerDeAuthorization *serverDeAuth)
{
if (serverDeAuth->Result)
{
@@ -224,11 +207,7 @@ void InstructorsAndTraineesWidget::checkDeLoginResult(ServerDeAuthorization *ser
ui->btnEditorTrainees->setEnabled(false);
ui->btnEditorInstructors->setEnabled(false);
//Q_EMIT signal_NeedUpdateUI(true, false);
//ui->btnAuthorizationInstructor->setText(tr("Authorization Instructor"));
updateLabelLoggedInInstructor("","");
//QMessageBox::information(this, tr("Instructor deauthorization"), tr("Successfully!"));
}
else
@@ -247,9 +226,6 @@ void InstructorsAndTraineesWidget::slot_ConnectedToServer(bool state)
ui->lblDBisConnected->setPixmap(QPixmap(QStringLiteral(":/resources/icons/circleGreen.png")));
//ServerSettings serverSettings = connectorToServer->getServerSettings();
//ui->lblServer->setText(serverSettings.Address + ":" +serverSettings.Port);
updateLabelLoggedInInstructor(loginInstructorLoggedInLocal, nameInstructorLoggedInLocal);
updateLabelServer();
}
@@ -257,11 +233,8 @@ void InstructorsAndTraineesWidget::slot_ConnectedToServer(bool state)
{//Сервер отключен
ui->btnConnectionToServer->setEnabled(true);
ui->btnAuthorizationInstructor->setEnabled(false);
//ui->btnAuthorizationInstructor->setText(tr("Authorization Instructor"));
ui->btnAuthorizationInstructor->setChecked(false);
//ui->btnSetVersion->hide();
ui->lblDBisConnected->setPixmap(QPixmap(QStringLiteral(":/resources/icons/circleGray.png")));
//ui->lblServer->setText(tr("none"));
viewerInstructors->setAuthComplited(false);
viewerTrainees->setAuthComplited(false);
@@ -272,10 +245,7 @@ void InstructorsAndTraineesWidget::slot_ConnectedToServer(bool state)
viewerTrainees->deactivate();
viewerInstructors->deactivate();
//ammTasksWidget->deactivate();
//fimTasksWidget->deactivate();
messangerController->clear();
messangerController->clearAllWidgets();
loginInstructorLoggedInLocal = "";
nameInstructorLoggedInLocal = "";
@@ -345,7 +315,7 @@ void InstructorsAndTraineesWidget::on_btnAuthorizationInstructor_clicked()
{
connect(connectorToServer,&ConnectorToServer::signal_UpdateDB,viewerInstructors,&ViewerInstructors::slot_NeedUpdateUI);
connect(connectorToServer,&ConnectorToServer::signal_UpdateDB,viewerTrainees,&ViewerTrainees::slot_NeedUpdateUI);
connect(connectorToServer,&ConnectorToServer::signal_InitMessanger,messangerController,&MessangerController::slot_InitMessanger);
connect(connectorToServer,&ConnectorToServer::signal_InitMessanger,messangerController,&MessangerController::slot_initMessanger);
}
else
ui->btnAuthorizationInstructor->setChecked(false);
@@ -358,15 +328,12 @@ void InstructorsAndTraineesWidget::on_btnAuthorizationInstructor_clicked()
{
disconnect(connectorToServer,&ConnectorToServer::signal_UpdateDB,viewerInstructors,&ViewerInstructors::slot_NeedUpdateUI);
disconnect(connectorToServer,&ConnectorToServer::signal_UpdateDB,viewerTrainees,&ViewerTrainees::slot_NeedUpdateUI);
disconnect(connectorToServer,&ConnectorToServer::signal_InitMessanger,messangerController,&MessangerController::slot_InitMessanger);
disconnect(connectorToServer,&ConnectorToServer::signal_InitMessanger,messangerController,&MessangerController::slot_initMessanger);
viewerTrainees->deactivate();
viewerInstructors->deactivate();
//ammTasksWidget->deactivate();
//fimTasksWidget->deactivate();
messangerController->clear();
messangerController->clearAllWidgets();
}
else
ui->btnAuthorizationInstructor->setChecked(true);