From 89d3d51c6be3d6bcb8c4813e1cc2c9bec20c04dc Mon Sep 17 00:00:00 2001 From: krivoshein Date: Wed, 21 Jan 2026 17:29:00 +0300 Subject: [PATCH] =?UTF-8?q?=D0=98=D0=BD=D0=B4=D0=B8=D0=BA=D0=B0=D1=86?= =?UTF-8?q?=D0=B8=D1=8F=20=D0=B1=D0=BB=D0=BE=D0=BA=D0=B8=D1=80=D0=BE=D0=B2?= =?UTF-8?q?=D0=BA=D0=B8=20=D0=A1=D0=B5=D1=80=D0=B2=D0=B5=D1=80=D0=B0=20?= =?UTF-8?q?=D0=BD=D0=B0=20=D0=93=D0=A3=D0=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../InstructorsAndTrainees.qrc | 1 + .../Core/recognizesystem.cpp | 4 +-- .../connectorToServer/Core/recognizesystem.h | 2 ++ .../connectorToServer/connectortoserver.cpp | 20 +++++++++++- .../connectorToServer/connectortoserver.h | 8 +++++ .../instructorsandtraineeswidget.cpp | 29 +++++++++++++++--- .../instructorsandtraineeswidget.h | 2 ++ .../resources/icons/lock.png | Bin 0 -> 7394 bytes .../multithreadserver/multithreadserver.cpp | 5 +++ 9 files changed, 63 insertions(+), 8 deletions(-) create mode 100644 LibInstructorsAndTrainees/resources/icons/lock.png diff --git a/LibInstructorsAndTrainees/InstructorsAndTrainees.qrc b/LibInstructorsAndTrainees/InstructorsAndTrainees.qrc index d6bb16c..add8f75 100644 --- a/LibInstructorsAndTrainees/InstructorsAndTrainees.qrc +++ b/LibInstructorsAndTrainees/InstructorsAndTrainees.qrc @@ -52,5 +52,6 @@ resources/icons/new.png resources/icons/branch-closed.png resources/icons/save.png + resources/icons/lock.png diff --git a/LibInstructorsAndTrainees/connectorToServer/Core/recognizesystem.cpp b/LibInstructorsAndTrainees/connectorToServer/Core/recognizesystem.cpp index ae334ca..de7edb9 100644 --- a/LibInstructorsAndTrainees/connectorToServer/Core/recognizesystem.cpp +++ b/LibInstructorsAndTrainees/connectorToServer/Core/recognizesystem.cpp @@ -260,12 +260,12 @@ void RecognizeSystem::recognize(QTcpSocket *socket) if(packetType == PacketType::BUSY) { - //emit sigAnimationActivated(true); + signal_ServerBlockState(true); } if(packetType == PacketType::FREE) { - //emit sigAnimationActivated(false); + signal_ServerBlockState(false); } if(packetType == PacketType::HASH_READY) diff --git a/LibInstructorsAndTrainees/connectorToServer/Core/recognizesystem.h b/LibInstructorsAndTrainees/connectorToServer/Core/recognizesystem.h index dfc3351..56f1c6f 100644 --- a/LibInstructorsAndTrainees/connectorToServer/Core/recognizesystem.h +++ b/LibInstructorsAndTrainees/connectorToServer/Core/recognizesystem.h @@ -62,6 +62,8 @@ signals: void signal_AnswerDocsChanged(); + void signal_ServerBlockState(bool state); + private: QList *folderList; //MainWindow *mainWindow; diff --git a/LibInstructorsAndTrainees/connectorToServer/connectortoserver.cpp b/LibInstructorsAndTrainees/connectorToServer/connectortoserver.cpp index e5aeaf7..dec6cfa 100644 --- a/LibInstructorsAndTrainees/connectorToServer/connectortoserver.cpp +++ b/LibInstructorsAndTrainees/connectorToServer/connectortoserver.cpp @@ -9,7 +9,8 @@ ConnectorToServer::ConnectorToServer(QObject *parent) : sendSystem(nullptr), recognizeSystem(nullptr), fl_GetedOfflineMessages(false), - nameInstructorLoggedInLocal("") + nameInstructorLoggedInLocal(""), + serverBlockState(false) { initialize(); } @@ -38,6 +39,8 @@ bool ConnectorToServer::getIsConnected() void ConnectorToServer::SetConnectToServer() { + serverBlockState = false; + qDebug() << "connectorToServer::SetConnectToServer() thread ID " << QThread::currentThreadId(); serverSettings = *dataParser->getServerSettings(); emit sigSetConnect(dataParser->getServerSettings(),connectionThread); @@ -45,6 +48,8 @@ void ConnectorToServer::SetConnectToServer() void ConnectorToServer::StopConnectToServer() { + serverBlockState = false; + emit sigStopConnect(); clearListModelDB(); } @@ -117,6 +122,12 @@ void ConnectorToServer::slot_NotifyVersionControl(QString text) emit signal_NotifyVersionControl(text); } +void ConnectorToServer::slot_ServerBlockState(bool state) +{ + serverBlockState = state; + emit signal_ServerBlockState(state); +} + void ConnectorToServer::initialize() { createObjects(); @@ -169,6 +180,8 @@ void ConnectorToServer::bindConnection() connect(recognizeSystem, &RecognizeSystem::sigSetVersion, this, &ConnectorToServer::signal_SetVersion); + connect(recognizeSystem,&RecognizeSystem::signal_ServerBlockState,this,&ConnectorToServer::slot_ServerBlockState); + connect(this, &ConnectorToServer::signal_SendCopyVersion, sendSystem, &SendSystem::sendCopyVersion); connect(this, &ConnectorToServer::signal_SendDeleteVersion, sendSystem, &SendSystem::sendDeleteVersion); connect(this, &ConnectorToServer::signal_SendSwitchVersion, sendSystem, &SendSystem::sendChangeVersion); @@ -195,6 +208,11 @@ void ConnectorToServer::createObjects() connectionThread->setPriority(QThread::HighestPriority); } +bool ConnectorToServer::getServerBlockState() const +{ + return serverBlockState; +} + SendSystem *ConnectorToServer::getSendSystem() const { return sendSystem; diff --git a/LibInstructorsAndTrainees/connectorToServer/connectortoserver.h b/LibInstructorsAndTrainees/connectorToServer/connectortoserver.h index 29202b3..bbaa682 100644 --- a/LibInstructorsAndTrainees/connectorToServer/connectortoserver.h +++ b/LibInstructorsAndTrainees/connectorToServer/connectortoserver.h @@ -82,6 +82,8 @@ public: int getIdTraineeByLogin(QString login); int getIdInstructorByLogin(QString login); + bool getServerBlockState() const; + private: //Очистка списочной модели БД СУО void clearListModelDB(); @@ -117,6 +119,8 @@ public slots: void slot_NotifyVersionControl(QString text); + void slot_ServerBlockState(bool state); + signals: void sigSetConnect(ServerSettings* serverSettings,QThread *thread); void sigStopConnect(); @@ -159,6 +163,8 @@ signals: void signal_NotifyVersionControl(QString text); + void signal_ServerBlockState(bool state); + private: void initialize(); void bindConnection(); @@ -191,6 +197,8 @@ private: bool fl_GetedOfflineMessages; QString nameInstructorLoggedInLocal; + + bool serverBlockState; }; #endif // CONNECTORTOSERVER_H diff --git a/LibInstructorsAndTrainees/instructorsandtraineeswidget.cpp b/LibInstructorsAndTrainees/instructorsandtraineeswidget.cpp index 748837a..fddd8d9 100644 --- a/LibInstructorsAndTrainees/instructorsandtraineeswidget.cpp +++ b/LibInstructorsAndTrainees/instructorsandtraineeswidget.cpp @@ -55,6 +55,7 @@ InstructorsAndTraineesWidget::InstructorsAndTraineesWidget(QWidget *parent) : connect(connectorToServer, &ConnectorToServer::sigErrorAuth, this, &InstructorsAndTraineesWidget::slot_ErrorAuth); connect(connectorToServer, &ConnectorToServer::signal_SetVersion, this, &InstructorsAndTraineesWidget::slot_SetVersion); connect(connectorToServer, &ConnectorToServer::signal_AnswerDocsChanged,this, &InstructorsAndTraineesWidget::slot_AnswerDocsChanged); + connect(connectorToServer, &ConnectorToServer::signal_ServerBlockState, this, &InstructorsAndTraineesWidget::slot_ServerBlockState); messangerController = new MessangerController(connectorToServer, this); @@ -337,8 +338,6 @@ void InstructorsAndTraineesWidget::slot_ConnectedToServer(bool state) ui->btnConnectionToServer->setEnabled(false); ui->btnAuthorizationInstructor->setEnabled(true); - ui->lblDBisConnected->setPixmap(QPixmap(QStringLiteral(":/resources/icons/circleGreen.png"))); - updateLabelLoggedInInstructor(instructorLoggedInLocal); flTryConnectToServer = false; @@ -354,7 +353,6 @@ void InstructorsAndTraineesWidget::slot_ConnectedToServer(bool state) //ui->btnConnectionToServer->setEnabled(true); ui->btnAuthorizationInstructor->setEnabled(false); ui->btnAuthorizationInstructor->setChecked(false); - ui->lblDBisConnected->setPixmap(QPixmap(QStringLiteral(":/resources/icons/circleGray.png"))); viewerInstructors->setAuthComplited(false); viewerTrainees->setAuthComplited(false); @@ -475,6 +473,11 @@ void InstructorsAndTraineesWidget::slot_TryConnectToServer() connectorToServer->SetConnectToServer(); } +void InstructorsAndTraineesWidget::slot_ServerBlockState(bool state) +{ + updateLabelServer(); +} + bool InstructorsAndTraineesWidget::authorizationInstructorDialog(QWidget* parent) { dlgAuthorization = new DialogAuthorization(parent); @@ -622,11 +625,27 @@ void InstructorsAndTraineesWidget::updateLabelServer() { if(connectorToServer->getIsConnected()) { - ServerSettings serverSettings = connectorToServer->getServerSettings(); - ui->lblServer->setText(tr("connected") + " " + serverSettings.Address + " : " +serverSettings.Port); + if(connectorToServer->getServerBlockState()) + {//Заблокирован! + ServerSettings serverSettings = connectorToServer->getServerSettings(); + ui->lblServer->setText(tr("connected") + " " + serverSettings.Address + " : " +serverSettings.Port + ", " + tr("blocked")); + + ui->lblDBisConnected->setPixmap(QPixmap(QStringLiteral(":/resources/icons/lock.png"))); + } + else + { + ServerSettings serverSettings = connectorToServer->getServerSettings(); + ui->lblServer->setText(tr("connected") + " " + serverSettings.Address + " : " +serverSettings.Port); + + ui->lblDBisConnected->setPixmap(QPixmap(QStringLiteral(":/resources/icons/circleGreen.png"))); + } } else + { ui->lblServer->setText(tr("not connected")); + + ui->lblDBisConnected->setPixmap(QPixmap(QStringLiteral(":/resources/icons/circleGray.png"))); + } } } diff --git a/LibInstructorsAndTrainees/instructorsandtraineeswidget.h b/LibInstructorsAndTrainees/instructorsandtraineeswidget.h index a24c9bf..23d1bb4 100644 --- a/LibInstructorsAndTrainees/instructorsandtraineeswidget.h +++ b/LibInstructorsAndTrainees/instructorsandtraineeswidget.h @@ -68,6 +68,8 @@ public Q_SLOTS: void slot_TryConnectToServer(); + void slot_ServerBlockState(bool state); + Q_SIGNALS: //сигнал смены языка void signal_LanguageChanged(QString language); diff --git a/LibInstructorsAndTrainees/resources/icons/lock.png b/LibInstructorsAndTrainees/resources/icons/lock.png new file mode 100644 index 0000000000000000000000000000000000000000..bf9e7b23080486e1a9867e232383ac4f8577d9c1 GIT binary patch literal 7394 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 literal 0 HcmV?d00001 diff --git a/LibServer/multithreadserver/multithreadserver.cpp b/LibServer/multithreadserver/multithreadserver.cpp index 0e52572..1fb23e6 100644 --- a/LibServer/multithreadserver/multithreadserver.cpp +++ b/LibServer/multithreadserver/multithreadserver.cpp @@ -162,7 +162,12 @@ bool MultiThreadServer::slot_BlockAutorization(bool block, QString whoFullName, { blockersMap.take(whoFullName); if(!blockersMap.count()) + { this->unBlockAutorization(); + blockRes = false; + } + else + blockRes = true; } if(res)