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 0000000..bf9e7b2
Binary files /dev/null and b/LibInstructorsAndTrainees/resources/icons/lock.png differ
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)