From b7c246b3f6103c9e8da5bf2104c7a87fe313bdbb Mon Sep 17 00:00:00 2001 From: krivoshein Date: Wed, 17 Dec 2025 13:08:38 +0300 Subject: [PATCH 1/8] =?UTF-8?q?=D0=A0=D0=B0=D0=B7=D0=BD=D1=8B=D0=B5=20?= =?UTF-8?q?=D0=B8=D0=BA=D0=BE=D0=BD=D0=BA=D0=B8=20=D0=B2=20=D1=82=D1=80?= =?UTF-8?q?=D0=B5=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- LibServer/serverlmswidget.cpp | 10 ++++++-- LibServer/serverlmswidget.h | 2 ++ ProgramServerMPS/ProgramServerMPS.qrc | 3 +++ ProgramServerMPS/mainwindow.cpp | 23 +++++++++++++++++- ProgramServerMPS/mainwindow.h | 2 ++ .../resources/PngServerRRJ_lock.png | Bin 0 -> 11795 bytes .../resources/PngServerRRJ_start.png | Bin 0 -> 12552 bytes .../resources/PngServerRRJ_stop.png | Bin 0 -> 11070 bytes 8 files changed, 37 insertions(+), 3 deletions(-) create mode 100644 ProgramServerMPS/resources/PngServerRRJ_lock.png create mode 100644 ProgramServerMPS/resources/PngServerRRJ_start.png create mode 100644 ProgramServerMPS/resources/PngServerRRJ_stop.png diff --git a/LibServer/serverlmswidget.cpp b/LibServer/serverlmswidget.cpp index ffcedd3..6d1a9a5 100644 --- a/LibServer/serverlmswidget.cpp +++ b/LibServer/serverlmswidget.cpp @@ -200,6 +200,8 @@ void ServerLMSWidget::slot_BlockAutorization(bool block) ui->lblBlockAuth->setPixmap(QPixmap(QStringLiteral(":/resources/icons/open.png"))); //emit signal_Tray_ShowMessage(tr("Authorization unblocked!")); } + //updateStateServer(); + emit signal_updateStateServer(server->getStateServer(), server->getStateBlockAutorization()); } void ServerLMSWidget::slot_LanguageChanged(QString language) @@ -221,9 +223,10 @@ void ServerLMSWidget::on_btnStartServer_clicked() ui->btnStopServer->setEnabled(true); slot_BlockAutorization(false); + updateStateServer(); + emit signal_Tray_ShowMessage(tr("Server is started!")); } - updateStateServer(); } void ServerLMSWidget::on_btnStopServer_clicked() @@ -234,9 +237,10 @@ void ServerLMSWidget::on_btnStopServer_clicked() ui->btnStartServer->setEnabled(true); slot_BlockAutorization(true); + updateStateServer(); + emit signal_Tray_ShowMessage(tr("Server is stoped!")); } - updateStateServer(); } void ServerLMSWidget::on_btnSettings_clicked() @@ -462,6 +466,8 @@ void ServerLMSWidget::updateStateServer() { ui->lblBlockAuth->setPixmap(QPixmap(QStringLiteral(":/resources/icons/lock.png"))); } + + emit signal_updateStateServer(server->getStateServer(), server->getStateBlockAutorization()); } if(providerDBLMS) diff --git a/LibServer/serverlmswidget.h b/LibServer/serverlmswidget.h index f6a5573..54ee0bb 100644 --- a/LibServer/serverlmswidget.h +++ b/LibServer/serverlmswidget.h @@ -87,6 +87,8 @@ signals: void signal_DocsChanged(); void signal_hasError(int code); + void signal_updateStateServer(EStateServer stateServer, EStateBlockAutorization stateBlockAutorization); + public slots: void slot_LanguageChanged(QString language); void slot_UpdateListClients(); diff --git a/ProgramServerMPS/ProgramServerMPS.qrc b/ProgramServerMPS/ProgramServerMPS.qrc index a5f38ce..67e27b2 100644 --- a/ProgramServerMPS/ProgramServerMPS.qrc +++ b/ProgramServerMPS/ProgramServerMPS.qrc @@ -2,5 +2,8 @@ resources/PngServerRRJ.png resources/IcoServerRRJ.ico + resources/PngServerRRJ_lock.png + resources/PngServerRRJ_start.png + resources/PngServerRRJ_stop.png diff --git a/ProgramServerMPS/mainwindow.cpp b/ProgramServerMPS/mainwindow.cpp index 2a661f0..0b34228 100644 --- a/ProgramServerMPS/mainwindow.cpp +++ b/ProgramServerMPS/mainwindow.cpp @@ -30,6 +30,8 @@ MainWindow::MainWindow(QWidget *parent) : connect(serverLMSWidget, &ServerLMSWidget::signal_Menu_ShowWindow, this, &MainWindow::slot_TrayMenu_ShowWindow); connect(serverLMSWidget, &ServerLMSWidget::signal_Menu_HideWindow, this, &MainWindow::slot_TrayMenu_HideWindow); + connect(serverLMSWidget, &ServerLMSWidget::signal_updateStateServer, this, &MainWindow::slot_updateStateServer); + qtLanguageTranslator.load(QString("translations/RRJServer_") + serverLMSWidget->getLanguage(), "."); qApp->installTranslator(&qtLanguageTranslator); @@ -38,7 +40,7 @@ MainWindow::MainWindow(QWidget *parent) : * */ trayIcon = new QSystemTrayIcon(this); //trayIcon->setIcon(this->style()->standardIcon(QStyle::SP_ComputerIcon)); - trayIcon->setIcon(QPixmap(":/resources/PngServerRRJ.png")); + trayIcon->setIcon(QPixmap(":/resources/PngServerRRJ_stop.png")); /* После чего создаем контекстное меню для иконки трея*/ trayMenu = new QMenu(this); @@ -172,6 +174,25 @@ void MainWindow::slot_Tray_ShowMessage(QString textMsg, QSystemTrayIcon::Message icon, 100); } +void MainWindow::slot_updateStateServer(EStateServer stateServer, EStateBlockAutorization stateBlockAutorization) +{ + if(stateServer == EStateServer::started) + { + if(stateBlockAutorization == EStateBlockAutorization::unblocked) + { + trayIcon->setIcon(QPixmap(":/resources/PngServerRRJ_start.png")); + } + else + { + trayIcon->setIcon(QPixmap(":/resources/PngServerRRJ_lock.png")); + } + } + else + { + trayIcon->setIcon(QPixmap(":/resources/PngServerRRJ_stop.png")); + } +} + void MainWindow::slot_LazyInitialization() { serverLMSWidget->start(); diff --git a/ProgramServerMPS/mainwindow.h b/ProgramServerMPS/mainwindow.h index 775f8a3..de3cecc 100644 --- a/ProgramServerMPS/mainwindow.h +++ b/ProgramServerMPS/mainwindow.h @@ -52,6 +52,8 @@ public slots: //Слот вывода сообщения из трея void slot_Tray_ShowMessage(QString textMsg, QSystemTrayIcon::MessageIcon iconMsg = QSystemTrayIcon::Information); + //Слот изменения иконки трея + void slot_updateStateServer(EStateServer stateServer, EStateBlockAutorization stateBlockAutorization); //Слот отложенной инициализации void slot_LazyInitialization(); diff --git a/ProgramServerMPS/resources/PngServerRRJ_lock.png b/ProgramServerMPS/resources/PngServerRRJ_lock.png new file mode 100644 index 0000000000000000000000000000000000000000..65dae956ecd5c1a49022f64f0ba304338970c46f GIT binary patch literal 11795 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 literal 0 HcmV?d00001 diff --git a/ProgramServerMPS/resources/PngServerRRJ_start.png b/ProgramServerMPS/resources/PngServerRRJ_start.png new file mode 100644 index 0000000000000000000000000000000000000000..1aa735eb36a2c77b85b3364713971bd43101d40d GIT binary patch literal 12552 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 _Z%Z23nc{&f?KiR{X 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 literal 0 HcmV?d00001 diff --git a/ProgramServerMPS/resources/PngServerRRJ_stop.png b/ProgramServerMPS/resources/PngServerRRJ_stop.png new file mode 100644 index 0000000000000000000000000000000000000000..5521a3e9f9761008353cd7082bbfa820d8933932 GIT binary patch literal 11070 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 Date: Wed, 17 Dec 2025 15:15:34 +0300 Subject: [PATCH 2/8] =?UTF-8?q?=D0=9D=D0=BE=D1=82=D0=B8=D1=84=D0=B8=D0=BA?= =?UTF-8?q?=D0=B0=D1=86=D0=B8=D1=8F=20=D1=80=D0=B5=D1=84=D0=B0=D0=BA=D1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- LibServer/resources/icons/lock.png | Bin 21203 -> 9906 bytes LibServer/resources/icons/old/lock.png | Bin 0 -> 21203 bytes LibServer/resources/icons/old/stop.png | Bin 0 -> 14479 bytes LibServer/resources/icons/stop.png | Bin 14479 -> 12029 bytes LibServer/serverlmswidget.cpp | 85 +++++++++++++++++-------- LibServer/serverlmswidget.h | 4 +- LibServer/serverlmswidget.ui | 71 +++------------------ 7 files changed, 71 insertions(+), 89 deletions(-) create mode 100644 LibServer/resources/icons/old/lock.png create mode 100644 LibServer/resources/icons/old/stop.png diff --git a/LibServer/resources/icons/lock.png b/LibServer/resources/icons/lock.png index e970b1ebb6e80bcb5908a8e4d1eb68db3e069762..0cd09cab76a1c19405cbce8eec405424d5174f5f 100644 GIT binary patch literal 9906 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%0A@*aTw62@X80aMNn01_c}E3?cW45THGO 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%0A@*aTw62@X80aMNn01_c}E3?cW45THGO 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 literal 0 HcmV?d00001 diff --git a/LibServer/resources/icons/stop.png b/LibServer/resources/icons/stop.png index d9122fd0c636e520222158314a09ad83ae5c83f5..286e53f74d6dd5eced88aee1d9e9a0a2897ff39c 100644 GIT binary patch literal 12029 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 literal 14479 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 diff --git a/LibServer/serverlmswidget.cpp b/LibServer/serverlmswidget.cpp index 6d1a9a5..95f63eb 100644 --- a/LibServer/serverlmswidget.cpp +++ b/LibServer/serverlmswidget.cpp @@ -57,6 +57,8 @@ ServerLMSWidget::ServerLMSWidget(QWidget *parent) : waitAnimationWidget->initialize(movie,this); waitAnimationWidget->showWithPlay(); + + updateStateOnlyVersion(); } ServerLMSWidget::~ServerLMSWidget() @@ -100,7 +102,9 @@ void ServerLMSWidget::changeEvent(QEvent *event) { ui->retranslateUi(this); // переведём окно заново - updateStateServer(); + updateStateOnlyServer(); + updateStateOnlyDB(); + updateStateOnlyVersion(); } } @@ -161,7 +165,9 @@ void ServerLMSWidget::slot_startInitialization_step1() flStartInitialization = true; - updateStateServer(); + updateStateOnlyServer(); + updateStateOnlyDB(); + updateStateOnlyVersion(); QApplication::restoreOverrideCursor(); @@ -177,7 +183,7 @@ void ServerLMSWidget::slot_startInitialization_step1() void ServerLMSWidget::slot_setVersion(QString versionStr) { this->versionStr = versionStr; - ui->lblVersionText->setText(versionStr); + updateStateOnlyVersion(); } void ServerLMSWidget::start() @@ -191,17 +197,41 @@ void ServerLMSWidget::slot_BlockAutorization(bool block) if(block) { server->blockAutorization(); - ui->lblBlockAuth->setPixmap(QPixmap(QStringLiteral(":/resources/icons/lock.png"))); + //ui->lblBlockAuth->setPixmap(QPixmap(QStringLiteral(":/resources/icons/lock.png"))); //emit signal_Tray_ShowMessage(tr("Authorization blocked!")); } else { server->unBlockAutorization(); - ui->lblBlockAuth->setPixmap(QPixmap(QStringLiteral(":/resources/icons/open.png"))); + //ui->lblBlockAuth->setPixmap(QPixmap(QStringLiteral(":/resources/icons/open.png"))); //emit signal_Tray_ShowMessage(tr("Authorization unblocked!")); } //updateStateServer(); - emit signal_updateStateServer(server->getStateServer(), server->getStateBlockAutorization()); + //emit signal_updateStateServer(server->getStateServer(), server->getStateBlockAutorization()); + + if(server) + { + if(server->getStateServer() == EStateServer::started) + { + if(server->getStateBlockAutorization() == EStateBlockAutorization::unblocked) + { + ui->lblOnOffText->setText(tr("started")); + ui->lblOnOff->setPixmap(QPixmap(QStringLiteral(":/resources/icons/circleGreen.png"))); + } + else + { + ui->lblOnOffText->setText(tr("started") + ", " + tr("locked")); + ui->lblOnOff->setPixmap(QPixmap(QStringLiteral(":/resources/icons/lock.png"))); + } + } + else + { + ui->lblOnOffText->setText(tr("stoped")); + ui->lblOnOff->setPixmap(QPixmap(QStringLiteral(":/resources/icons/stop.png"))); + } + + emit signal_updateStateServer(server->getStateServer(), server->getStateBlockAutorization()); + } } void ServerLMSWidget::slot_LanguageChanged(QString language) @@ -223,7 +253,7 @@ void ServerLMSWidget::on_btnStartServer_clicked() ui->btnStopServer->setEnabled(true); slot_BlockAutorization(false); - updateStateServer(); + updateStateOnlyServer(); emit signal_Tray_ShowMessage(tr("Server is started!")); } @@ -237,7 +267,7 @@ void ServerLMSWidget::on_btnStopServer_clicked() ui->btnStartServer->setEnabled(true); slot_BlockAutorization(true); - updateStateServer(); + updateStateOnlyServer(); emit signal_Tray_ShowMessage(tr("Server is stoped!")); } @@ -275,7 +305,7 @@ void ServerLMSWidget::on_btnSettings_clicked() providerDBLMS->DisConnectionFromDB(); - updateStateServer(); + updateStateOnlyDB(); SpecMsgBox::WarningClose(this, tr("Database settings have been changed.\nThe server will be restarted.")); @@ -296,12 +326,12 @@ void ServerLMSWidget::slot_trySetServerState(PacketType packetType) if (packetType == PacketType::BUSY) { server->blockAutorization(); - updateStateServer(); + updateStateOnlyServer(); } else if (packetType == PacketType::FREE) { server->unBlockAutorization(); - updateStateServer(); + updateStateOnlyServer(); } } @@ -440,36 +470,38 @@ void ServerLMSWidget::tryConnectionToDB() on_btnStartServer_clicked(); } - updateStateServer(); + updateStateOnlyDB(); } -void ServerLMSWidget::updateStateServer() +void ServerLMSWidget::updateStateOnlyServer() { if(server) { if(server->getStateServer() == EStateServer::started) { - ui->lblOnOffText->setText(tr("started")); - ui->lblOnOff->setPixmap(QPixmap(QStringLiteral(":/resources/icons/circleGreen.png"))); + if(server->getStateBlockAutorization() == EStateBlockAutorization::unblocked) + { + ui->lblOnOffText->setText(tr("started")); + ui->lblOnOff->setPixmap(QPixmap(QStringLiteral(":/resources/icons/circleGreen.png"))); + } + else + { + ui->lblOnOffText->setText(tr("started") + ", " + tr("locked")); + ui->lblOnOff->setPixmap(QPixmap(QStringLiteral(":/resources/icons/lock.png"))); + } } else { ui->lblOnOffText->setText(tr("stoped")); - ui->lblOnOff->setPixmap(QPixmap(QStringLiteral(":/resources/icons/circleGray.png"))); - } - - if(server->getStateBlockAutorization() == EStateBlockAutorization::unblocked) - { - ui->lblBlockAuth->setPixmap(QPixmap(QStringLiteral(":/resources/icons/open.png"))); - } - else - { - ui->lblBlockAuth->setPixmap(QPixmap(QStringLiteral(":/resources/icons/lock.png"))); + ui->lblOnOff->setPixmap(QPixmap(QStringLiteral(":/resources/icons/stop.png"))); } emit signal_updateStateServer(server->getStateServer(), server->getStateBlockAutorization()); } +} +void ServerLMSWidget::updateStateOnlyDB() +{ if(providerDBLMS) { if(providerDBLMS->DBisConnected()) @@ -492,6 +524,9 @@ void ServerLMSWidget::updateStateServer() ui->btnStartServer->setEnabled(false); } } +} +void ServerLMSWidget::updateStateOnlyVersion() +{ ui->lblVersionText->setText(versionStr); } diff --git a/LibServer/serverlmswidget.h b/LibServer/serverlmswidget.h index 54ee0bb..8c1d26d 100644 --- a/LibServer/serverlmswidget.h +++ b/LibServer/serverlmswidget.h @@ -155,7 +155,9 @@ private: void tryConnectionToDB(); - void updateStateServer(); + void updateStateOnlyServer(); + void updateStateOnlyDB(); + void updateStateOnlyVersion(); private: Ui::ServerLMSWidget *ui; diff --git a/LibServer/serverlmswidget.ui b/LibServer/serverlmswidget.ui index 24272ee..cf72489 100644 --- a/LibServer/serverlmswidget.ui +++ b/LibServer/serverlmswidget.ui @@ -68,7 +68,7 @@ Start - + :/resources/icons/rocket.png:/resources/icons/rocket.png @@ -109,7 +109,7 @@ Stop - + :/resources/icons/stop.png:/resources/icons/stop.png @@ -148,7 +148,7 @@ Settings - + :/resources/icons/settings.png:/resources/icons/settings.png @@ -250,7 +250,7 @@ - :/resources/icons/circleGray.png + :/resources/icons/circleGray.png true @@ -268,7 +268,7 @@ - 100 + 200 0 @@ -305,7 +305,7 @@ - :/resources/icons/circleGray.png + :/resources/icons/circleGray.png @@ -374,61 +374,6 @@ - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - - - Authorization - - - - - - - - 0 - 0 - - - - - 32 - 32 - - - - - 32 - 32 - - - - - - - :/resources/icons/lock.png - - - true - - - - - @@ -436,8 +381,8 @@ - - + + From 360b7402204a8391b16ecd07b35188a1b63be3e3 Mon Sep 17 00:00:00 2001 From: krivoshein Date: Wed, 17 Dec 2025 17:17:34 +0300 Subject: [PATCH 3/8] refact --- .../tasks/fimtaskswidget.ui | 8 +- LibServer/serverlmswidget.cpp | 77 +++++++------------ LibServer/serverlmswidget.h | 6 +- .../ProgramAWSinstructorMPS.qrc | 2 +- ProgramServerMPS/mainwindow.cpp | 14 +--- ProgramServerMPS/mainwindow.h | 3 +- 6 files changed, 41 insertions(+), 69 deletions(-) diff --git a/LibInstructorsAndTrainees/tasks/fimtaskswidget.ui b/LibInstructorsAndTrainees/tasks/fimtaskswidget.ui index 8a3fbed..2ccac45 100644 --- a/LibInstructorsAndTrainees/tasks/fimtaskswidget.ui +++ b/LibInstructorsAndTrainees/tasks/fimtaskswidget.ui @@ -54,7 +54,7 @@ Assign - + :/resources/icons/assignTask.png:/resources/icons/assignTask.png @@ -80,7 +80,7 @@ Check - + :/resources/icons/check.png:/resources/icons/check.png @@ -106,7 +106,7 @@ Delete - + :/resources/icons/delete.png:/resources/icons/delete.png @@ -129,7 +129,7 @@ - + diff --git a/LibServer/serverlmswidget.cpp b/LibServer/serverlmswidget.cpp index 95f63eb..51c9c17 100644 --- a/LibServer/serverlmswidget.cpp +++ b/LibServer/serverlmswidget.cpp @@ -2,7 +2,6 @@ #include #include #include -#include #include #include #include "serverlmswidget.h" @@ -141,7 +140,7 @@ void ServerLMSWidget::slot_AddMessageToLog(QString message) void ServerLMSWidget::slot_ErrorPostgreSQL(QString text) { emit signal_Menu_ShowWindow(); - SpecMsgBox::CriticalClose(this, tr("Error PostgreSQL!")); + SpecMsgBox::CriticalClose(this, tr("Error PostgreSQL!") + "\n" + text); } void ServerLMSWidget::slot_UpdateDocs() @@ -183,13 +182,13 @@ void ServerLMSWidget::slot_startInitialization_step1() void ServerLMSWidget::slot_setVersion(QString versionStr) { this->versionStr = versionStr; + Logger::instance().log("Set Version: " + versionStr); updateStateOnlyVersion(); } void ServerLMSWidget::start() { startInitialization_step0(); - } void ServerLMSWidget::slot_BlockAutorization(bool block) @@ -197,41 +196,14 @@ void ServerLMSWidget::slot_BlockAutorization(bool block) if(block) { server->blockAutorization(); - //ui->lblBlockAuth->setPixmap(QPixmap(QStringLiteral(":/resources/icons/lock.png"))); - //emit signal_Tray_ShowMessage(tr("Authorization blocked!")); + Logger::instance().log("Autorization is blocked"); } else { server->unBlockAutorization(); - //ui->lblBlockAuth->setPixmap(QPixmap(QStringLiteral(":/resources/icons/open.png"))); - //emit signal_Tray_ShowMessage(tr("Authorization unblocked!")); - } - //updateStateServer(); - //emit signal_updateStateServer(server->getStateServer(), server->getStateBlockAutorization()); - - if(server) - { - if(server->getStateServer() == EStateServer::started) - { - if(server->getStateBlockAutorization() == EStateBlockAutorization::unblocked) - { - ui->lblOnOffText->setText(tr("started")); - ui->lblOnOff->setPixmap(QPixmap(QStringLiteral(":/resources/icons/circleGreen.png"))); - } - else - { - ui->lblOnOffText->setText(tr("started") + ", " + tr("locked")); - ui->lblOnOff->setPixmap(QPixmap(QStringLiteral(":/resources/icons/lock.png"))); - } - } - else - { - ui->lblOnOffText->setText(tr("stoped")); - ui->lblOnOff->setPixmap(QPixmap(QStringLiteral(":/resources/icons/stop.png"))); - } - - emit signal_updateStateServer(server->getStateServer(), server->getStateBlockAutorization()); + Logger::instance().log("Autorization is unblocked"); } + updateStateOnlyServer(); } void ServerLMSWidget::slot_LanguageChanged(QString language) @@ -247,7 +219,6 @@ void ServerLMSWidget::on_btnStartServer_clicked() if(server->startServer()) { QApplication::setOverrideCursor(Qt::WaitCursor); - QApplication::restoreOverrideCursor(); ui->btnStartServer->setEnabled(false); ui->btnStopServer->setEnabled(true); @@ -256,6 +227,8 @@ void ServerLMSWidget::on_btnStartServer_clicked() updateStateOnlyServer(); emit signal_Tray_ShowMessage(tr("Server is started!")); + + QApplication::restoreOverrideCursor(); } } @@ -263,6 +236,8 @@ void ServerLMSWidget::on_btnStopServer_clicked() { if(server->stopServer()) { + QApplication::setOverrideCursor(Qt::WaitCursor); + ui->btnStopServer->setEnabled(false); ui->btnStartServer->setEnabled(true); slot_BlockAutorization(true); @@ -270,6 +245,8 @@ void ServerLMSWidget::on_btnStopServer_clicked() updateStateOnlyServer(); emit signal_Tray_ShowMessage(tr("Server is stoped!")); + + QApplication::restoreOverrideCursor(); } } @@ -409,41 +386,43 @@ void ServerLMSWidget::startInitialization_step0() processingSystem = new ProcessingSystem(providerDBLMS, updateController, docsUpdater); - dataParser = new DataParser(assetsManager,processingSystem); + dataParser = new DataParser(assetsManager, processingSystem); commonClientHandler = new CommonClientHandler; - connect(this,&ServerLMSWidget::signal_DocsChanged,commonClientHandler, &CommonClientHandler::slot_DocsChanged); - connect(commonClientHandler,&CommonClientHandler::sigSetServerState,this,&ServerLMSWidget::slot_trySetServerState); + connect(this, &ServerLMSWidget::signal_DocsChanged, commonClientHandler, &CommonClientHandler::slot_DocsChanged); + connect(commonClientHandler, &CommonClientHandler::sigSetServerState, this, &ServerLMSWidget::slot_trySetServerState); - server = new MultiThreadServer(this,updateController,processingSystem,dataParser,6000); + server = new MultiThreadServer(this, updateController, processingSystem, dataParser, 6000); loggerThread->start(); updateThread->start(); - commonClientHandler->initialize(server->getClientsMap(),processingSystem,dataParser); - processingSystem->initialize(server,dataParser,commonClientHandler,updateController,chatSystem); - chatSystem->initialize(commonClientHandler,dataParser,server->getClientsMap()); + commonClientHandler->initialize(server->getClientsMap(), processingSystem, dataParser); + processingSystem->initialize(server, dataParser, commonClientHandler, updateController, chatSystem); + chatSystem->initialize(commonClientHandler, dataParser, server->getClientsMap()); Logger::instance().moveToThread(loggerThread); Logger::instance().setLoggingType(LoggingType::WIDGET); Logger::instance().setLogToFile(true); - connect(this,&ServerLMSWidget::sigUpdateControllerInitialize,updateController,&UpdateController::initialize/*,Qt::DirectConnection*/); - connect(updateController,&UpdateController::sigInitializeFinished, this,&ServerLMSWidget::slot_startInitialization_step1/*,Qt::DirectConnection*/); - connect(this,&ServerLMSWidget::sigCalculateFullHash,updateController,&UpdateController::calculateFullHash,Qt::AutoConnection); - connect(updateController,&UpdateController::sigErrorRequired,this,&ServerLMSWidget::setError); - connect(updateController,&UpdateController::sigUpdateDocs,this,&ServerLMSWidget::slot_UpdateDocs,Qt::AutoConnection); - connect(&Logger::instance(),&Logger::sigLogToWidget,this, &ServerLMSWidget::slot_AddMessageToLog,Qt::QueuedConnection); + connect(this, &ServerLMSWidget::sigUpdateControllerInitialize, updateController, &UpdateController::initialize); + connect(updateController, &UpdateController::sigInitializeFinished, this, &ServerLMSWidget::slot_startInitialization_step1); + connect(this, &ServerLMSWidget::sigCalculateFullHash, updateController, &UpdateController::calculateFullHash, Qt::AutoConnection); + connect(updateController, &UpdateController::sigErrorRequired, this, &ServerLMSWidget::setError); + connect(updateController, &UpdateController::sigUpdateDocs, this, &ServerLMSWidget::slot_UpdateDocs, Qt::AutoConnection); + connect(&Logger::instance(), &Logger::sigLogToWidget, this, &ServerLMSWidget::slot_AddMessageToLog, Qt::QueuedConnection); - connect(assetsManager,&AssetsManager::signal_setVersion, this, &ServerLMSWidget::slot_setVersion); + connect(assetsManager, &AssetsManager::signal_setVersion, this, &ServerLMSWidget::slot_setVersion); - emit sigUpdateControllerInitialize(commonClientHandler,dataParser,assetsManager); + emit sigUpdateControllerInitialize(commonClientHandler, dataParser, assetsManager); } void ServerLMSWidget::tryConnectionToDB() { if(! providerDBLMS->ConnectionToDB()) { + Logger::instance().log("Database connection error!"); + emit signal_Tray_ShowMessage(tr("Database connection error!"), QSystemTrayIcon::Critical); emit signal_Menu_ShowWindow(); diff --git a/LibServer/serverlmswidget.h b/LibServer/serverlmswidget.h index 8c1d26d..aa5a93f 100644 --- a/LibServer/serverlmswidget.h +++ b/LibServer/serverlmswidget.h @@ -82,7 +82,6 @@ signals: void sigRecognize(); void sigCalculateFullHash(); void sigUpdateControllerInitialize(CommonClientHandler* commonClientHandler,DataParser *dataParser,AssetsManager *assetManager); - QTcpSocket* sigGetSocket(); void signal_DocsChanged(); void signal_hasError(int code); @@ -103,6 +102,8 @@ public slots: void slot_setVersion(QString versionStr); + void slot_trySetServerState(PacketType packetType); + public: QString getLanguage() { @@ -143,8 +144,7 @@ public: private slots: void on_btnStartServer_clicked(); void on_btnStopServer_clicked(); - void on_btnSettings_clicked(); - void slot_trySetServerState(PacketType packetType); + void on_btnSettings_clicked(); private: void setLanguageInterfase(); diff --git a/ProgramAWSinstructorMPS/ProgramAWSinstructorMPS.qrc b/ProgramAWSinstructorMPS/ProgramAWSinstructorMPS.qrc index 491b03b..0b99e1b 100644 --- a/ProgramAWSinstructorMPS/ProgramAWSinstructorMPS.qrc +++ b/ProgramAWSinstructorMPS/ProgramAWSinstructorMPS.qrc @@ -1,6 +1,6 @@ - resources/IcoGUIRRJ.ico resources/PngGUIRRJ.png + resources/IcoGUIRRJ.ico diff --git a/ProgramServerMPS/mainwindow.cpp b/ProgramServerMPS/mainwindow.cpp index 0b34228..9f2c547 100644 --- a/ProgramServerMPS/mainwindow.cpp +++ b/ProgramServerMPS/mainwindow.cpp @@ -1,4 +1,3 @@ -#include #include #include #include @@ -68,7 +67,7 @@ MainWindow::MainWindow(QWidget *parent) : slot_Tray_ShowMessage(tr("Starting the server...")); - QTimer::singleShot(1000,this,&MainWindow::slot_LazyInitialization); + QTimer::singleShot(1000, this, &MainWindow::slot_LazyInitialization); } MainWindow::~MainWindow() @@ -153,11 +152,6 @@ void MainWindow::slot_TrayMenu_HideWindow() this->hide(); action_ShowWindow->setEnabled(true); action_HideWindow->setEnabled(false); - - /* - slot_Tray_ShowMessage(tr("The application is minimized to the tray.\n" - "To maximize the application window, click the application icon in the tray.")); - */ } void MainWindow::slot_TrayMenu_Exit() @@ -169,9 +163,7 @@ void MainWindow::slot_TrayMenu_Exit() void MainWindow::slot_Tray_ShowMessage(QString textMsg, QSystemTrayIcon::MessageIcon iconMsg) { QSystemTrayIcon::MessageIcon icon = QSystemTrayIcon::MessageIcon(iconMsg); - trayIcon->showMessage(tr("Server MPS"), - textMsg, - icon, 100); + trayIcon->showMessage(tr("Server MPS"), textMsg, icon, 100); } void MainWindow::slot_updateStateServer(EStateServer stateServer, EStateBlockAutorization stateBlockAutorization) @@ -230,7 +222,7 @@ void MainWindow::errorCheck() slot_TrayMenu_ShowWindow(); //выключение с задержкой, так как eventLoop инициализируется позже - QTimer::singleShot(1000,this,&MainWindow::slot_TrayMenu_Exit); + QTimer::singleShot(1000, this, &MainWindow::slot_TrayMenu_Exit); } } diff --git a/ProgramServerMPS/mainwindow.h b/ProgramServerMPS/mainwindow.h index de3cecc..191d9ff 100644 --- a/ProgramServerMPS/mainwindow.h +++ b/ProgramServerMPS/mainwindow.h @@ -52,13 +52,14 @@ public slots: //Слот вывода сообщения из трея void slot_Tray_ShowMessage(QString textMsg, QSystemTrayIcon::MessageIcon iconMsg = QSystemTrayIcon::Information); - //Слот изменения иконки трея + //Слот изменения иконки трея о статусе Сервера void slot_updateStateServer(EStateServer stateServer, EStateBlockAutorization stateBlockAutorization); //Слот отложенной инициализации void slot_LazyInitialization(); void slot_hasError(int code); + private: void exit(); void errorCheck(); From c8ca0e32ad2390f71f1e5779c87d03ca085e67f1 Mon Sep 17 00:00:00 2001 From: krivoshein Date: Thu, 18 Dec 2025 10:27:10 +0300 Subject: [PATCH 4/8] =?UTF-8?q?=D0=98=D0=B7=D0=BC=D0=B5=D0=BD=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D0=B5=20=D1=81=D1=82=D0=B0=D1=82=D1=83=D1=81=D0=B0=20?= =?UTF-8?q?=D0=B4=D0=BB=D1=8F=20=D0=A4=D0=98=D0=9C.=20=D0=92=20=D0=BF?= =?UTF-8?q?=D1=80=D0=BE=D1=86=D0=B5=D1=81=D1=81=D0=B5.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- FILES/CSS/styleSheetMain.css | 2 +- .../tasks/ammtaskswidget.cpp | 36 +++++++++---------- .../tasks/ammtaskswidget.h | 4 +-- .../tasks/ammtaskswidget.ui | 2 +- .../tasks/checkertask.cpp | 20 +++++------ LibInstructorsAndTrainees/tasks/checkertask.h | 13 +++++-- .../tasks/dialogchekertask.cpp | 19 ++++++---- .../tasks/dialogchekertask.h | 2 +- .../tasks/fimtaskswidget.cpp | 2 +- 9 files changed, 58 insertions(+), 42 deletions(-) diff --git a/FILES/CSS/styleSheetMain.css b/FILES/CSS/styleSheetMain.css index d5e4990..45f7ba3 100644 --- a/FILES/CSS/styleSheetMain.css +++ b/FILES/CSS/styleSheetMain.css @@ -81,7 +81,7 @@ QToolButton { height: 55px; } -QToolButton#btnSend, QToolButton#btnDelete, QToolButton#btnCheck, QToolButton#btnOnlyActive, +QToolButton#btnSend, QToolButton#btnDelete, QToolButton#btnCheck, QToolButton#btnOnlyActive, QToolButton#btnStatus, QToolButton#btnSave, QToolButton#btnUpdateStyle, QToolButton#btnSetVersion, QToolButton#btnAssignTask, QToolButton#btnCheckDB, QToolButton#btnRepare, QToolButton#btnDocsUpdating, QToolButton#btnAssign { diff --git a/LibInstructorsAndTrainees/tasks/ammtaskswidget.cpp b/LibInstructorsAndTrainees/tasks/ammtaskswidget.cpp index 7a820fd..44a83c2 100644 --- a/LibInstructorsAndTrainees/tasks/ammtaskswidget.cpp +++ b/LibInstructorsAndTrainees/tasks/ammtaskswidget.cpp @@ -21,7 +21,7 @@ AMMtasksWidget::AMMtasksWidget(ConnectorToServer* connectorToServer, TypeListTre threadPreparation(nullptr), taskTreePreparation(nullptr), waitAnimationWidget(nullptr), - dlgCheckerTask(nullptr), + dlgStatusTask(nullptr), dlgListSubProc(nullptr), flOnlyActive(false), lastCurrentID(0) @@ -63,8 +63,8 @@ AMMtasksWidget::AMMtasksWidget(ConnectorToServer* connectorToServer, TypeListTre ui->btnDelete->setObjectName("btnDelete"); ui->btnDelete->setEnabled(false); - ui->btnCheck->setObjectName("btnCheck"); - ui->btnCheck->setEnabled(false); + ui->btnStatus->setObjectName("btnStatus"); + ui->btnStatus->setEnabled(false); ui->btnOnlyActive->setObjectName("btnOnlyActive"); ui->btnOnlyActive->setEnabled(false); ui->btnAssignTask->setObjectName("btnAssignTask"); @@ -75,7 +75,7 @@ AMMtasksWidget::AMMtasksWidget(ConnectorToServer* connectorToServer, TypeListTre if(type == TypeListTreeAMMFIM::listCommon) { ui->btnDelete->setVisible(false); - ui->btnCheck->setVisible(false); + ui->btnStatus->setVisible(false); } else { @@ -153,8 +153,8 @@ void AMMtasksWidget::closeEvent(QCloseEvent *event) void AMMtasksWidget::closeChildDlg() { - if(dlgCheckerTask) - dlgCheckerTask->close(); + if(dlgStatusTask) + dlgStatusTask->close(); if(dlgListSubProc) dlgListSubProc->close(); } @@ -183,7 +183,7 @@ void AMMtasksWidget::on_treeWidgetItemClicked(QTreeWidgetItem *item, int column) if(item == nullptr) { ui->btnDelete->setEnabled(false); - ui->btnCheck->setEnabled(false); + ui->btnStatus->setEnabled(false); ui->btnAssignTask->setEnabled(false); return; } @@ -204,14 +204,14 @@ void AMMtasksWidget::on_treeWidgetItemClicked(QTreeWidgetItem *item, int column) lastCurrentID = id; ui->btnDelete->setEnabled(false); - ui->btnCheck->setEnabled(false); + ui->btnStatus->setEnabled(false); } else if(this->type == TypeListTreeAMMFIM::listForTrainee) { QTreeWidgetItem *treeItemParent = item->parent(); if(treeItemParent == nullptr) {//Выбрана задача - ui->btnCheck->setEnabled(true); + ui->btnStatus->setEnabled(true); ui->btnDelete->setEnabled(true); int id = item->text(ColumnsTreeAMM::clmnAMM_ID).toInt(); @@ -222,7 +222,7 @@ void AMMtasksWidget::on_treeWidgetItemClicked(QTreeWidgetItem *item, int column) } else { - ui->btnCheck->setEnabled(false); + ui->btnStatus->setEnabled(false); ui->btnDelete->setEnabled(false); } ui->btnAssignTask->setEnabled(false); @@ -515,7 +515,7 @@ void AMMtasksWidget::on_btnDelete_clicked() } } -void AMMtasksWidget::on_btnCheck_clicked() +void AMMtasksWidget::on_btnStatus_clicked() { QTreeWidgetItem *treeItemCurrent = treeWidget->currentItem(); @@ -529,17 +529,17 @@ void AMMtasksWidget::on_btnCheck_clicked() if(!task.getID()) return; - dlgCheckerTask = new DialogChekerTask(connectorToServer, "amm", this); - dlgCheckerTask->setTask(&task); - dlgCheckerTask->exec(); + dlgStatusTask = new DialogChekerTask(connectorToServer, CheckerTask::TypeChecker::amm_status, this); + dlgStatusTask->setTask(&task); + dlgStatusTask->exec(); - if(dlgCheckerTask->getFlChanged()) + if(dlgStatusTask->getFlChanged()) waitAnimationWidget->showWithPlay(); - if(dlgCheckerTask) + if(dlgStatusTask) { - delete dlgCheckerTask; - dlgCheckerTask = nullptr; + delete dlgStatusTask; + dlgStatusTask = nullptr; } } } diff --git a/LibInstructorsAndTrainees/tasks/ammtaskswidget.h b/LibInstructorsAndTrainees/tasks/ammtaskswidget.h index 32bba57..1c0a695 100644 --- a/LibInstructorsAndTrainees/tasks/ammtaskswidget.h +++ b/LibInstructorsAndTrainees/tasks/ammtaskswidget.h @@ -42,7 +42,7 @@ protected: private Q_SLOTS: void on_treeWidgetItemClicked(QTreeWidgetItem *item, int column); void on_btnDelete_clicked(); - void on_btnCheck_clicked(); + void on_btnStatus_clicked(); void on_btnAssignTask_clicked(); void on_btnOnlyActive_clicked(); //AMM @@ -99,7 +99,7 @@ private: TaskAMMFIMTreePreparation* taskTreePreparation; WaitAnimationWidget *waitAnimationWidget; - DialogChekerTask* dlgCheckerTask; + DialogChekerTask* dlgStatusTask; DialogListSubProc* dlgListSubProc; diff --git a/LibInstructorsAndTrainees/tasks/ammtaskswidget.ui b/LibInstructorsAndTrainees/tasks/ammtaskswidget.ui index a15ab3c..0f14cdc 100644 --- a/LibInstructorsAndTrainees/tasks/ammtaskswidget.ui +++ b/LibInstructorsAndTrainees/tasks/ammtaskswidget.ui @@ -133,7 +133,7 @@ - + 50 diff --git a/LibInstructorsAndTrainees/tasks/checkertask.cpp b/LibInstructorsAndTrainees/tasks/checkertask.cpp index a4af13e..0ef86b9 100644 --- a/LibInstructorsAndTrainees/tasks/checkertask.cpp +++ b/LibInstructorsAndTrainees/tasks/checkertask.cpp @@ -3,20 +3,20 @@ #include "ui_checkertask.h" #include "fimtaskswidget.h" -CheckerTask::CheckerTask(ConnectorToServer* connectorToServer, QString type, QWidget *parent) : +CheckerTask::CheckerTask(ConnectorToServer* connectorToServer, TypeChecker type, QWidget *parent) : QWidget(parent), ui(new Ui::CheckerTask), connectorToServer(connectorToServer), fimTasksWidget(nullptr), flChanged(false), id_task(0), - type("fim") + type(TypeChecker::fim_check) { ui->setupUi(this); this->type = type; - if(type == "fim") + if(type == TypeChecker::fim_check) { fimTasksWidget = new FIMtasksWidget(nullptr, TypeListTreeAMMFIM::listOneTask, this); @@ -27,7 +27,7 @@ CheckerTask::CheckerTask(ConnectorToServer* connectorToServer, QString type, QWi ui->plainText->setReadOnly(true); ui->plainText->setObjectName("plainText"); } - else + else if(type == TypeChecker::amm_status) { ui->plainText->setVisible(false); ui->label->setVisible(false); @@ -62,7 +62,7 @@ void CheckerTask::setTask(TaskAmmFim* task) this->task = *task; id_task = task->getID(); - if(type == "fim") + if(type == TypeChecker::fim_check) { //Задача fimTasksWidget->setOneTaskFim(&this->task); @@ -70,7 +70,7 @@ void CheckerTask::setTask(TaskAmmFim* task) //Репорт outReport(this->task.report); } - else if(type == "amm") + else if(type == TypeChecker::amm_status) { if(this->task.status == "new") ui->btnRight->setEnabled(true); @@ -163,13 +163,13 @@ void CheckerTask::on_btnWrong_clicked() QString status; QString msgString; - if(type == "fim") + if(type == TypeChecker::fim_check) { typeQuery = TypeQueryToDB::TYPE_QUERY_CHANGE_STATUS_REPORT_TASK_FIM_TO_TRAINEE; status = "failed"; msgString = tr("Change task status?\nThe status will be set:\n'failed'"); } - else + else if(type == TypeChecker::amm_status) { typeQuery = TypeQueryToDB::TYPE_QUERY_CHANGE_STATUS_REPORT_TASK_AMM_TO_TRAINEE; status = "new"; @@ -190,13 +190,13 @@ void CheckerTask::on_btnRight_clicked() QString status; QString msgString; - if(type == "fim") + if(type == TypeChecker::fim_check) { typeQuery = TypeQueryToDB::TYPE_QUERY_CHANGE_STATUS_REPORT_TASK_FIM_TO_TRAINEE; status = "completed"; msgString = tr("Change task status?\nThe status will be set:\n'completed'"); } - else + else if(type == TypeChecker::amm_status) { typeQuery = TypeQueryToDB::TYPE_QUERY_CHANGE_STATUS_REPORT_TASK_AMM_TO_TRAINEE; status = "completed"; diff --git a/LibInstructorsAndTrainees/tasks/checkertask.h b/LibInstructorsAndTrainees/tasks/checkertask.h index 639e55c..07be77f 100644 --- a/LibInstructorsAndTrainees/tasks/checkertask.h +++ b/LibInstructorsAndTrainees/tasks/checkertask.h @@ -19,7 +19,16 @@ class CheckerTask : public QWidget Q_OBJECT public: - explicit CheckerTask(ConnectorToServer* connectorToServer, QString type, QWidget *parent = nullptr); + enum TypeChecker + { + amm_status, + amm_check, + fim_status, + fim_check + }; + +public: + explicit CheckerTask(ConnectorToServer* connectorToServer, TypeChecker type, QWidget *parent = nullptr); ~CheckerTask(); void closeEvent(QCloseEvent *event) override; @@ -50,7 +59,7 @@ private: bool flChanged; int id_task; - QString type; + TypeChecker type; }; #endif // DIALOGCHECKTASK_H diff --git a/LibInstructorsAndTrainees/tasks/dialogchekertask.cpp b/LibInstructorsAndTrainees/tasks/dialogchekertask.cpp index 7c0ad0b..523e419 100644 --- a/LibInstructorsAndTrainees/tasks/dialogchekertask.cpp +++ b/LibInstructorsAndTrainees/tasks/dialogchekertask.cpp @@ -1,7 +1,7 @@ #include #include "dialogchekertask.h" -DialogChekerTask::DialogChekerTask(ConnectorToServer* connectorToServer, QString type, QWidget *parent) : +DialogChekerTask::DialogChekerTask(ConnectorToServer* connectorToServer, CheckerTask::TypeChecker type, QWidget *parent) : QDialog(parent, Qt::WindowSystemMenuHint | Qt::WindowMaximizeButtonHint @@ -13,17 +13,24 @@ DialogChekerTask::DialogChekerTask(ConnectorToServer* connectorToServer, QString QHBoxLayout *layout = new QHBoxLayout(this); layout->addWidget(checkerTask); - this->setWindowTitle(tr("Check Task")); - if(type == "fim") + switch (type) { + case CheckerTask::TypeChecker::fim_check: + case CheckerTask::TypeChecker::amm_check: + this->setWindowTitle(tr("Check Task")); this->setMinimumSize(1400, 700); this->setWindowState(Qt::WindowMaximized); - } - else - { + break; + case CheckerTask::TypeChecker::fim_status: + case CheckerTask::TypeChecker::amm_status: + this->setWindowTitle(tr("Status Task")); this->setMinimumSize(400, 200); + break; + default: + break; } + this->setModal(true); } diff --git a/LibInstructorsAndTrainees/tasks/dialogchekertask.h b/LibInstructorsAndTrainees/tasks/dialogchekertask.h index 282ffed..f5a9351 100644 --- a/LibInstructorsAndTrainees/tasks/dialogchekertask.h +++ b/LibInstructorsAndTrainees/tasks/dialogchekertask.h @@ -9,7 +9,7 @@ class DialogChekerTask : public QDialog { Q_OBJECT public: - DialogChekerTask(ConnectorToServer* connectorToServer, QString type, QWidget *parent = nullptr); + DialogChekerTask(ConnectorToServer* connectorToServer, CheckerTask::TypeChecker type, QWidget *parent = nullptr); ~DialogChekerTask(); void closeEvent(QCloseEvent *event) override; diff --git a/LibInstructorsAndTrainees/tasks/fimtaskswidget.cpp b/LibInstructorsAndTrainees/tasks/fimtaskswidget.cpp index 70e58b5..198ed34 100644 --- a/LibInstructorsAndTrainees/tasks/fimtaskswidget.cpp +++ b/LibInstructorsAndTrainees/tasks/fimtaskswidget.cpp @@ -422,7 +422,7 @@ void FIMtasksWidget::on_btnCheck_clicked() if(!task.getID()) return; - dlgCheckerTask = new DialogChekerTask(connectorToServer, "fim", this); + dlgCheckerTask = new DialogChekerTask(connectorToServer, CheckerTask::TypeChecker::fim_check, this); dlgCheckerTask->setTask(&task); dlgCheckerTask->exec(); From b0abac8352715d486046b7532661e1b033ffef66 Mon Sep 17 00:00:00 2001 From: krivoshein Date: Thu, 18 Dec 2025 11:27:29 +0300 Subject: [PATCH 5/8] =?UTF-8?q?=D0=B2=20=D0=BF=D1=80=D0=BE=D1=86=D0=B5?= =?UTF-8?q?=D1=81=D1=81=D0=B5=201?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../InstructorsAndTrainees.qrc | 1 + .../resources/icons/new.png | Bin 0 -> 23703 bytes .../tasks/ammtaskswidget.cpp | 2 +- .../tasks/checkertask.cpp | 89 ++++++++++++++---- LibInstructorsAndTrainees/tasks/checkertask.h | 6 +- .../tasks/checkertask.ui | 59 +++++++++++- .../tasks/dialogchekertask.cpp | 4 +- .../tasks/fimtaskswidget.cpp | 5 +- .../tasks/tasktreepreparation.cpp | 6 +- 9 files changed, 138 insertions(+), 34 deletions(-) create mode 100644 LibInstructorsAndTrainees/resources/icons/new.png diff --git a/LibInstructorsAndTrainees/InstructorsAndTrainees.qrc b/LibInstructorsAndTrainees/InstructorsAndTrainees.qrc index a81d934..54493e6 100644 --- a/LibInstructorsAndTrainees/InstructorsAndTrainees.qrc +++ b/LibInstructorsAndTrainees/InstructorsAndTrainees.qrc @@ -56,5 +56,6 @@ resources/icons/eye.png resources/icons/exchange.png resources/icons/link.png + resources/icons/new.png diff --git a/LibInstructorsAndTrainees/resources/icons/new.png b/LibInstructorsAndTrainees/resources/icons/new.png new file mode 100644 index 0000000000000000000000000000000000000000..2eb82d629d040a33b3eee26a4a04a7bb4b7b47a3 GIT binary patch literal 23703 zcmXtA2RzjO|Nq=MoPAcvmMEFYs&H0zgpd&>WbZxhWS7j!UMVArva_xz$_!<5Hp$-W z?)UcnKmI))9_8NS^?tuz&)0mvu2}us>NJ$+DIo}=(bP~ifFL;dCmceOfxmYA2amvC z2rp$#BP93}jC>RWey4EPxaS4t51swMlrLragAduf)l9t&-R!*m9(dY9etv$U4z5mK zHV@owMcq8@GuLjOhaetEQ&q{xKkMIweHzEN`n^re{=!|_OEBfDBdR3iI-h>P$(`NL z3vyV;&B|G)d?AaT^%lp+v5BX#v|^R8h&1Z&kNA^y5+n5EFMas>L3*c=+m6h*KZ@eF zCFk0dk4IRy^KQ7WUrx}w($Xvo(dd|n%*>zHU>A-KouEEwkcDvnry_|n*(eo8Y(7^8 zUV3!Y*;#0Qdfj7&co*HDvoVgqpFt{AH& z+kw?re;GAzg4x{lC2>@7_MHopr|YxO&~2YT0XPOQcY@fA>nxPlu8wWXfn#HMU4cyikXs-*CGMRZ6k<2_q=wHin6Up~!!J5(u0wf8FiGG!R#|D&_;#_B761};h{`7t>Hgwe{lKaw4U7qrM%?427@a6G##W*m7ewf?6 z?A*mWDJ1s=xXISYbN(E`V%bTdSW=mnZ17+PSvFZ(R_9v2*z|Mw2iBDCsj0fIOf7t%CTwn7n=@FoSt}oHy+@Qd-&*csck;x}NlG{3_vLG2>wH@GmwUUIm1E$oK zbZOwnaDLc3uR7@|3Yc-+VTu7GJ6dDkG){ov%K@KE@W(h4tU%{{jH=R=4H-P8SZ0n( z18b}pDYO}x`I7^7f<3t%a@|GmO)%Ht`)JIp?SS5>=&c!muei%)3yP$&i&RH7nTdtg%D2@7&XI};^=;T zxyg6u6LfIdJsdC_T;;1K3|(_a_UZmJ+*@1^U{uo2ZdfSwiKRM2=N~5M5tXZu7t`VI zZ^!pU)l|CzNM(Tu;I6fdiHL?{q4k_DKRNezt7fWgGAUtR-tc@Z96eKC(uKzJZ5{8* zn2M^ap476{!4K+Fb=@i~4V0kMED}g%$<;<*`VO3MPo5P1p82NekSd#)&?u?+1J_Xk-TthQz^8p1ao6 z$Q(DhV~s_8OvI4DRs!*Ui6Qx{9*k!Jh#7-7!=uNlV>BM=koRnST26Ig;UnCEVoJU? zpQgeTA;(qY3w-p06enbLI*U|oDR4A3v-Ea7+3;`A%X|zWm0@m=8S@Xo0(zi+lqcNo z*YRgpo4G)4L7uf@JKzM^Y{XWg;z!0X*VSE zdH@Ld%vT^$nCSi|hhATaenmji{Y*pI!wOsgoBI>mu>+0Hfk|Mg+lN*78#h;>Z8rSf z!4oz9^YLW&MH>AyV;snM-T+qeYy{y;Uuo0RmkiS2_Q9g?Rpm$Klo0P+;nju|OpmV~ z;B$=8G7X*yT*9FNHInQKi-^no8O-3%C554njg}8vq*`}j;LCs^W4{U!b73rbA%IY* zCr&I(d*=mO_7W6<&HNe1Lv$um09n&-j)c$cQ=8g0B)&0(D#|K8_CB%}Jfnhmq~QKe zn)Z{n6C?}(UJlpGUl8N_@riN6Xj)!h_!l*n)K$ok&Vn?!(^rI#@6{>W8G3 z=VXSrxjFq1qYVZ^*UXz*fPi^&z>yRmY8&}D^ACMOc?JfX2TL*e=WXO%RxpG%(ldWr zke$$QPG7lGgyQ*9OhPdBUuWX}Ju1rcf%3{}Icc*qfSC;?FS?e5A4>gP(shiL+=;*{ z?y&zO0XWqP{b|*0HKQ&GW5^OqX}Op;R-~X0iFfJR3c&S9)PX*?DN=&50&Ef0`um58 zaI6y0b)F63>p%38(Y)v8+6uYW(77i|*hGBKOTC&@dbX z6gKBXp7;fbiXuxHi?A0zl!CPbPSP?#?*J!rp+a~!82oq(>^VTKBht99#SDhKFU+hD6$4;oky?ZkPE>2& z0;YI`IZ>|vFc6TcxC*S!MchlQO~bjQJ_BSTUKaN z&^>-;qyjFmYbZkfFBgvHrc6k+cmNig>Vw6W`Ra({La6WAS29M7Qt7E$7uXUU!K&(> z{yGyBs6YI0>(;&Ue_pc_vm90XP;I_P9|Q8r39Z=3W~E8R|1pu;tXYX z$aO?_V%pq2>$6tR!-3T*2(u5P02XF*BH{Ks((=mQp?~6VUpB+hdnW2uI~lQ`giK^0 z`;B-!|6j>x2sf?`C9%x=t__Ji{Cp4-*RDT@>>#k(UpB6Hyw4=Ja~nnSDEzU}@$dkDa#6t`Qmg8HZ|3FCWt zl#!}CW!->O{C53JXJI%)bOG>qWp|LM5>Vhk#|@~KHtDlbr1kZRl(SJoFxnQ3 zM}xE3HlP&Swq)9MZ7uM209#vC0_ZmkH()X>fm;9CwiGE3*xaA2@~J8VroLeiOkBVG zk+H!XFlt+KEA#Zl9=4Lz3m0+g7VW#~FKp~CseB>7R) zh_4!)Ssogc!GT!+(cYw^uCdha=Mc|NBJX9_^9t|0Y$7rf#>VcP${%tE8S_Fj=*IY= ze6;SW``3AZN=^~nm;2K41HQb4Z3{AI@gdyr^#XU@!)>}gqck|YPH7qD3`}Z4kIA^KKk{Z2W>b>gA|c35*wqBL^iE; zw-mF&X^oH-5A?R01kOG5pu*|eDv*rZHN?M>b637V=luJmVQf5oU=@3*ZxyTmx8%^T z){ar<^SI4tSMuSFdt#Y{=vBUV%!g+%yaAQNTb+lJ`N?lTp8K-hE?HH-xM1}LWvypu zNv@J9Jx_FWwbj_n%`{^h?)$z}c+U5HRmQ7snzE^J+~?}dd$lF6q%zN&HkBkvv9sT+ z&riC`o@rX&94jjJaK-Tg2mHv1pynhqKZLl1K)BLWfWTDjlck0fA16fFYo|cXzs6yo zNt=;IoSU-R7BfJKmw(?K4w$>~Pa^R0I(G`uDfLb#+n@K-Lqj_u=Xu_vOX!?s`=;y5 zCdP5eufn=Q?Jt!JkH!}*#?7b8**L5$6&a2&d_n0uZi|^UPzaoUw;8=@)tT%fPsXum zJCM{g#k32#b8TE1^WoR5?{3lH&AaL&W%*CqQ7$O{-p`y!yOzbYi)X*mRG(fuAiQ9N zj%Lt7J+?093LK3!-U!3{q1-7}qf#7|Wb~AdEDCg409B{oGock^jhG;!|vht1O=X*4*63!B1OHrNg`J<;lhpVCu4FD}rq#dwaNB z-w*gM#eG#gt&LZiQp}`*>+SK_ReHd2=k-2`I z#JPi)7WVtU3tX{-lY^87ghDT_yo2E#@j8G#-!Qt)GhqM^Z+>*K+xM%W0UQKZrNU?Z zFxfVKnDA`%W}Bi!ED7$9C#~>^cp|2;?uuglet6l$AfBkE!V1@sBEI%{e>euCgoPbF zOVz~;_|nfmwSYjlloHn9GL*zb-clZW+$%YB@+=tu8Z%{{<+~vnyoY6B9Ur!9;8=m> zHDr;vz32KVrMKGZ#!Y~-a}sE-tMcN!fpmu`1qt7010u0JAzwQSi-tvCb0nRaL`kwV zSX`B*Hp9VhurCV!ozA>Fl`b@DfHpMBvc~*DLzYP7CCGayvQ=AK-Q%#8+;fbo;m|7y z6#=zmV3L&4cw_i6;Ko(J4IxLE^;P$$tJjlp>kC#)?I`iQP|2cy`wUj{a}M#NJ_7NK z{Zk(k$*^nEi;f3FV>jHF2UP;rRweAnYgyqZt^_r3_lAMaLcMBB)e=6&Gka)+rv=;% zTfub_j}`Vt6|g~{+5{2*53eq*umCh^N z3<*;LOdUG6I82<;^_SB9Vxg}vZ#$6U!gA-S1_D5Wjk1w8t{On%-__4K>SE)utI?#} zqRjKCimAP4b^iTLS)Zn!)jc?^no5Zw#lF6qnRzgBO1?d&u3&A4gH+Ic-I&b`4t1-m z3AN{HXQ)Rg9GT(p3MT&+kQ7&2YG7V7Kv!{WH7gqDBeBh#jRO{*6Z;b?A z!}1=7*vp$JghGlrM@sKP*{OICrcQ)slv9t|?;?>s)%T^dYb;eU%G_s+xP-sMgD`)3 zF+mwuqfoW&47L($U)}t?YVeM66Ve}C_?;Z!>eh4Go>b*${82A5ffpBeW+9MTw6fp- z%bYZM#4-TyZF>AXcw7Ku-v${E3+YTQ!u7u+VyJICbqShnvq7XEBn)E?AdabLW5LmULI zVHV|z4GCu7Ri>JrkT-|i4bH$&|DN8gCb6>Vb|bVcs}qVoDP5ONcDjd@lU!^VeoSb$ zxZ1M6K$o};yeD1u`!7r{EgF*7ALKKSvH?+zaQnlM%Mvy}Dp!^QxitH9&J>JA?{g|Q z$FVh0a7FD-mmO3i?bI!<5U~5BvA*g_%2%2$#IPfwlI7*W@#}Ofk2jnMq%Srm`bIFH z8bIHW(I~W3VI#Lf#nci)>=B9#wW< z_nA-k$J6AE_=@y5h*>iAWDJyh-t4 z^!-Fh82jkW+oy+AWmXa_quo=KvX6@D8@<2i9UQg`3Kks-4!XAf**N+p_OD6{w21eWr(O+z_&$&NhWe2{vXus?q&lZW-M!Kz_$KDNT zp5G@xNIN#?nsW z!)!{kD3&S@{Y(~guq$&1)3N*RKVtV)SNgbG9+O#9ZU3QL*dQJYYY)BJ*nadtzLXwQry<(4;8da(>&WPsw~6)V}fZh{rZh7KCv%?;p?D=`<813B#yGGI{N$#5Yk-fx8p`YkPl15?r zS-M?9F{`(W^p%3RqX3RB^M~R&*&#dn2WhZ64k@B(dVN*44d&jY4*FX+_fZzb!6e8;{*X;}}%6n_-bWd@rmHL!=j zb0kc-NHMzqqS)UYNSL@gk>*jzh7Ij@V(XezlzXnbdfH`oD9(s_x-gY(2S0JI>b?;E zo)j1mk1&?7(=sNWuq81BD+sdURl4z<2dgY=(_`vF=6jm3JpNK?nNLG{dNyj>ipMEz z)UbRojS^Pa1n0op4%o%#3a50NLsqKYihECMNnX7l+w;Y4F3?>Y^i4h;{q0D2*cB5c zy>N06xX0S?d7b6_XU+;|ON~s$C0}g7angFEv1vLCcylwnuJs~LOw{Q{d=5LH}v8yN$M%xoqv3e`cK+v#yS{N2`b%I!G_W81;mgWxu@m# zLRu=mreiy7PVR&h(mNPT;rkeA9;KmaX9| zx9v_e-tUM#vx9_^z3~4U6uQ>A4$)I$!ay-MEUoAJ)f(kmzUjY&{nEi+rs{B`WmA4w6;^4rXo)o?H~aP5a?!u0?};q}RCLwhM7{_gt5S z%_(JYc4OY&hiK`S8e# zF?P^9aIC=vz zxKI`a>-b=gVsDFKw^f;kr~C2H`gBEh>dxuct9I~Wm!HJ@j|F&QzbCCHg;6-4@rVp^ zBPoE_=c%fYO2VG|WS?w5X{f@Nn`OYnU(1`c5?W3e+(bG5>{CfG@|>E(8hbknNe;WI zuiAyONMT0I(j{TlQd}d%X1#7J<$}rOhob=)`+td{la*)l+0~j&$oLY^932~V7irXS zs6=cbgB_fM`~z`;B+GY>9d_=V4It&H8+3sYbKqlUwsIVrZwCryrD3u6rB{zH@G5=l ztkmC5ZGIun=>9F0_;x`oU#hJ6`B13$1s|!?Yfjw=jj5=V_4MZL5VAb?bqsG`FU?i@ zz-$WHeVc*9-z)@|lH#;}YOL6#sZ>@|Xs{VkY)}Wg1Co$}DJR&In3q=SKv#da>fr9I zTebBX>X`{^z3~o;H|-X&KdB_LI0~QxW#WR@cV3n&>YjPmtkp#+{;1E9*pDhQo}K$^ z1>dXvoU1kJ6>8UYn%z6P2v)@?o~9cOeJUZd`+EJCajLoHydFja=!pu>`uP^(k0str zXOjyCH7hL}&<*M<52Cdqq2&?PE%`y2P$E1bv4x1BfwBsyyOUw^(v{cTi zybp~;xb#v#b3sh-H#bs)^>%HoD@h8kUI;5s<1(39Pn($J4;f~x=|pXQ8(w(+Xkh;( zfs_)ql~c|XSb8V)q$-%buSU<{)%VY|gp>MAu;EN;??1_Br+&djJ7SB;*K%<$wc-YKW&;#-DyWIrxB34BkU zJ6J9HMD6Na31)K2)vfLXT{$+3#PT0!lo-NwPgR4NSnVGRYhqI-6~hhpF~7iFj9rF? zf0irkKC-ncLnRu`cI=P8OFweZU_Y;BRg=F+_e3|zeVrvyJQhhRG>Na089lMn|x%^(q8DRV`E zJG1FElbe){uAeyE4Q=A@5Zn*Z%q6G=-g(x(u0S;1CAo~?*SsrVH?#iv>~WR5d|@V; z<4}*dKMZa=*c^;!AN>8IukN@2mB_>`wlnk8Xq%IW6t8$%o{EsOZAl&W%ThRfw)1v! zv+hJvFO5xymxqEZdHox6$wI?vy->3;LmS}UlIp}U%Vo8rJ~r7x>ANOKjVDioJk+Kf zfF;A`XUFgp;wMgN_SkBNfh3apmb^E&4Rfx_rcsT*;bMWA=>Uq9_CooXtlIv5K@!lI4Z*Q{y80V>+mm-{qf$|JYC4(G~(sy z5&HYX7UMSo-X2GfOtg01hUdO*F8pbqsm8GMnlV>Wu~->xk!`fpZCf&TBj{?M>6al* zcy{Pgi%TjGgC@C4OP1LX?n0QkAu^`m)>c!!@XKHmsZ+6wa^5pzjhHTjG20kb0~)zd zafi=};a3oCcSf4(%hroCe^SE)UIx)?7E10cTfGsQl08u*(0o9lWKt;QKR=oel~JS^ zOg)rJMu(ptJ?MfB07YeRV2m!a>B2uJSOVzW{`+HpDf#7bw(v1mIKSav+#;KP%Lri8 zuUFx@*;`dDL;A>=luv=)Kc>`VUY3x?Uuodbd^12dP)Xzy$ojl)POwttKPqHj#j#DtIz4pk?F6&!U)iZ~cESKouqIj{Sd?MpkR$ z)6S%}VjubVkyRSNp0=NPqqN^?H#Z%y?=K@%M+lKQ6XgaiHYt!Hxsg^J=XDQSm5hh` zR2Lskq;rQ#4O0mrR9~vZ9`C+5n&{tYd7-*bR6E)H)kMQhYeX4|Efy-V-#^awG-P9u z&HwAkPcN{#JlkW-M^Q6W{M%Qw424n?WD4}l)jAaAq^2%!=8A3j6>fF_jH?S^vG#LU z!G`DeZ5C(1fhDto*Vha$Pw{e|Ub!gupm)eUD{J+t>cf>Ty6y@;4?t_V)-QEy;@2tW zax52-adYU+es85YRvG=Lz?r%qBBd?W}MeOo&nS) zBdz5B`HWqh1I$v&m2YfW|4vUvmBc#ccdQ0TXhxj+nLcQU*uR8`umr#EZlUsU2! zFMO=(HSLCC5D!i&c5AeUla^tu)-XDCW>7g0kyg&F7l>!oC*H5c=XHJxt2FgRB6z2cS^m@>mixkiP-2gA={2JV> z+^+>;fv-_00UJvB5ca0i*p-2n7tY+PFdl|t%Uids2Sg&V;>#b4_VE;YPOtcKT4Ri%fJ{j^hW3cx#N*lTU1iG z@{qMw0m@oi6K0(YQ6{Ca<{uOJjN>>^?-mTWA|dvg<<$&W;=84D*ci@Ma_1ULWgjN^ zlRx{^z|O}ZzLOcptLC`EVumHkNA(C|^QC1;7RY@O(q+Hg_ z2uEN02$?~=h`B%AVj|Zf)OZoHD!xxf1u|d$qq=E!!fj4`x^ZulfK~{ zHH;EsknWLY&-rfXWm&Y!aFUP07d25faSeNtS>Lqw@p)oupoU!1(SnLyOCk_IW{yUA zet)L_Otch@gj%j8t?%Mq!K{@N?`m`yvBIyB@I091=Pz?vi#vQs4kqYaBB<;uzK>Nh z=HWF`LTYqTgT?`G@VI~$AHB{{F|5Rkqg&q#?1nmC0Rs;tTj3Ek{DFrxGZ_V;d2x*t z-!OgDSm)9>RNu>I!(wJ{GoW@~dIN?Ab7w@M)MXg-lMWW%eg&~}TN3I|U{FEZo3w@g z5Sq`6#NNU8Z&L_LRC#!1uQEKjdmCBoWQ<&zh?r4)Ook3LQAR#q)##8k$s2>{6JO|J zA!&XQ2&;@`Gw%WQ108wsp7K)7h+Rhbt8%@L;46>GcqkcOsLNCdii26`-S5nSga%3I zMsixLojM$ zMv@1iLMbxd-kVI$BM#?WLKxZbHL^egXA7e(ewmz7Tir@&;2NvH`7rPI~u`*uJdg4t5>rDPcn-|r_ag9-vHZd`B^Svd- zD5BU1ydSWVtdnBtf5!_@7$ISue*_+pLEh{ z{3(bT((R5kE7EM&wQnwdT*^i?ZPP-=>>O?!6-{3@f8xtX{N86fk<1w@yHWn$ zTOS5`X?jlxB)C~MwGI2f^mo#1sQ*IAi(_lFA$B*R;GQB>T2wR-?jT`3iP?EICCT(m zkaK{)aeTD&he+d;?6#bta{^24?K{`8cGfJdHm^DyNbL&%5r3jIJ9Ku`liv%j4b`rD zbw|0I{$hct%4p0jsLoYrK$TF;NRcRMO?{1~)-sA-671u_KLEo$B&iXx-%#OBEcW|& zuQPf?l=sB@MxGc*vIgc}>kxrW7evf(S#G{FcnPs% z8v)1KdLUuzRo6Z`yC~-*4Nzkx>P1^g1RjYv_Jl=Sal19dE$Jhdp2N|sZM=vsji1+{ z0azZDcs)u~NIH$XU$bMNSY(yPJCNQJ{}Dc)44vP!)ku zdNR5{xgay>af~tq`Zi1km2nI4=W}x8dwkix^od~Ku}#2G3|_aw&q3$kpv1qb*=I!> zgGmL%kzc+PU;3!gyVtvD7y0Kbo%eo5aQLylcodC=i6$ogsC@j?0O_v^%ezWJ4Sn~s z(Cy%Y{F**ht}@IB*7N3lxk$85i7+)%#!IBm&e|>L-ijF zkIUs6>-A;ce9?u{FK5HX#3&<|wm7&jA>?DW2jxlowEfZ-l`5fn9|h_RtP9q}+0o9W zbn-(;N+YTdC?hX`S3>hEEb~v=1s1r#@*Q+*CL|}iKynW$PcVjmt#;9*gmJQ~FP%fT zMaUx_bD|@YuaQ^>vg0HE!8VH8rB1nH-b7$`wS9k6qY;sEh{l@7s#j^rK!-!t^a!mW zjQhc;m(N&Y z1dF6{Le?FY$UCRv6}us$o((QYbNI(x&2j_4WcmyT-1AV2F)?@cN*pgfR;I>&^KY71 zr!iD)+Ou&X!D9;1(K=0+unMp?_tXX1aT#h;8dk=pdUYsNHmqJfu{}D6X15OX$`aoa zZzhK%rbw*6KTUFW)a%e{uXyT!1VT+inx7pYjT{=tz3#<7a|f-s2f0V3aZBoi?&6g| z@DyW(>;Mfz#$TD>_cLUk%A`gVoU^J!r%X#Qq9C1h7*?f>o5XqB@rMHUwm9d-kCd=_ ze&^gI;Rlqkk5<&hKG3|mo3E_kf}pE@2@tjY0*PRvC=c>pkyOO=jglmKW?|7wz>h zn8ZuXNwQpY6d<%evp5=R2g1pUMlSQr)*eip zN=&q=NzRzD$+T(4@!sZR18y;qRayn-ld!6*?LTwvg}eWiyDq6bZGj4vJtSJ~G2YF+_rQz-|1{ZZ;RGaP~ACv?5uo zaJVPZJ}j#Ajy@fg$A(q?L=Rsm=jh_>T|d7hMUw9WUF=LJxRpxYypQa09S zc75PmR|hOr6NbaK0kNs_SOq(<#;{(?aak#m*ZNQYgGVzvs#sUpi>?DMNW$!rV$iBS zLBd4_}R*>LB_&wfyf0-H)QoBKi~pQa<7^Qv?ZB%Ano zub`$B)e;H#TxJ3#`jIjN2k#W$`vi9jx06&Q0j%o#?FW5f3ULl!S{7Du+Em_4dVCRA z5M`iMRs;bU?6n>yY-N8$_W7b2d0)%9%GPhTbP!#1@BMB1Fk9luWf)o}v=X-$Oj|lzfOsTw|GRRO&~8 z&(W8lo!*Vv=N`i(dB02N*=4vuZu#+BDAM!;=^z5{L zmyjjFKe?>lxBPAHew5L7JEZ%#95{qviwdr)R$U#VlxGJW70E+28-H(HI6N(okQXrj zX>$cpS1k#mZ>!K~Y^N)cr}7o;woCBTWoYNhkgY!s2|Rpk=cY-vV*@n>BNZ>M#3^Sv zaK!t{cfaLVb(@liDxX2m?^5k4k|$aI);i=^Y1~esoV3rwU^<2QL3hqI`xWxPwKojrDC12sb z4(ehI#!8V;Z4C(;hW@eKnA=7^brZs5Yg8p?0=CUS=7x&(U zloTq#TJc(|m~&2bsP25c^qyqtu50+nW>(A^%>7qWbY-KOA<+QdqJlN7{I)yIX zVdyGHZS=)$KH_?gf1nh|RN+@hH0Se=Yg@UZ?tVx@j~P{a0uJr&Wc)PSGnL*4RH; z`I8}uJGQ(2{O!JX7>RF>ki{-(v>>R9Y;#(n|A_NOUYewgX(LlAw1;lae3Tyw+*Y|| zONZSNX|JrQ{sIIbD4>irB&pV|%tt|>2cFaPVWX)g#{e%riTJO>iYpe!D1u8^zUnrD`-8q^MzEL zJk)$pn=(Ae^=slO|8*f6Sp4zYcT5HhHI+sU+<46eOsMRfJ?SOLxpU(>nc&<2k(ebP z)?hUWiap6pFC(DZy@~tfY|!S*A1L=PBI*^7bYtkAm_Wm~M3sUd=cRYEjF_8ebFa-u zVZ&@HzY$BoCa=vh;Q;BP+)1OaQI}}=g3+Df!MF-n{O6-$|gn791 zxU@CWDPhEr);r$5ksB$mmZ3fh)=70meT6P-S(WaDdm?nvDa1D=7>Y203i`_7eL8O{ z2s}o>$`8%6`LknD8>6r3Pu9XtY3@GKC$T<~s76kab-dqw(1&s@!E}2aSGfCV6bbML z9MQtcnFHl3=BXiEY4bUOC+Vn-*)heA{%YPv-m)=hT@%LzIo&vaus4m|54!Tr(HA^ zaMC979?*Ij-Skt{q?|bw+=6lf#zc=h`x+HbSg8QQ!uL2|n5y#$niT5??6Gy;^rldi zrx)YmB-htnLB5b5J}%p?{f1EAb#T>wRA0YYZ^HUP9v$;toHsN~o#y&R=`lGq_vBo} z9J<48JU9y!Lw=eVDh90(wL#7%^fC&&!Zr0wt~2^T|4w>FNA5j01B5-yb0wJd8UkkB zGnzlXn@oG0g!Ej=nOq?LowlWf9^Spkn^)O6-#94^$TPjNC#O2hSpLJ zn-F}T05U=|gVMSqN5qw7lfN`^+|#@UIa6GG+*dQbFC zX7PCU)|TTb;Yl`eftFWgK0ca5b&GFfZ^}CfN3Ys#Iv96DtWzYokB#KG0=ESFKU)u) z<4$*HqmmBS_Nx3AWak&R>xpWu1A=@~KJq!+17nuef+50c48>=ShnyDVSBnyMT?Fv2 z|IxpE-Kg$nj^4+ljAwZR_XehC7_8vQL^!A$ASR5ws-h9=>PgGbJi^<(c_UH z+UFvFTFOO&1z#S5y*e~|!LO|MUsvPp8()Kwb#pbX9c-brO^*sQ?_T+yTeAN$`Y=#L z9zGn_ITT`gIAwU&qk<}MWFKo9YnCf5!u%czm&zbbe76HyzAVT;+-MC(`g^Qha>axW zB|Ay|+=>3i@yiT3{4i9*zW7i=+hcd&_*2QmKZ%Htv$je|qOg##I!U-|1p^t~n}=_& z5nn$<9&An9so)Y^Z^ViA?tHj;vG~i$7b*JBG}gh4Jmgn^Weu#(3K_d|t6li*A$WR< zp@=shauOQ?j>6>j8AA@7MxBvq_1>%__P%2EWCh75m#lU6pt`-0rp-ozmB~BLvu-o2 z(fgW`_G4n7ALJkVxM@`bY1Du6>?to^n@j~azt3Un%Xy36pVzu)r{Pxi^rlu{SZ94L zrUT^h*UnB}VyYVwe-xImyH_4W11!}9#mzU2hmHX~eXYGk-A%lU6#=g#=!707EKQIkVo&V#(%mX`R98p)k z_;1F~S9qW^jCpzc&<01e+f;B|(nl~09OAOM?!>c@(-i_73zoL%fS$skF!tsL0*ISO zqwzYqH-4JBT-0=j#6yxb`huXF*X`Af-O56li+-H-nexoLkADt2I@&)a#oBi${=U+G zK`{e!M*=MZ#7|4Asb=^8giN6sUQ*)FNX6$+6$cnTAg`*@^x~fLHKL7ZaB}Urc?`mf{gn|1+-%J0 zu$AQa*uXx4p$^ptf_c~)bZ|PR==>;4hQ(zeO`8ec##baj{^%&^UJLB(3xjwiMk&pz z5eEV>wDyqYE+hObaC9E$=<7MF7*u6&iWbX5uWF^e)=L?mKL=l-F#avo-8->e5Kp*o z{P#AC8F`}nUIwPu$rQv2r83t%TU#dG%6b$oZk)pc_ob6t()Ud9G)QsQMhFojCADj) z9dNG%hKIfO;VEHdssWsKK-MiJg}nRlkzX?lwzMy)9`FPN=ZvXVgqx*3d=v zc4JeZ{-=@Wm}%blLvd*riC_D9STf{-ji3OA>m5JH3uvs*0q^s;{Xo#UU{qW|j}=sr zK`{Mh9lTd1;s&K(HAc3;u{)Q9fQ=eQxvz9a1HWbUt6J-iYCy|_x5!Olv}-n9_z?&6 z%Jn?RXKJ?h`M?7=1ER&|KCrS?j?n$HW#zBn{w|SkVi*ZiRCJ+s6>s_Z(A>q4WtU`KWOx1|@hNjWQ*hnu z*Zc;J9KkzVk)ShhV&5sTs)Imw`AOk^T<9{0qg#e=Jqk zCgnlaAmPYe?>lHZ+baT_XV2cIP*iicKHu0po=a%x5K~J=nAUtqvB50sAva17Szexp zU)4KogoKr9p}2Jzep>*oBurR&mP=#Str+I`*XtTJ!As7{z!(B<(`RlUkr-k6`A;x% zqXDdCfPWgGvum~EzM-4UMS3lpF=U*Cr{fzYWV7H->7k&J<#v{Gg6O@A+g7#48&V7p zzM;gO?(ME`oHfT1lyOJh&&Q8mC+vqYdQgaw)o?)n z&yJ$eIj9izJmtr?yths_zk7P}oV z0=27#9F1kSmAeH;?b^`GU{$mbN~(+_LyC)ay%3QMJ5N)J05#y|gH#yBviHqnVU9Tur}%}5;< zk$jHER>%-vzgNL=iXC5*%8D?D3il!LCRg|dlDI?s6X>|(NZ1l>@1Fj1@}^&`To%N! z-dDt{`^!@gmbl=rflmcnq@H_j-=oDX9j%FmaPDGTHgs5-3s+BDs@G`1*Sl);W$^FE z2f06#?R1t}+6P_OI23A6WHoIp1hB5h9@V_|8~z=#gH6pNR`cD9TiSo|S>|nX%u- zUKFqX?Dl0*g-bn%@y$P`X`I)rC0X2zw^R2A zrCkdh4y@j>y?zIQ7CtU_ODP+Tt~wv^MD`R!8wx>4xALpO?0K}?rK2j|?6?B~G;QBw z-;Uzj#AiG2Tyct2@^uddLN5>~Stm&?_(W!S@$n7{I?U~dcW}F)q!+w2Ak$J2eW;}7 z?BVGCmpt2iRs1gT9r&s*UzJpav&dIo{GMQY2KTk^R4}hXrxMAVT<*Iqds2$UF(SJp z3juy7z2?7ZZG@ccsh?l)VEFZ4y$aNF4lV>`vB1wOobTGomh~BC zlE&I@1l6&aK71@3n-UX+jV4M?{=<6Yz{DFV5|`znoZR&RB|SdrLFwuN*?)QhQCAtx z5@o8o$u?646?%}6cIiWx(!oq>z2@jXo zUeBjD`Ca*#;Bg;F9wT(PJ=mX&LErZwNW6|_!=}7sN|L9;24jOtt*Eo9afHtSBi`g2>M1r_I%+(Kn}j1; zZ(p_(=Gf^1EZDwy&pX-mx~HgKFPpt9nm+R{na<@MQ=5}v_HDfgry@^^(!^-&uFLLC znRfhzM;^fpICrE(JvpxHF4>TK%<$acT-Fhc=n`l;du9Yo;225y4{b&rD%f9RkOX)> z0BTof)!QT~kio9gR`?kv*?6PpYV%OMRgsN_5~1sA5+PC+!Ab*pSddtIEBF87f`$}N zL%qUdhm8zPcAJUvn-|ZLOlRw-px;a<@*3i%j6L$kCn=d0 zqg(y_ikG2SKwm=s=}qo!8HIQe52mlEzLEK@E@72ul5|?gWmrDCl4RQ)LnAHO)lXAM ztWXm!aXGSTiP{r6Bb0*k3Vkjn!Tc3qajc-5dQgW@7L+193G#L+#ljL@ter5MgB=fj zrX%~%;@aV_yP-7eiy&>ES4a@^VETj-pD=>l#Y6j^{~m*)_95Jt;T!#}Zs#XkmD-{{ zhc!!KHWZ<8imu(m^9<^|l(6r15Rb7Q{LI8kfEeVx*grd0ae8*g%+V}ZLFm85i^1SK zLX6Ko>};QBu;HbEJu{(uG-9Tbed9J*loL`cDcQAPL8Cq7K!a7y91veBFT8!a@_b4X zf-t0i5bm6@1&I-mO(o=!0edWYBgf`3z@G>i9V6;veoaYAVbbDZ2*|rZV&#SiZc5;l zV0nVFcIHH90Y4gYK0kk#UQC3;7F<_5D~h+4DX^&gNg50r44HEFRrALSM?;{D(g}1l zKA&!FzeV9o7y3-`eEP4QG$>gJC7!8-2(CQ5?p0eF@VX*pFl)wz+;3u$(T7b6G^;T8 z;~mRxYW{~|1L6nYm3wzA_0JBDRwvc27LLUFnPsH4^rNG%HX+5MvkPj2{e!LoLs$60 z%*pWT&yO->ctm{(bLz z?zzu7_ujehea3S4z~J@!NR&T_h2J zj65_|YMpI0prPRYw^mq(cU{);h"HsJ@vxkYzB8aQvJ;UZT`5c5R3q{?>j1XN$}Z*$;xwQp+(syR*=eja2B&8lsB5p0w06trPP!VjcSR zzqe#`OSvKXZoyx4dfN2-s>J-R^1AwFVrDsO5Zm!N25END6_f^dEyElf&pk>BSJLzhilVj)?{-`p8=Y;$)iQ#* zGV&}@lBBMs$Hfc-m(qKN#PqqHn*905l=@!cdDR4gpVHn6Pg|62Y8fRO*^1DhzNAV2 zo){GYr~|Z`{NtuX66QBa;CRpbQ?HPaIl+15kfVb?-*~2e-C_x<4d3m8W2XQi1y5*jTWu)ElH$AtFuv%foz^OOmT0C|1IO7Pj zX`O#|Q)p}Wkf=8UMz!0+gF7;)`1^vYpfn5uIg$l010^ge?y>nS47X*{$n9P3o8 z=$Bhmcl*0lFf8__R^o6VJwAidC9Dls)-hE>z0Ys*O4Tq8UUYMMef%M`9y+c~PK4-T zXcSc7xZOYIGM?&G8&~{T3}UmO)2qaW3j=~j)OJzO_w(G52bD{b{;1C5Nq{ACajJNm ztRSxKryzQQY;d*KPZ5GF0ltT1aMiPZ_7lKJ5?8T= z{=a9>QzN>rA7lgFkT>G5nU7EW$Up>bmsb+X3)r<*Js^73f3c@|sG~UqD#OU5LSZEz zv5~@2z$KG6u0&^&=D|z!IX;V|CP{z8e@jQK`=&8nvXUj zM7(b70LR?Q|9=Wx&14*LtYy~bd27cx4YqRFrV65$#Od}~qjpOTZ)Z|T`wmUC)YGU{Y4f{r0F#y9=~4M1)0 zh&ky+lvau~bHH%zLf!Y0-Es5Za7@!y$g7H&XH=dG?#Q?g*vC=f>R5_Kf#Ywwim!!g z!vEHMcmw1OR54H;MIW#sQQ;wX!hjEKD-~{!{adoe)Fc7lWoSJHV|(jPbd*+|+*2Xf z)n&z5LDB=0^JM@QPx2*_dQ_BFvoxcb9;HJ|TqoWe9MBwD8UQP+cGSL5uqM0z z4O?|k*bZ!=k84H28>r(EiLWkiXK5{N4kmZd9EbIg#yxCFK}}6~CN-j-Jo;d4y5g&Z zAP49ufXGu3bAmM?<*n1$A8D6UMWctisI+4gc<{z}4pO;R9UwTZyEK{(f2tn!p+osz z*Y9@Z^vv-k$qtglK0gPw(Z|7{3#9G~}ir3e62lV=I zo&9|NpPyKwI1nvZD{r_76L20gD}V%)-}00#XM~%1r?x@B=YRuiZ7!VMzYLQbt71(GiYaWoK z6nMkETIMHNX1asGdHQvei0vjvZjWl&>E{R5AgOHQC;q zkKeDQdXkpUdbF8u;Y|Q+1CBlDhC9bC#`cO16wtY}o0>jF9PK))s5-&ibmRHiXc%l04cU-3sk zh2jZe&aK3D;`|cEUY9viq-UPWy-2l%Jm_T{>{qrV>8$Mxos&cOjrg#lu)Yg2_{(k= zu{HqBvYMHj*QZJmF3ER|a}b!ycErXd)$=(dXmez9g$sn zfBre=6cP{jC+K!=ZZGJX)m~zaXN-)VlC#(%GJuhv^K??2r{P~2ebj^|<^6iO{qGg8 zFDtCyt%1DB%Wkpw04sAGK+CMgPRL~`;}|WE5niTi24D5-x5oim2x>eW2HQG(v+Fo_pt{Tc>*CC#()9xbFrv+HSCJs&&I_I-V0y(ahKVz}FpFSdY^PulE;%N;W+YMk#;I>SyjJ}f@1c<#K%KbJp@)h5K3p%Q}us+54 z`zy-~Js+?-DZqTo*ZdNAkOPQ)1pk=A)6MIn@{(O1yxsc;*yA8{$R6?3*NShyTrvWh zTiH~g%2J9v2)4u3v|4MW;2^CmBmJ}wWIoG4(M#>0bU*W^&lvjp`C6^AlU}HWz%fq% zsDYrmh3e?a&KYy_@+;Yw;#vkv>RNo*QU1)`ctc-*(AW_)ehfrX{^`i%8i)>7dJHg` z7rAya#n(0G_zr-g4ArhC$J4JimK(?>pz#wp<`sPpY6GcHmjV~d z8bJrm1dr`H7A23bY-m-0+sz2JIFvFH5Xm{{3RG0q6_OXe;4SMvI9#3^zYeG`;Wu4u3Z!s9HS0j2 zgFzn*)KD1sXQ;4xmCOWo6uAuFKCi&pngZ`DIMFTrtd-Jw;GPnk$#%NZkrAS;M%C`%68hG|bH}jF)@z9&Qc%w>@Pt zdOE=p?3atu@gqHZ?Y_6c6meyP0w?n&H;CoLWS|N)vEE=9R<&2By;$BN0kVP*s_|Ui zu^MelD(U)oD=gfiZ*{I4e<||e(5KCT%@8=g2b9N4VrC6>(7AF(<(uq=OR7~d^UZCw9W4D#^6_;TX*GCloyN&DirL? z!jWn)0UQ85b^jzh5{T%i7CK2)KcEab)?VFTf5$%&)6N&QAlG1VJ_;)JUOL-w&|dp+ zS)VUj_)#H$RVP?$U@LJ)KUj3|Y|w>sih}O!s~17YY1vgF%m4P46yvP&RJwDI#>eX0 zv~Hfp@g6m<$V=JV`S|#ZQd2RQehMv~%;RRV&e4DRS=7>6NtAx;l@wDO zag96gGw&~)kv#W8{b#LOVgJkx#&AwPT9>UNm2F_zx=)G z!#^3hGrO2hIbGw{AFOu~ftyaX%s-mh`gUi%BsDPD5q)*SEQv=_tlG_}lrd7iVo5a~T?! z1GZBs76y(t>7jOK&POl)Mk2Pn>(x;+UaYv-iQgW39&Ls+9?cV0L(?n_w?v`XOBc)z z>6C&45}fQ+-U!>6xXh~3*B>-N zPo8Kl_O!0qa9#2v%O)?HL!2CqmFd;-jl|-3#m}kb^;Zr>(a_vJDycg@CLn*VL$jR? zqPyGD0Uw0-g$xJI>vH$WpmD}vI8CiWo3qb>sVnzQ8yl7|i0n$1%;2d<%e$11-*y(f z4h{p*n4QGn`~}v&ial+QqQVvl6bAN8LMHY)Y?+E4I2O7t1ef{cWGWlEbS3deOQeKd z>xni-{%?OKt~vBjrycl`=ph@%tc|w7s{2fC;&+<9x{2RwN)n$-s4t_`3CIjB>rQ1B z$yR5gc|;&oN5l`#&Pw`$qn*-33q%yY_zO~mzFKdm|K;7E%NdMw9Us@H`s*44*;gKY zN<70)u>CxL`Q~Y{ix>Zxx|U%z+r9okK#Y89?@(?+vXy5zz&E!MlTUD88#2d%~2T(`4(jcqH&~YO0+_CrkC)o%~ zcij8+290fJ&q3VjOmAKjFOW?J@3dZ0$N$v5;n$V>_vB<|QAtfE`icSUyD-RXs43pUAOTwdIiO`?6+(FMlphb_#k#Bl{dSC083t*3vuj|~ zUoCnP=5IjKf;<|Uh)UR=Tqc@u4xVdnRBfP_PYLxKGvOO0*|I_U0DWW?G6nv}ZtYes z?KAA%M;(h5#NWtZDKYj37`2l|khDCH1`Vtc&g@aI&U=HZqnnogtKRpA{`f2Ih;G?6f)7}`LqsvbDPs=GmczGygn-t3bZ`W0bxp+*bA!{ac4^_K{vY5 z_?egY@3@4NGL{#@fENu>;_XQ=zd0zwA_CCs`7^Ikxes70-&Gb;xOa<)Y`R0fp0^}>iGk-Xm+uqO? z)_WgHC3TK#=6mTV&gSF+&nd=`7IsKN2X-=qA;bon@<~_+NbSbb%x%i*e-A>;ZIZyM zlChxOtH1_L>P=HMQ$oCcoJ8`3p|ch0aC~$7{CYQ1xO+186M<`~ppC`!a>z+M+MSnN zjTI*4(f-m#8ddvhPrJ%gH_5ip%2wH0n3-*@+YiIKM4$_( zt;nNcM)o7?bvB;w0KFa+(EjSs-Ad@JcivxIvh_)0Pma#2$rLVAqK6#My=Z67(vnBU zAtYT-Y3piYcJzysB1W4~RSDcoxXnwiSP4vVNbuIiC_FvCkZ90NM6Wa>w` zo+YU!%gmv1W*$XVy&J*_86aT!xRyeM++)uZya=`tvHMrMcwv?&k~$Aaxt?1my!X+- zY8B}G9UIi^?aaADWF>}oE(oj>U++5P)2{Y9t$sA%Q8}5gl*yMIt-l(N8q$IZ==VhY zxY5~&PQmPShl*9kq*}bu!0UhBZb~yfG8C8(aF{VB{P*N%A{=9`Grif|axNI}4tGDN zP+YppEeNlJ_P_1<6}3M-HKP4}?V0Of(ybim*-N{YLMRr|hR}pZz9BKb6LMrF(_FHg z!A?;dBzAV6>EEoaGTHyNae?(VkSa|p3=AUUWROjMxWYcer{Bz|I9J0S_%$uG>52>Y z%cPmOz7C2PFH3-9Y-yZ1m%7>nIB6Ccwy$emPV`s9Un1YTHI--8q^yQW1F&F?17D9aLwsv zAxVfHN;v=Fu5?sa7~lq}2rPKswq_KDzqe}G8r%I^dT4EPV87NIpWu3=YjIxe-OjB9 z4p0hG^tuyEBNQSIe^c@I0gL&ZSa=tjh)&9}EyIMk{?bXxely_TCF%^#u?y zWqYEnx0o$mFqj>^@a(K$setTask(&task); dlgStatusTask->exec(); diff --git a/LibInstructorsAndTrainees/tasks/checkertask.cpp b/LibInstructorsAndTrainees/tasks/checkertask.cpp index 0ef86b9..ddaec4e 100644 --- a/LibInstructorsAndTrainees/tasks/checkertask.cpp +++ b/LibInstructorsAndTrainees/tasks/checkertask.cpp @@ -14,30 +14,31 @@ CheckerTask::CheckerTask(ConnectorToServer* connectorToServer, TypeChecker type, { ui->setupUi(this); + ui->btnNew->setObjectName("btnNew"); + ui->btnCheckup->setObjectName("btnCheckup"); + ui->btnWrong->setObjectName("btnWrong"); + ui->btnCompleted->setObjectName("btnCompleted"); + this->type = type; if(type == TypeChecker::fim_check) { fimTasksWidget = new FIMtasksWidget(nullptr, TypeListTreeAMMFIM::listOneTask, this); - ui->verticalLayout_3->addWidget(fimTasksWidget); + ui->lblName->setVisible(false); ui->lblDMcode->setVisible(false); ui->plainText->setReadOnly(true); ui->plainText->setObjectName("plainText"); } - else if(type == TypeChecker::amm_status) + else if(type == TypeChecker::amm_check) { ui->plainText->setVisible(false); ui->label->setVisible(false); - //ui->label_Task->setVisible(false); - ui->btnRight->setText(tr("Completed")); - ui->btnWrong->setText(tr("New")); - ui->btnWrong->setIcon(QIcon(QStringLiteral(":/resources/icons/circleGray.png"))); - ui->btnRight->setEnabled(false); ui->btnWrong->setEnabled(false); + ui->btnCheckup->setEnabled(false); } } @@ -70,12 +71,14 @@ void CheckerTask::setTask(TaskAmmFim* task) //Репорт outReport(this->task.report); } - else if(type == TypeChecker::amm_status) + else if(type == TypeChecker::amm_check) { + /* if(this->task.status == "new") - ui->btnRight->setEnabled(true); + ui->btnCompleted->setEnabled(true); else ui->btnWrong->setEnabled(true); + */ ui->lblName->setText(task->ammProcedure.title); ui->lblDMcode->setText(task->ammProcedure.dmCode); @@ -100,7 +103,7 @@ void CheckerTask::setTask(TaskAmmFim* task) else { ui->lblStatusCurrText->setText(tr("new")); - ui->lblStatusCurrIco->setPixmap(QPixmap(QStringLiteral(":/resources/icons/circleGray.png"))); + ui->lblStatusCurrIco->setPixmap(QPixmap(QStringLiteral(":/resources/icons/new.png"))); } } @@ -157,6 +160,7 @@ void CheckerTask::outReport(FIMReport report) } } +//НЕВЕРНО void CheckerTask::on_btnWrong_clicked() { TypeQueryToDB typeQuery; @@ -169,7 +173,57 @@ void CheckerTask::on_btnWrong_clicked() status = "failed"; msgString = tr("Change task status?\nThe status will be set:\n'failed'"); } - else if(type == TypeChecker::amm_status) + + if(SpecMsgBox::WarningYesNo(this, msgString) == QDialog::Accepted) + { + connectorToServer->sendQueryToDB(typeQuery, id_task, (void*)&status); + this->parentWidget()->close(); + flChanged = true; + } +} + +//ВЫПОЛНЕНО +void CheckerTask::on_btnCompleted_clicked() +{ + TypeQueryToDB typeQuery; + QString status; + QString msgString; + + if(type == TypeChecker::fim_check) + { + typeQuery = TypeQueryToDB::TYPE_QUERY_CHANGE_STATUS_REPORT_TASK_FIM_TO_TRAINEE; + status = "completed"; + msgString = tr("Change task status?\nThe status will be set:\n'completed'"); + } + else if(type == TypeChecker::amm_check) + { + typeQuery = TypeQueryToDB::TYPE_QUERY_CHANGE_STATUS_REPORT_TASK_AMM_TO_TRAINEE; + status = "completed"; + msgString = tr("Change task status?\nThe status will be set:\n'completed'"); + } + + if(SpecMsgBox::WarningYesNo(this, msgString) == QDialog::Accepted) + { + connectorToServer->sendQueryToDB(typeQuery, id_task, (void*)&status); + this->parentWidget()->close(); + flChanged = true; + } +} + +//НОВАЯ +void CheckerTask::on_btnNew_clicked() +{ + TypeQueryToDB typeQuery; + QString status; + QString msgString; + + if(type == TypeChecker::fim_check) + { + typeQuery = TypeQueryToDB::TYPE_QUERY_CHANGE_STATUS_REPORT_TASK_FIM_TO_TRAINEE; + status = "new"; + msgString = tr("Change task status?\nThe status will be set:\n'new'"); + } + else if(type == TypeChecker::amm_check) { typeQuery = TypeQueryToDB::TYPE_QUERY_CHANGE_STATUS_REPORT_TASK_AMM_TO_TRAINEE; status = "new"; @@ -184,7 +238,8 @@ void CheckerTask::on_btnWrong_clicked() } } -void CheckerTask::on_btnRight_clicked() +//НА ПРОВЕРКЕ +void CheckerTask::on_btnCheckup_clicked() { TypeQueryToDB typeQuery; QString status; @@ -193,14 +248,8 @@ void CheckerTask::on_btnRight_clicked() if(type == TypeChecker::fim_check) { typeQuery = TypeQueryToDB::TYPE_QUERY_CHANGE_STATUS_REPORT_TASK_FIM_TO_TRAINEE; - status = "completed"; - msgString = tr("Change task status?\nThe status will be set:\n'completed'"); - } - else if(type == TypeChecker::amm_status) - { - typeQuery = TypeQueryToDB::TYPE_QUERY_CHANGE_STATUS_REPORT_TASK_AMM_TO_TRAINEE; - status = "completed"; - msgString = tr("Change task status?\nThe status will be set:\n'completed'"); + status = "checkup"; + msgString = tr("Change task status?\nThe status will be set:\n'checkup'"); } if(SpecMsgBox::WarningYesNo(this, msgString) == QDialog::Accepted) diff --git a/LibInstructorsAndTrainees/tasks/checkertask.h b/LibInstructorsAndTrainees/tasks/checkertask.h index 07be77f..79eccf1 100644 --- a/LibInstructorsAndTrainees/tasks/checkertask.h +++ b/LibInstructorsAndTrainees/tasks/checkertask.h @@ -21,9 +21,7 @@ class CheckerTask : public QWidget public: enum TypeChecker { - amm_status, amm_check, - fim_status, fim_check }; @@ -42,7 +40,9 @@ public: private slots: void on_btnWrong_clicked(); - void on_btnRight_clicked(); + void on_btnCompleted_clicked(); + void on_btnNew_clicked(); + void on_btnCheckup_clicked(); private: void outReport(FIMReport report); diff --git a/LibInstructorsAndTrainees/tasks/checkertask.ui b/LibInstructorsAndTrainees/tasks/checkertask.ui index 5d3ce90..c54b38d 100644 --- a/LibInstructorsAndTrainees/tasks/checkertask.ui +++ b/LibInstructorsAndTrainees/tasks/checkertask.ui @@ -53,6 +53,9 @@ :/resources/icons/rectGray.png + + true + @@ -159,6 +162,58 @@ + + + + + 50 + 50 + + + + New + + + + :/resources/icons/new.png:/resources/icons/new.png + + + + 32 + 32 + + + + Qt::ToolButtonTextUnderIcon + + + + + + + + 50 + 50 + + + + Checkup + + + + :/resources/icons/circleYellow.png:/resources/icons/circleYellow.png + + + + 32 + 32 + + + + Qt::ToolButtonTextUnderIcon + + + @@ -186,7 +241,7 @@ - + 50 @@ -194,7 +249,7 @@ - Right + Completed diff --git a/LibInstructorsAndTrainees/tasks/dialogchekertask.cpp b/LibInstructorsAndTrainees/tasks/dialogchekertask.cpp index 523e419..63c1a3a 100644 --- a/LibInstructorsAndTrainees/tasks/dialogchekertask.cpp +++ b/LibInstructorsAndTrainees/tasks/dialogchekertask.cpp @@ -17,13 +17,11 @@ DialogChekerTask::DialogChekerTask(ConnectorToServer* connectorToServer, Checker switch (type) { case CheckerTask::TypeChecker::fim_check: - case CheckerTask::TypeChecker::amm_check: this->setWindowTitle(tr("Check Task")); this->setMinimumSize(1400, 700); this->setWindowState(Qt::WindowMaximized); break; - case CheckerTask::TypeChecker::fim_status: - case CheckerTask::TypeChecker::amm_status: + case CheckerTask::TypeChecker::amm_check: this->setWindowTitle(tr("Status Task")); this->setMinimumSize(400, 200); break; diff --git a/LibInstructorsAndTrainees/tasks/fimtaskswidget.cpp b/LibInstructorsAndTrainees/tasks/fimtaskswidget.cpp index 198ed34..2a4b3ba 100644 --- a/LibInstructorsAndTrainees/tasks/fimtaskswidget.cpp +++ b/LibInstructorsAndTrainees/tasks/fimtaskswidget.cpp @@ -191,10 +191,11 @@ void FIMtasksWidget::on_treeWidgetItemClicked(QTreeWidgetItem *item, int column) ui->btnDelete->setEnabled(true); - if(task.status != "new") + ui->btnCheck->setEnabled(true); + /*if(task.status != "new") ui->btnCheck->setEnabled(true); else - ui->btnCheck->setEnabled(false); + ui->btnCheck->setEnabled(false);*/ } else { diff --git a/LibInstructorsAndTrainees/tasks/tasktreepreparation.cpp b/LibInstructorsAndTrainees/tasks/tasktreepreparation.cpp index 94edffe..06dc0cc 100644 --- a/LibInstructorsAndTrainees/tasks/tasktreepreparation.cpp +++ b/LibInstructorsAndTrainees/tasks/tasktreepreparation.cpp @@ -525,7 +525,7 @@ void TaskAMMFIMTreePreparation::slot_prepareAMMListItemsForTrainee(QListsetText(ColumnsTreeAMM::clmnAMM_status, tr("new")); - item->setIcon(ColumnsTreeAMM::clmnAMM_status, QIcon(QStringLiteral(":/resources/icons/circleGray.png"))); + item->setIcon(ColumnsTreeAMM::clmnAMM_status, QIcon(QStringLiteral(":/resources/icons/new.png"))); } item->setToolTip(0, text); @@ -598,7 +598,7 @@ void TaskAMMFIMTreePreparation::slot_prepareFIMListItems(QByteArray array) else { itemTask->setText(ColumnsTreeFIM::clmnFIM_status, tr("new")); - itemTask->setIcon(ColumnsTreeFIM::clmnFIM_status, QIcon(QStringLiteral(":/resources/icons/circleGray.png"))); + itemTask->setIcon(ColumnsTreeFIM::clmnFIM_status, QIcon(QStringLiteral(":/resources/icons/new.png"))); } @@ -691,7 +691,7 @@ void TaskAMMFIMTreePreparation::slot_prepareFIMListItemsForTrainee(QListsetText(ColumnsTreeFIM::clmnFIM_status, tr("new")); - itemTask->setIcon(ColumnsTreeFIM::clmnFIM_status, QIcon(QStringLiteral(":/resources/icons/circleGray.png"))); + itemTask->setIcon(ColumnsTreeFIM::clmnFIM_status, QIcon(QStringLiteral(":/resources/icons/new.png"))); } From 4b3453fe72ab141f3adf807ef2304b6a894088f1 Mon Sep 17 00:00:00 2001 From: krivoshein Date: Thu, 18 Dec 2025 12:22:40 +0300 Subject: [PATCH 6/8] =?UTF-8?q?=D0=B2=20=D0=BF=D1=80=D0=BE=D1=86=D0=B5?= =?UTF-8?q?=D1=81=D1=81=D0=B52?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- LibDataBaseInterface/databaselms_tasks.cpp | 48 +++++++++++++++++++ .../tasks/checkertask.cpp | 46 ++++++++++++++++-- .../tasks/dialogchekertask.cpp | 2 +- 3 files changed, 92 insertions(+), 4 deletions(-) diff --git a/LibDataBaseInterface/databaselms_tasks.cpp b/LibDataBaseInterface/databaselms_tasks.cpp index 080c201..71030b6 100644 --- a/LibDataBaseInterface/databaselms_tasks.cpp +++ b/LibDataBaseInterface/databaselms_tasks.cpp @@ -435,6 +435,54 @@ int DataBaseLMS::updateStatusTaskFIM(int task_id, QString status) return 0; } + if(status == "new") + {//Удаляем отчет + queryStr = QString("SELECT reports.report_id " + "FROM public.reports " + "WHERE fk_task_fim_id = %1 " + "ORDER BY reports.report_id ASC").arg( + QString::number(task_id)); + + int report_id = 0; + + QSqlQuery queryReportsSEL = QSqlQuery(*db); + if(queryExec(queryStr, &queryReportsSEL)) + { + if (queryReportsSEL.first()) + {//Отчет + report_id = queryReportsSEL.value(0).toInt(); + } + } + else + { + resBool = db->rollback(); + return 0; + } + + + queryStr = QString("DELETE FROM public.report_items " + "WHERE fk_report_id = %1 ").arg( + QString::number(report_id)); + + QSqlQuery queryItemsDEL = QSqlQuery(*db); + if(!queryExec(queryStr, &queryItemsDEL)) + { + resBool = db->rollback(); + return 0; + } + + queryStr = QString("DELETE FROM public.reports " + "WHERE report_id = %1 ").arg( + QString::number(report_id)); + + QSqlQuery queryReportsDEL = QSqlQuery(*db); + if(!queryExec(queryStr, &queryReportsDEL)) + { + resBool = db->rollback(); + return 0; + } + } + resBool = db->commit(); return id_trainee; } diff --git a/LibInstructorsAndTrainees/tasks/checkertask.cpp b/LibInstructorsAndTrainees/tasks/checkertask.cpp index ddaec4e..2cb3504 100644 --- a/LibInstructorsAndTrainees/tasks/checkertask.cpp +++ b/LibInstructorsAndTrainees/tasks/checkertask.cpp @@ -70,15 +70,55 @@ void CheckerTask::setTask(TaskAmmFim* task) //Репорт outReport(this->task.report); + + if(this->task.status == "new") + { + ui->btnNew->setEnabled(false); + ui->btnCheckup->setEnabled(false); + ui->btnWrong->setEnabled(false); + ui->btnCompleted->setEnabled(false); + } + else if(this->task.status == "checkup") + { + ui->btnNew->setEnabled(true); + ui->btnCheckup->setEnabled(false); + ui->btnWrong->setEnabled(true); + ui->btnCompleted->setEnabled(true); + } + else if(this->task.status == "failed") + { + ui->btnNew->setEnabled(true); + ui->btnCheckup->setEnabled(true); + ui->btnWrong->setEnabled(false); + ui->btnCompleted->setEnabled(true); + } + else if(this->task.status == "completed") + { + ui->btnNew->setEnabled(true); + ui->btnCheckup->setEnabled(true); + ui->btnWrong->setEnabled(true); + ui->btnCompleted->setEnabled(false); + } + else + { + ui->btnNew->setEnabled(false); + ui->btnCheckup->setEnabled(false); + ui->btnWrong->setEnabled(false); + ui->btnCompleted->setEnabled(false); + } } else if(type == TypeChecker::amm_check) { - /* if(this->task.status == "new") + { + ui->btnNew->setEnabled(false); ui->btnCompleted->setEnabled(true); + } else - ui->btnWrong->setEnabled(true); - */ + { + ui->btnNew->setEnabled(true); + ui->btnCompleted->setEnabled(false); + } ui->lblName->setText(task->ammProcedure.title); ui->lblDMcode->setText(task->ammProcedure.dmCode); diff --git a/LibInstructorsAndTrainees/tasks/dialogchekertask.cpp b/LibInstructorsAndTrainees/tasks/dialogchekertask.cpp index 63c1a3a..02a7c30 100644 --- a/LibInstructorsAndTrainees/tasks/dialogchekertask.cpp +++ b/LibInstructorsAndTrainees/tasks/dialogchekertask.cpp @@ -19,7 +19,7 @@ DialogChekerTask::DialogChekerTask(ConnectorToServer* connectorToServer, Checker case CheckerTask::TypeChecker::fim_check: this->setWindowTitle(tr("Check Task")); this->setMinimumSize(1400, 700); - this->setWindowState(Qt::WindowMaximized); + //this->setWindowState(Qt::WindowMaximized); break; case CheckerTask::TypeChecker::amm_check: this->setWindowTitle(tr("Status Task")); From 33499ed0eab52d514742d46847a0cfc607eaf3af Mon Sep 17 00:00:00 2001 From: krivoshein Date: Thu, 18 Dec 2025 17:34:05 +0300 Subject: [PATCH 7/8] =?UTF-8?q?=D0=98=D0=B7=D0=BC=D0=B5=D0=BD=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D0=B5=20=D1=81=D1=82=D0=B0=D1=82=D1=83=D1=81=D0=B0=20?= =?UTF-8?q?=D0=A4=D0=98=D0=9C.=20=D0=97=D0=B0=D0=BA=D0=BE=D0=BD=D1=87?= =?UTF-8?q?=D0=B8=D0=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../messanger/messangerwidget.cpp | 3 ++ .../messanger/messangerwidget.ui | 6 ++-- .../messanger/tabdialogmessenger.cpp | 4 +++ .../resources/icons/new — копия (2).png | Bin 0 -> 11519 bytes .../resources/icons/new — копия.png | Bin 0 -> 23703 bytes .../resources/icons/new.png | Bin 23703 -> 10240 bytes .../resources/icons/personalCard.png | Bin 17879 -> 16561 bytes .../resources/icons/sign — копия.png | Bin 0 -> 2804 bytes .../resources/icons/sign.png | Bin 2804 -> 2704 bytes .../tasks/ammtaskswidget.cpp | 32 ++++++++++++++++-- .../tasks/ammtaskswidget.h | 1 + .../tasks/checkertask.cpp | 22 ++++++++++++ LibInstructorsAndTrainees/tasks/checkertask.h | 2 ++ .../tasks/dialogchekertask.cpp | 2 +- .../tasks/fimtaskswidget.cpp | 3 ++ .../tasks/fimtaskswidget.h | 2 +- .../tasks/listsubproc.cpp | 2 ++ .../tasks/listsubproc.ui | 4 +-- .../tasks/subprocitemwidget.ui | 9 +++++ .../tasks/tasktreepreparation.cpp | 4 +-- 20 files changed, 85 insertions(+), 11 deletions(-) create mode 100644 LibInstructorsAndTrainees/resources/icons/new — копия (2).png create mode 100644 LibInstructorsAndTrainees/resources/icons/new — копия.png create mode 100644 LibInstructorsAndTrainees/resources/icons/sign — копия.png diff --git a/LibInstructorsAndTrainees/messanger/messangerwidget.cpp b/LibInstructorsAndTrainees/messanger/messangerwidget.cpp index c5504f9..1a52713 100644 --- a/LibInstructorsAndTrainees/messanger/messangerwidget.cpp +++ b/LibInstructorsAndTrainees/messanger/messangerwidget.cpp @@ -3,6 +3,7 @@ #include #include #include +#include #include "instructor.h" #include "messangerwidget.h" #include "ui_messangerwidget.h" @@ -85,6 +86,8 @@ void MessangerWidget::addTabDialogMessenger(User user) oneDialogMessenger = new OneDialogMessenger(userLocalGUI, userRemote, this); + oneDialogMessenger->setVerticalScrollMode(QAbstractItemView::ScrollMode::ScrollPerPixel); + ui->verticalLayout_ListMsg->addWidget(oneDialogMessenger); //Обновляем заголовок diff --git a/LibInstructorsAndTrainees/messanger/messangerwidget.ui b/LibInstructorsAndTrainees/messanger/messangerwidget.ui index 4c8a2a0..c0a8ffd 100644 --- a/LibInstructorsAndTrainees/messanger/messangerwidget.ui +++ b/LibInstructorsAndTrainees/messanger/messangerwidget.ui @@ -85,7 +85,7 @@ - :/resources/icons/circleGray.png + :/resources/icons/circleGray.png @@ -128,7 +128,7 @@ Send - + :/resources/icons/sendMsg.png:/resources/icons/sendMsg.png @@ -149,7 +149,7 @@ - + diff --git a/LibInstructorsAndTrainees/messanger/tabdialogmessenger.cpp b/LibInstructorsAndTrainees/messanger/tabdialogmessenger.cpp index 2c1db93..e6ea6ca 100644 --- a/LibInstructorsAndTrainees/messanger/tabdialogmessenger.cpp +++ b/LibInstructorsAndTrainees/messanger/tabdialogmessenger.cpp @@ -15,6 +15,10 @@ OneDialogMessenger::OneDialogMessenger(User userLocalGUI, User userRemote, QWidg setWordWrap(true); setVerticalScrollBarPolicy(Qt::ScrollBarPolicy::ScrollBarAlwaysOn); + + setVerticalScrollMode(ScrollMode::ScrollPerPixel); + + verticalScrollBar()->setSingleStep(10); } OneDialogMessenger::~OneDialogMessenger() diff --git a/LibInstructorsAndTrainees/resources/icons/new — копия (2).png b/LibInstructorsAndTrainees/resources/icons/new — копия (2).png new file mode 100644 index 0000000000000000000000000000000000000000..3504131a3f1d429cb1868d649a758df3e5e23286 GIT binary patch literal 11519 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 literal 23703 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 literal 17879 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 diff --git a/LibInstructorsAndTrainees/resources/icons/sign — копия.png b/LibInstructorsAndTrainees/resources/icons/sign — копия.png new file mode 100644 index 0000000000000000000000000000000000000000..62aafba22529cabe9f637be52389c7efee6a7020 GIT binary patch literal 2804 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 Lu6{1-oD!MHC7{j+Id-`J2zaX}N($Is($$nrI z2UErJRbGz5J1pAwJM|(Db>0CZ-OyJeYT;rH_ZclYQTm`0^LOcR;L_v#@yp#jHgp?5 z$qa8at{R=nBtML7);5n9f6(H0JYj2i{?pPse?xZ2mx5Kdejgx9F>28({<{$L8d7q}FQQS=N4a z!uJlPic=3L9UU&G?B23<`u>vb*Jog)WjL=w^B1qBtvgZXW@AnM>4>*<{pM)wz^)ZP zg{BWJCNJAaQm^Fl?2T42ZWmiBFMk`sn8f4eA}0{9@X0Fm?|u84*TlDbuRq#@tCSQh&#{p!z1~%*+{)bjd2MKd)>zMB!vAeEVzv#f>9r?S- z1}C@Tt#}l42N*~wPy*BSBh?>YLkw8zf0T~>Cd@AS>(Aro**E^hjZY$)VrV z#Ut0h-_I9Q%bxBEPqxRl^Pp(+$^IMLWljy)#=6ti;zWucjpdz(A8OtXecZt4mFFKE zAW?$RRlnx2x}nGUGdgy+8Go^VXtX$%Z|jfg&FzM&*wWI$zb)DW1VdqW= z&p-H#V$hfDTyMS3mC$93LLm7)z!q+h55aN{CwROE!6c)K$@0@mnitV|bj0X`uH zXzIclUcKBo%7mYI+s`H`=F>AnYTK|pPSW$9)J<%wgEImbSr;*KKKj zhHMaQ8q2jlIo_VH2N(=5&3M5(GQw@-DH73Kh!gd@}#EAvCWiG%k7xw@GL~Rf)0SOy;NN7XU z$wls`JjNXmQ4c_{q<=PEE~N6$APGTdfo#>dm9_b zOV|d%XH#s7FvcHfITk-A=gykFD!m_ zj%#qEvjCKw>V<%?lGs{~YJ?FPh|~(OR-$zOnE{gHmGfO(D1WDWhz$(^fXXr$(}NE0 z!T56?&GZBOcWWg>r9;b^C>}!+jR_8wd7}W_{0f@Z3?NBZz8#pIf%v;1vIe{BpA^cV z8gLNJmWe<)AK-TU43$1OeS4M>opvDJgYD#zM6KOwltjSjJi*C5pgO2F8Z`i`?4ng0 zhQq#@M|<_r!g3cN`OOJ`U@1Ipfw*fTxe ztiz}Y?BW*e;0+AR=Dw#Pl>>jwjXyf@E5xDB*^B`bVs&4&om5*ud7=U|chKjE^Au9+ zh-v^5Q+17}>cH(JhKT6stHj4X-Xd0dam690Ax!0Cyno}`AL?Y~g zaDiMepkx!~*n2QAfR*d&rKuIkv?7^&_1g;RJa(bGS56$q489L;(>YCjb^uWz1~t%+ zGZ5npo$6JhcNsNn36w%9v&$YF?zQ_osetObjectName("treeWidget_AMMforTrainee"); ui->horizontalLayout_Tree->addWidget(treeWidget); + treeWidget->setFocusPolicy(Qt::FocusPolicy::NoFocus); + connect(treeWidget, &QTreeWidget::itemClicked, this, &AMMtasksWidget::on_treeWidgetItemClicked); connect(treeWidget, &QTreeWidget::itemDoubleClicked, this, &AMMtasksWidget::on_treeWidgetDoubleClicked); @@ -77,6 +79,18 @@ AMMtasksWidget::AMMtasksWidget(ConnectorToServer* connectorToServer, TypeListTre ui->btnDelete->setVisible(false); ui->btnStatus->setVisible(false); } + else if(type == TypeListTreeAMMFIM::listOneTask) + { + ui->btnDelete->setVisible(false); + ui->btnStatus->setVisible(false); + ui->btnAssignTask->setVisible(false); + ui->btnOnlyActive->setVisible(false); + ui->btnDocsUpdating->setVisible(false); + ui->label_DocsActualed->setVisible(false); + ui->label_Actual->setVisible(false); + this->treeWidget->headerItem()->setHidden(true); + this->treeWidget->setSelectionMode(QAbstractItemView::SelectionMode::NoSelection); + } else { ui->btnOnlyActive->setVisible(false); @@ -117,6 +131,13 @@ void AMMtasksWidget::deactivate() idTraineeSelected = 0; } +void AMMtasksWidget::setOneTaskAmm(TaskAmmFim *task) +{ + QList listTask; + listTask.append(*task); + emit signal_prepareAMMListItemsForTrainee(listTask); +} + void AMMtasksWidget::waitAnimationWidgetShowWithPlay() { waitAnimationWidget->showWithPlay(); @@ -282,7 +303,7 @@ void AMMtasksWidget::loadTasksAMM(bool flRequestFirst) void AMMtasksWidget::slot_AMMlistItemsReady(QList listItems) { - if(type != TypeListTreeAMMFIM::listForTrainee) + if(type != TypeListTreeAMMFIM::listForTrainee && type != TypeListTreeAMMFIM::listOneTask) { //Обновление дерева treeWidget->clear(); @@ -296,6 +317,13 @@ void AMMtasksWidget::slot_AMMlistItemsReady(QList listItems) if(item != nullptr) treeWidget->setCurrentItem(item); */ + QTreeWidgetItem * item = treeWidget->topLevelItem(0); + if(item != nullptr) + { + //treeWidget->setCurrentItem(item); + if(type == TypeListTreeAMMFIM::listOneTask) + treeWidget->expandAll(); + } if(type == TypeListTreeAMMFIM::listForTrainee) setCurrentTask(lastCurrentID); @@ -363,7 +391,7 @@ void AMMtasksWidget::preparationTreeWidget() reSetHeadTreeWidget(); - if(type == TypeListTreeAMMFIM::listCommon) + if(type == TypeListTreeAMMFIM::listCommon || type == TypeListTreeAMMFIM::listOneTask) { treeWidget->setColumnHidden(ColumnsTreeAMM::clmnAMM_ID, true); treeWidget->setColumnHidden(ColumnsTreeAMM::clmnAMM_status, true); diff --git a/LibInstructorsAndTrainees/tasks/ammtaskswidget.h b/LibInstructorsAndTrainees/tasks/ammtaskswidget.h index 1c0a695..4cfb014 100644 --- a/LibInstructorsAndTrainees/tasks/ammtaskswidget.h +++ b/LibInstructorsAndTrainees/tasks/ammtaskswidget.h @@ -26,6 +26,7 @@ public: public: void deactivate(); + void setOneTaskAmm(TaskAmmFim* task); void waitAnimationWidgetShowWithPlay(); void setDocsActualed(bool flActualed); diff --git a/LibInstructorsAndTrainees/tasks/checkertask.cpp b/LibInstructorsAndTrainees/tasks/checkertask.cpp index 2cb3504..8570cc0 100644 --- a/LibInstructorsAndTrainees/tasks/checkertask.cpp +++ b/LibInstructorsAndTrainees/tasks/checkertask.cpp @@ -2,12 +2,14 @@ #include "specialmessagebox.h" #include "ui_checkertask.h" #include "fimtaskswidget.h" +#include "ammtaskswidget.h" CheckerTask::CheckerTask(ConnectorToServer* connectorToServer, TypeChecker type, QWidget *parent) : QWidget(parent), ui(new Ui::CheckerTask), connectorToServer(connectorToServer), fimTasksWidget(nullptr), + ammTasksWidget(nullptr), flChanged(false), id_task(0), type(TypeChecker::fim_check) @@ -34,11 +36,19 @@ CheckerTask::CheckerTask(ConnectorToServer* connectorToServer, TypeChecker type, } else if(type == TypeChecker::amm_check) { + ammTasksWidget = new AMMtasksWidget(nullptr, TypeListTreeAMMFIM::listOneTask, this); + ui->verticalLayout_3->addWidget(ammTasksWidget); + + ui->lblName->setVisible(false); + ui->lblDMcode->setVisible(false); + ui->plainText->setVisible(false); ui->label->setVisible(false); ui->btnWrong->setEnabled(false); ui->btnCheckup->setEnabled(false); + ui->btnWrong->setVisible(false); + ui->btnCheckup->setVisible(false); } } @@ -50,6 +60,12 @@ CheckerTask::~CheckerTask() fimTasksWidget = nullptr; } + if(ammTasksWidget) + { + delete ammTasksWidget; + ammTasksWidget = nullptr; + } + delete ui; } @@ -77,6 +93,9 @@ void CheckerTask::setTask(TaskAmmFim* task) ui->btnCheckup->setEnabled(false); ui->btnWrong->setEnabled(false); ui->btnCompleted->setEnabled(false); + + ui->plainText->setVisible(false); + ui->label->setVisible(false); } else if(this->task.status == "checkup") { @@ -109,6 +128,9 @@ void CheckerTask::setTask(TaskAmmFim* task) } else if(type == TypeChecker::amm_check) { + //Задача + ammTasksWidget->setOneTaskAmm(&this->task); + if(this->task.status == "new") { ui->btnNew->setEnabled(false); diff --git a/LibInstructorsAndTrainees/tasks/checkertask.h b/LibInstructorsAndTrainees/tasks/checkertask.h index 79eccf1..995c468 100644 --- a/LibInstructorsAndTrainees/tasks/checkertask.h +++ b/LibInstructorsAndTrainees/tasks/checkertask.h @@ -13,6 +13,7 @@ class CheckerTask; } class FIMtasksWidget; +class AMMtasksWidget; class CheckerTask : public QWidget { @@ -56,6 +57,7 @@ private: private: ConnectorToServer* connectorToServer; FIMtasksWidget* fimTasksWidget; + AMMtasksWidget* ammTasksWidget; bool flChanged; int id_task; diff --git a/LibInstructorsAndTrainees/tasks/dialogchekertask.cpp b/LibInstructorsAndTrainees/tasks/dialogchekertask.cpp index 02a7c30..8bd62f8 100644 --- a/LibInstructorsAndTrainees/tasks/dialogchekertask.cpp +++ b/LibInstructorsAndTrainees/tasks/dialogchekertask.cpp @@ -23,7 +23,7 @@ DialogChekerTask::DialogChekerTask(ConnectorToServer* connectorToServer, Checker break; case CheckerTask::TypeChecker::amm_check: this->setWindowTitle(tr("Status Task")); - this->setMinimumSize(400, 200); + this->setMinimumSize(1400, 500); break; default: break; diff --git a/LibInstructorsAndTrainees/tasks/fimtaskswidget.cpp b/LibInstructorsAndTrainees/tasks/fimtaskswidget.cpp index 2a4b3ba..08bd9b6 100644 --- a/LibInstructorsAndTrainees/tasks/fimtaskswidget.cpp +++ b/LibInstructorsAndTrainees/tasks/fimtaskswidget.cpp @@ -32,6 +32,8 @@ FIMtasksWidget::FIMtasksWidget(ConnectorToServer* connectorToServer, TypeListTre treeWidget = new QTreeWidget(); ui->horizontalLayout_Tree->addWidget(treeWidget); + treeWidget->setFocusPolicy(Qt::FocusPolicy::NoFocus); + //connect(treeWidget, &QTreeWidget::currentItemChanged, this, &FIMtasksWidget::on_treeWidgetCurrentItemChanged); connect(treeWidget, &QTreeWidget::itemClicked, this, &FIMtasksWidget::on_treeWidgetItemClicked); @@ -465,6 +467,7 @@ void FIMtasksWidget::setCurrentTask(int id) if(item->text(ColumnsTreeFIM::clmnFIM_ID).toInt() == id) { treeWidget->setCurrentItem(item); + treeWidget->itemClicked(item, 0); return; } } diff --git a/LibInstructorsAndTrainees/tasks/fimtaskswidget.h b/LibInstructorsAndTrainees/tasks/fimtaskswidget.h index 0e60bd0..7260dce 100644 --- a/LibInstructorsAndTrainees/tasks/fimtaskswidget.h +++ b/LibInstructorsAndTrainees/tasks/fimtaskswidget.h @@ -27,7 +27,7 @@ public: public: void deactivate(); - void setOneTaskFim(TaskAmmFim* task); //FIM + void setOneTaskFim(TaskAmmFim* task); void waitAnimationWidgetShowWithPlay(); public: diff --git a/LibInstructorsAndTrainees/tasks/listsubproc.cpp b/LibInstructorsAndTrainees/tasks/listsubproc.cpp index e627391..4258eaf 100644 --- a/LibInstructorsAndTrainees/tasks/listsubproc.cpp +++ b/LibInstructorsAndTrainees/tasks/listsubproc.cpp @@ -14,6 +14,8 @@ ListSubProc::ListSubProc(QWidget *parent) : treeWidget = new QTreeWidget(); ui->horizontalLayout_Tree->addWidget(treeWidget); + treeWidget->setFocusPolicy(Qt::FocusPolicy::NoFocus); + preparationTreeWidget(); } diff --git a/LibInstructorsAndTrainees/tasks/listsubproc.ui b/LibInstructorsAndTrainees/tasks/listsubproc.ui index c8a2479..7fe6668 100644 --- a/LibInstructorsAndTrainees/tasks/listsubproc.ui +++ b/LibInstructorsAndTrainees/tasks/listsubproc.ui @@ -72,7 +72,7 @@ Assign - + :/resources/icons/circleGreen.png:/resources/icons/circleGreen.png @@ -93,7 +93,7 @@ - + diff --git a/LibInstructorsAndTrainees/tasks/subprocitemwidget.ui b/LibInstructorsAndTrainees/tasks/subprocitemwidget.ui index 827d0fb..6a045cb 100644 --- a/LibInstructorsAndTrainees/tasks/subprocitemwidget.ui +++ b/LibInstructorsAndTrainees/tasks/subprocitemwidget.ui @@ -43,6 +43,15 @@ QFrame::Sunken + + Qt::ScrollBarAlwaysOff + + + Qt::ScrollBarAlwaysOff + + + true + diff --git a/LibInstructorsAndTrainees/tasks/tasktreepreparation.cpp b/LibInstructorsAndTrainees/tasks/tasktreepreparation.cpp index 06dc0cc..3b425b3 100644 --- a/LibInstructorsAndTrainees/tasks/tasktreepreparation.cpp +++ b/LibInstructorsAndTrainees/tasks/tasktreepreparation.cpp @@ -531,7 +531,7 @@ void TaskAMMFIMTreePreparation::slot_prepareAMMListItemsForTrainee(QListsetToolTip(0, text); - if(type == TypeListTreeAMMFIM::listForTrainee) + if(type == TypeListTreeAMMFIM::listForTrainee || type == TypeListTreeAMMFIM::listOneTask) { //Подпроцедуры if(task.listSubProc.count()) @@ -635,7 +635,7 @@ void TaskAMMFIMTreePreparation::slot_prepareFIMListItems(QByteArray array) itemSign->setText(ColumnsTreeFIM::clmnFIM_Title, sign.description); //itemSign->setFlags(itemSign->flags() | Qt::ItemIsUserCheckable); //itemSign->setCheckState(ColumnsTreeFIM::clmnFIM_Title, Qt::Checked); - itemSign->setIcon(ColumnsTreeFIM::clmnFIM_Title, QIcon(":/resources/icons/sign.png")); + itemSign->setIcon(ColumnsTreeFIM::clmnFIM_Title, QIcon(":/resources/icons/sign.png").pixmap(24, 24)); itemSign->setToolTip(ColumnsTreeFIM::clmnFIM_Title, sign.description); itemMalfunction->addChild(itemSign); From 4dab164e278279034d609d6041f77594fc8fbee6 Mon Sep 17 00:00:00 2001 From: krivoshein Date: Thu, 18 Dec 2025 18:37:24 +0300 Subject: [PATCH 8/8] =?UTF-8?q?=D0=94=D0=BE=D0=BF=D0=B5=D1=80=D0=B5=D0=B2?= =?UTF-8?q?=D0=BE=D0=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...LibInstructorsAndTrainees_ru_RU — копия.ts | 1866 ----------------- .../LibInstructorsAndTrainees_ru_RU.qm | Bin 23761 -> 0 bytes translations/RRJServer_ru_RU.qm | Bin 31104 -> 31077 bytes translations/RRJServer_ru_RU.ts | 245 +-- 4 files changed, 115 insertions(+), 1996 deletions(-) delete mode 100644 translations/LibInstructorsAndTrainees_ru_RU — копия.ts delete mode 100644 translations/LibInstructorsAndTrainees_ru_RU.qm diff --git a/translations/LibInstructorsAndTrainees_ru_RU — копия.ts b/translations/LibInstructorsAndTrainees_ru_RU — копия.ts deleted file mode 100644 index 9a642e2..0000000 --- a/translations/LibInstructorsAndTrainees_ru_RU — копия.ts +++ /dev/null @@ -1,1866 +0,0 @@ - - - - - AMMtasksWidget - - - Form - Форма - - - - ... - - - - - Update - Обновить - - - - Assign - Назначить - - - - Аvailable - Доступные - - - - Delete - Удалить - - - - actual - актуально - - - - update required - требуется обновление - - - - - DM code - DM код - - - - - ID - ID - - - - - Procedure AMM - Процедура AMM - - - - - Canplay - Режимы - - - - - - Status - Статус - - - - The deletion will be irrevocable. -Delete it anyway? - Удаление будет безвозвратным. -Всё равно удалить? - - - - - Assign this task? - Назначить эту задачу? - - - - AssetsManager - - - LLC Constanta-Design - ООО Константа-Дизайн - - - - CheckerTask - - - Form - Форма - - - - Task - Задача - - - - TextLabel - - - - - Name - Имя - - - - DM Code - - - - - Completion Report - Отчет о выполнении - - - - Failed - Неверно - - - - Right - Верно - - - - Completed - Выполнена - - - - New - Новая - - - - viewed - Просмотрено - - - - - completed - выполнена - - - - failed - неверно - - - - checkup - на проверке - - - - new - новая - - - - Change task status? -The status will be set: -'failed' - Изменить статус задачи? -Будет установлен статус: -'неверно' - - - - Change task status? -The status will be set: -'new' - Изменить статус задачи? -Будет установлен статус: -'новая' - - - - - Change task status? -The status will be set: -'completed' - Изменить статус задачи? -Будет установлен статус: -'выполнена' - - - - CommonView - - - Name - Имя - - - - Login - Логин - - - - Password - Пароль - - - - Class - Класс - - - - Computer - Компьютер - - - - IP address - IP адрес - - - - Administrator - Администратор - - - - Archived - Архивный - - - - Online - В сети - - - - ID - ID - - - - DialogAuthorization - - - Instructor authorization - Авторизация инструктора - - - - Login - Логин - - - - Password - Пароль - - - - ... - - - - - Log in - Войти - - - - Only Latin letters and numbers - Только латинские буквы и цифры - - - - DialogCardTrainee - - - Personal card trainee - Персональная карта обучаемого - - - - DialogCheckDB - - - - Database - База данных - - - - Driver PostgreSQL - Драйвер PostgreSQL - - - - - - ... - - - - - User - Пользователь - - - - Repare - Восстановить - - - - Installed - Установлен - - - - Not installed - Не установлен - - - - - Exist - Существует - - - - - Not exist - Не существует - - - - - - Error! - Ошибка! - - - - Install PostgreSQL. - Установите PostgreSQL. - - - - Failed to create user! - Ошибка создания пользователя! - - - - Failed to create Database! - Ошибка создания Базы данных! - - - - Completed! - Завершено! - - - - The database has been successfully restored! - База данных успешно восстановлена! - - - - DialogChekerTask - - - Check Task - Проверка задачи - - - - DialogEditGroup - - - Group - Группа - - - - Name - Имя - - - - Save - Сохранить - - - - DialogEditInstructor - - - Instructor - Инструктор - - - - Name - Имя - - - - Login - Логин - - - - Password - Пароль - - - - - ... - - - - - Administrator - Администратор - - - - Archived - Архивный - - - - Online - В сети - - - - Save - Сохранить - - - - Only Latin letters and numbers - Только латинские буквы и цифры - - - - DialogEditTrainee - - - Trainee - Обучаемый - - - - Name - Имя - - - - Login - Логин - - - - Password - Пароль - - - - - ... - - - - - Archived - Архивный - - - - Online - В сети - - - - Save - Сохранить - - - - Only Latin letters and numbers - Только латинские буквы и цифры - - - - DialogListSubProc - - - List subprocedures - Список подпроцедур - - - - DialogNewPassword - - - Dialog - Диалог - - - - Save - Сохранить - - - - DialogNewVersion - - - Create copy... - Создать копию... - - - - Basic version: - Базовая версия: - - - - TextLabel - - - - - New name version: - Имя копии: - - - - Create - Создать - - - - Cancel - Отменить - - - - New version - Новая версия - - - - Only Latin letters and numbers - Только латинские буквы и цифры - - - - DialogRedactorInstructors - - - Editor of instructors - Редактор инструкторов - - - - DialogRedactorTrainees - - - Editor of trainees - Редактор обучаемых - - - - DialogSettings - - - Settings - Настройки - - - - Main - Основные - - - - Language - Язык - - - - Server - Сервер - - - - Address - Адрес - - - - Port - Порт - - - - Auto start - Авто старт - - - - Save - Сохранить - - - - Additional - Расширенные - - - - Version - Версия - - - - Style - Стиль - - - - DialogSettingsTray - - - Settings - Настройки - - - - Main - Основные - - - - Language - Язык - - - - Database - База данных - - - - Local - Локальная - - - - IP address - IP адрес - - - - Port - Порт - - - - Database name - Имя базы данных - - - - User name - Имя пользователя - - - - User password - Пароль пользователя - - - - Save - Сохранить - - - - Additional - Расширенные - - - - Check DB - Проверить БД - - - - Update Docs - Обновить Docs - - - - - - Error! - Ошибка! - - - - Driver PostgreSQL is not installed! - Драйвер PostgreSQL не установлен! - - - - Superuser PostgreSQL authorization - Авторизация суперпользователя PostgreSQL - - - - - Error connecting to PostgreSQL! - Ошибка соединения с PostgreSQL! - - - - - Possible reasons: - Возможные причины: - - - - - *superuser PostgreSQL login or password is incorrect; - *логин или пароль суперпользователя PostgreSQL некорректен; - - - - *Port is incorrect. - *Порт некорректен. - - - - *Port is incorrect; - *Порт некорректен; - - - - *file 'pg_hba.conf' does not contain an entry for the IP address: - *файл 'pg_hba.conf не содержит записи доступа для IP адреса: - - - - DialogTasksCommon - - - Viewer tasks common - Просмотршик списка процедур - - - - DialogVersionControl - - - Form - Форма - - - - Available versions on the server: - Доступные версии на сервере: - - - - Info: - Информация: - - - - Double click on the version to see information... - Двойной клик на версии для просмотра информации... - - - - Current server version: - Текущая версия: - - - - none - нет - - - - Create copy - Создать копию - - - - Delete - Удалить - - - - Change version - Изменить версию - - - - Version control - Управление версиями - - - - Yes - Да - - - - No - Нет - - - - Version name: - Имя версии: - - - - Created: - Создан: - - - - Changeable: - Изменен: - - - - Author: - Автор: - - - - - - - Version not selected - Версия не выбрана - - - - EditorInstructors - - - List instructors - Список инструкторов - - - - New instructor - Новый инструктор - - - - Delete instructor - Удалить инструктора - - - - - To archive - Архивировать - - - - Edit - Редактировать - - - - Show archive - Показать архив - - - - You cannot delete the Administrator. - Нельзя удалить администратора. - - - - You cannot delete a logged-in instructor. - Вы не можете удалить инструктора, вошедшего в систему. - - - - The deletion will be irrevocable. -Delete it anyway? - Удаление будет безвозвратным. -Всё равно удалить? - - - - You cannot archive a logged-in instructor. - Вы не можете заархивировать инструктора, вошедшего в систему. - - - - You cannot edit a logged-in instructor. - Вы не можете редактировать инструктора, вошедшего в систему. - - - - From archive - Разархивировать - - - - Unacceptable instructor name has been entered. -The changes will not be accepted. - Введено неприемлемое имя инструктора. -Изменения приняты не будут. - - - - Unacceptable instructor login has been entered. -The changes will not be accepted. - Введен неприемлемый логин инструктора. -Изменения приняты не будут. - - - - Unacceptable instructor password has been entered. -The changes will not be accepted. - Введен неприемлемый пароль инструктора. -Изменения приняты не будут. - - - - An existing instructor or trainee login has been entered. -The changes will not be accepted. - Введен существующий логин инструктора или обучаемого. -Изменения не будут приняты. - - - - EditorTrainees - - - List trainees - Список обучаемых - - - - New group - Новая группа - - - - Delete group - Удалить группу - - - - New trainee - Новый обучаемый - - - - Delete trainee - Удалить обучаемого - - - - - - To archive - Архивировать - - - - Edit - Редактировать - - - - Show archive - Показать архив - - - - The group is not empty. -It is not possible to delete a non-empty group. - Группа не пуста. Невозможно удалить непустую группу. - - - - - The deletion will be irrevocable. -Delete it anyway? - Удаление будет безвозвратным. -Всё равно удалить? - - - - You cannot delete a logged-in trainee. - Вы не можете удалить обучаемого, вошедшего в систему. - - - - You cannot archive a logged-in trainee. - Вы не можете заархивировать обучаемого, вошедшего в систему. - - - - You cannot edit a logged-in trainee. - Вы не можете редактировать обучаемого, вошедшего в систему. - - - - From archive - Разархивировать - - - - Unacceptable group name has been entered. -The changes will not be accepted. - Введено неприемлемое название группы. -Изменения приняты не будут. - - - - An existing group name has been entered. -The changes will not be accepted. - Введено существующее название группы. -Изменения приняты не будут. - - - - Unacceptable trainee name has been entered. -The changes will not be accepted. - Введено неприемлемое имя обучаемого. -Изменения приняты не будут. - - - - Unacceptable trainee login has been entered. -The changes will not be accepted. - Введен неприемлемый логин обучаемого. -Изменения приняты не будут. - - - - Unacceptable trainee password has been entered. -The changes will not be accepted. - Был введен неприемлемый пароль обучаемого. -Изменения приняты не будут. - - - - An existing instructor or trainee login has been entered. -The changes will not be accepted. - Введен существующий логин инструктора или обучаемого. -Изменения не будут приняты. - - - - FIMtasksWidget - - - Form - Форма - - - - Assign - Назначить - - - - Check - Проверить - - - - Delete - Удалить - - - - - ID - ID - - - - - Status - Статус - - - - - Procedure FIM - Процедура FIM - - - - The deletion will be irrevocable. -Delete it anyway? - Удаление будет безвозвратным. -Всё равно удалить? - - - - Assign this task? - Назначить эту задачу? - - - - InstructorsAndTraineesWidget - - - Form - Форма - - - - Connection - Подключение - - - - Authorization - Авторизация - - - - Trainee editor - Редактор обучаемых - - - - Instructor editor - Редактор инструкторов - - - - Tasks - Задачи - - - - Personal card - Персональная карта - - - - Chat - Чат - - - - Server: - Сервер: - - - - Version of materials: - Версия материалов: - - - - ... - - - - - Instructor: - Инструктор: - - - - Settings - Настройки - - - - Trainees - Обучаемые - - - - Instructors - Инструкторы - - - - - - none - нет - - - - The file could not be opened - Файл не может быть открыт - - - - - Instructor authorization. - Авторизация инструктора. - - - - Instructor deauthorization - Деавторизация инструктора - - - - Error! - Ошибка! - - - - Server blocked! - Сервер заблокирован! - - - - Database error! - Ошибка базы данных! - - - - The user is archived! - Пользователь является архивным! - - - - The user is already logged in! - Пользователь уже в сети! - - - - Login or password error! - Ошибка логина или пароля! - - - - The server is not available! - Сервер недоступен! - - - - Connection attempt - Попытка соединения - - - - connected - подключен - - - - not connected - не подключен - - - - Server settings have been changed. -Please reconnect to the server. - Настройки сервера были изменены. -Пожалуйста, переподключитесь к серверу. - - - - Instructor authorization - Авторизация инструктора - - - - InstructorsView - - - - yes - да - - - - - no - нет - - - - ListSubProc - - - Form - Форма - - - - Title - Заголовок - - - - - DM code - DM код - - - - Select the sub-procedures that are allowed to be run by the trainee in automatic mode: - Выберите подпроцедуры, разрешенные для запуска обучаемым в автоматическом режиме: - - - - Assign - Назначить - - - - Subprocedure - Подпроцедура - - - - Canplay - Режимы - - - - MainWindow - - - Maintenance procedures simulator RRJ-95NEW-100 Instructor's workstation - АРМ инструктора Тренажёра процедур технического обслуживания RRJ-95NEW-100 - - - - - Server MPS - Сервер ТПТО - - - - Expand window - Развернуть окно - - - - Minimize window - Свернуть окно - - - - Exit - Выход - - - - Starting the server... - Запуск сервера... - - - - Maintenance procedures simulator RRJ-95NEW-100 Server - Сервер Тренажёра процедур технического обслуживания RRJ-95NEW-100 - - - - MessangerWidget - - - Form - Форма - - - - - TextLabel - - - - - Send - Отправить - - - - Trainee - Обучаемый - - - - Instructor - Инструктор - - - - MsgWidget - - - Form - Форма - - - - TextLabel - - - - - Name - Имя - - - - --:-- - --:-- - - - - PersonalCardTrainee - - - Form - Форма - - - - Trainee - Обучаемый - - - - Name - Имя - - - - - - - - 0 - - - - - Assigned FIM - Назначенные FIM - - - - Assigned AMM - Назначенные AMM - - - - Last login - Последний вход - - - - Time spent on the simulator - Время работы на тренажере - - - - Last exit - Последний выход - - - - Chat - Чат - - - - Tasks - Задачи - - - - AMM - - - - - - List - Перечень - - - - - Attached - Назначенные - - - - FIM - - - - - RecognizeSystem - - - The file could not be opened - Файл не может быть открыт - - - - You cannot delete the basic version! - Вы не можете удалить базовую версию! - - - - You cannot delete the active version - Вы не можете удалить активную версию - - - - This name already exists - Это имя уже существует - - - - ServerLMSWidget - - - Form - Форма - - - - Start - Запустить - - - - Stop - Остановить - - - - Settings - Настройки - - - - Clients - Клиенты - - - - Logger - Логгер - - - - Server: - Сервер: - - - - - - ... - - - - - Data base: - База данных: - - - - Version of materials: - Версия материалов: - - - - Authorization - Авторизация - - - - Error PostgreSQL! - Ошибка PostgreSQL! - - - - Server is started! - Сервер запущен! - - - - Server is stoped! - Сервер остановлен! - - - - - Error! - Ошибка! - - - - Settings file could not be opened: - Файл настроек не открыт: - - - - - Warning! - Внимание! - - - - Database settings have been changed. -The server will be restarted. - Настройки Базы Данных были изменены. -Сервер будет перезапущен. - - - - The file could not be opened - Файл не может быть открыт - - - - - Database connection error! - Ошибка подключения Базы данных! - - - - Database connection OK! - База данных подключена! - - - - started - запущен - - - - stoped - остановлен - - - - connected - подключен - - - - not connected - не подключен - - - - No Client files found! - Файлы клиента не найдены! - - - - * check Application for the presence of a folder with a build -* check SharedData for a folder with the base version and the name base - * проверьте Application на наличие папки со сборкой -* проверьте SharedData на наличие папки с базовой версией и именем base - - - - SpecMsgBox - - - - Attention! - Внимание! - - - - - Close - Закрыть - - - - Error! - Ошибка! - - - - Information - Информация - - - - Ok - Хорошо - - - - SpecialMessageBox - - - Dialog - - - - - text - - - - - Yes - Да - - - - No - Нет - - - - SubProcItemWidget - - - Form - Форма - - - - Subprocedures allowed to be run by the trainee in automatic mode: - Подпроцедуры, которые разрешено выполнять обучаемому в автоматическом режиме: - - - - TaskAMMFIMTreePreparation - - - - - completed - выполнена - - - - - - failed - неверно - - - - - - checkup - на проверке - - - - - - new - новая - - - - TraineesView - - - yes - да - - - - no - нет - - - - ViewerInstructors - - - Instructors - Инструкторы - - - - Editor of Instructors - Редактор инструкторов - - - - ViewerTasksCommon - - - Form - Форма - - - - AMM - - - - - FIM - - - - - ViewerTrainees - - - Trainees - Обучаемые - - - - Editor of Trainees - Редактор обучаемых - - - - WaitAnimationWidget - - - Form - Форма - - - diff --git a/translations/LibInstructorsAndTrainees_ru_RU.qm b/translations/LibInstructorsAndTrainees_ru_RU.qm deleted file mode 100644 index 1d4405d5b19dc66ea09f2a5b067c38c69f5732b7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23761 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

8NPI2vW#N2R(5pj)7 zAG3mC7iOw@nt^=QS&j@g1}WVzk>;Uysf_BVE=oKA=YZMZg@G?HJ{>+YDS- z+kjXpzX13r;zcmv$}E#WHicD^ip*q_(fd-QNubUPC#AQmc&-sJQ{g@5#8^owqOr)s zNm2DrSeGu(4V)I=Bdt8O0FnK2(vB8aYghcj$J`b!6Z#L<#C_7bZmh{^)x71X=1Uue zJmVy;eZp<+v-;832W;Xm!}{qIhAq-=zk<2(}IkxenI33l6JpKYqs<5d<;C2hk;ZV z$rOuDo*=BYtU!b3p9d>*?U++s*DmFo&KId+jt|jD;x|CX`Q#4K*ZVf$yRA{%6rKNZ zNphYREXYBct?>2#L97|XI`L;|P6TUiai19=>2a&vBMP^iP_4{CAHbH`>DHY>Ld@ z99g3;!0ma4%T7!C!;h7nsGhd=CcxgY*YAbRBfm_s8)Yffm`AO|91WnuoL^*qb8;3u?6~0fliE0~_c|OK4=S6nxvltXR=J!6+bO>}IcvA4w3*F*zp0JW z`tt>|`STj5mCq+Lum-bES&hDWSIc%uo^U+d8h=nUud)Q-hAB1^u|gyt%0qI#4B~?# z-B`ib7)xcvOlqopJ zl|}!;L+P>rwRh2xK<6HPqJQCBB%~WMV2l2i)2eIHzum?52wQW!%0om5{YCSF+}D2%byCa;!rSE-29 z;X@~^W*vUiq9F~qP=Qi04n&P;axSVudSCF`fgvMRwhIQuDdQT{R*Xg)EQ4(4dU>== zmohS?^(~eqRddsnx_>5)yO)t7mHv7p@YD)NzC!P%!fe(iAF^ueDLIhrBrDF%pk&>+ z>`6v-Bd~0Sx7nnZ1}FsXl`Eh#F{{y~h=h*Khwub^l5H+)DPWtv9$YY$ZFe}yIHd7u zH6Kvpw0dktBP*BC(9=MMn`#1P$5D|gNc}h_tF3Ml&1BSvR+NW??<%@4t*~rcF9Mn^ z93I*ARh$5|;dXlqwu5pyxFY;CPHXU)Hk8kQ>C#*mHXr}DG)<*|bfPAndFP2#*Z=}i7n4OAD;TiN4M~>>pGB{2ua{8V;(~rWyqtOX# z&RjA#Ps+%9cUy>AWFtnuLRcgXb8DRqPVlWJbuNay4rbThaBtph_vr|WwBW0d0J0h7 z>vYuSMaF>&X=F~YiME!b`b=jKT8h!pr6q7-FIl{H+U*d;&#=(A#VYLw_ZbxyZP)&x z!b2%ECqZ;4rizs9eG*g}lig$07N=@lSXC%$G?rd=l$)g-A1yM;t<1gopkf>Iz5OG1 zNWoWspR-bHqUAYa2F>8z=4M z5oKJ9$xg%Ek+uZbeq$o{VHpc#TS@cm$$Blxaj;)B;cplHH1yQd)YR3~MBJ|!PEJ`^ zl9!2D&$?bkvp$z+sjiQev=C(rGJ&q`#;grrnf|gH=SP8q4)93v=-`B2Heo1U*86h; z{3;?S!2B`VD@i6sy^!QeW4$wt#$NeCsZ!J)-e7BF1V@d0WsIy*AIL?#twCc z1ZL2Aai&Kw6Q*Z(;aHos8z$)OWAX$n6ROK*XBl)l&a*4eK|}W02;XqymwE6>wb=k~ z-a@e+9q1afuY$6t)4#y zGWmRgtFD{@Qmso diff --git a/translations/RRJServer_ru_RU.qm b/translations/RRJServer_ru_RU.qm index 2323d41295af26099cc82230ff22c3817cfb8df6..9136a27f5060b0a8e1a74302699886f1f87cfd14 100644 GIT binary patch delta 2841 zcmX}u2~ZSQ8VB(I%yiH6O!v%i$e|pHVo(klh@f(60J%gFG%%p7fWsxCLB+EeR9w-Z zMka#s1Xl%tMGdJkVxowOQYuClO;&@{>MGeHaV5qzx`En{ywp-P_3L@luiy8+_r2GY zy^=lqS@y{&vm*clU_1(NJ%G%@6w8^BX90d5;MK`2P?70CehZ+Y_9Tv3cn|Q?(X;4p zMCmY7_Z@ST7t@}`82Np6F4LT;rY|lOzzyc|J3w47kgjJg{}otp9Z>VYpRNEt3T8n7 zu$tO6)0l-dfSG|!RpWv28ojqc3!AZGSGWeT3ezr^>9CS%Ok^&K1z++h;OfqFe+Pd5HNbX|X}^!@Sj8M&$8=3*PTT?h zkU0`arG|!slwyDIO-q2BQt(|JfX#WRK8&K2zt5b%3aaK`fPySID5`)DyI&b?xWffG3O;^LSK!!=IVBecsCLg zJgLaGAlbNyGO`)Tiz!9o6Q;I^Y3Ivy2u9k@2|z**bJ0emHBcsUB9PWTkuoxjbdg-J z72Bi30IPG@`;#l+zZ%V9wCs^M()#I z4$N<1=2^)T5@_5>oo0FS1wSCmN&c=iUvBIi|>HE1;COE3)Tg z0D)^2IW;t}Rg|J=b{K7;^@@%*TCy4OivE<3fC<|aFL%<8;C&QBGhYMa>pA7QG+=Zu z=bKYc?Z0t>bzcA;A>8uR4ZuXR4_92)LwmS`E3PHgH<*PISJF=resG@KdGs-W_m~kS z%%pVg(`mD4fVbTK*smziDO|&sC&+xRQEm$??&F%h>ATE}>6yrkjO9*mO`(ADndbaQ z-1$|{09`hBQ9}nqv?q5%P7w<0xvpv&ASQ;HAIkN1Z3mQB`GD$SKpV&h^iq*7<@oq^ z3Vgl?Gj|VfGDOh(>|5ym@2d^YNVokE&OtVCL$yW{}~alnMs{$vvxOav)HfIR_#ZC z_Y2jrwg-U8KdbYehS5p2QeE_f?hooxZ!7Mii%ZNTi~8J;8Nk#+^_MrAfU#G}i)4JD?R0e56eBM%^S(^0crNFchP0rzRDz259lDJ`DR-~qE zAdJqD3eBI_w$oCyF>`%2drRDa?Dd+4EtENH^B7ITfvZ#$Mos7I$3RB3Xmgj&@W_Xv zO&^`%vadwPhcv*PP|@>FG##n^V!-CHph%bzXT{W|8B`;~qH*kH>i?~1I#NUdtHcs- z3Os1NSiw=s9lM#SZOp}!#hpVl=~X@XjCkY>?Z;6+FjK9?`UAA~X*J?0(=1?Kh1l|v zPBdK(JPPJcGvfUMLQ))d8NnBt0nAwvm$k8$Y^VEd|Y?B@JI7MLVCMKz@`G z?~uNp%ph+mV^1AT_#3I3^P~MAe_uM(o=7i~nM_l%bU0-S;1n*M&ZGz@@zU9aXK6b= zkuJ!ns$DNLCw4Lub}&tQq{}a^P|9Pau38FgtU-FJe*pvpYNb!cQ!&>vN2O@(Kcj#Q zo+Hx!4>oE&{y}H)xbfQHYKqLpLtFlXiT=yU)!r+0rL($P`>#AQU{ELPxe2(*b;`%| zwoLZW1xFpDwUu-+>ts|r`*jDqhk=kZ-I?x{RD^on`EP9Kh<4K5K1uhRZtIg&^xBRK z(pQbA14x}k`qPE8k~O66Vj9=!JF;m1TOZNi{eCN@ZiBwR*@}wIDIZwj)*7c-!pSyS znsg?&P|kpHTsSwA3*-E`05XURfQLW}1SNd}EI#@vsytKnvNbC`EPHM3S{rq#a)mwT zVi~e=l|@*bZCzS9>mpfeoy|?&((L$I>&DS*6fy_Pp!0O=F`OIs0cW631UHMu8ELgu ziOH)oSFc&ss&P4B)!OId5!#xt?3mp0F3ZKTuh_2DShP!FaW4*^IE{MxalsT>5I6mg g2n}55|6@}YuE<_y*;DLfDNmnjnL}M0iytWe2L+$+!2kdN delta 2842 zcmX}u3se(V8VB(IB$H$^lZ0n@sDKD40t#9|QA9xyM0p5SVn8ZlcnML#s;gasid$Ey zR-;g@#YbhO!WJ=ZtF@(w;A2H8N_T5jJnFixb&FVWZI6}i2Y1hM4*V{Ynfv(W`|i!d zpSbep-22X!5CHVMXbix21Dus9)-q$l0Yx$pn8Yj;$qb;N2~g4X`IXF~Z-EIq>Wh8` zm71B_Uzkqom@eMT*r!a(l3l=T51K#S+WCq+| z#t6)KJu`J9Gd+)KXkZ#!nK?I^g*%yM-~ZVQMaWSgV=okw2LO+$gIWOJI4I&nX@ysr z(gdcHJ=6IV)8#9s;X7tV7ZhvuP)DnnzMG)0 zs0Y$6BI4WW^eV3+;uc+Bv;lLTP`|UPk>LL^AVwk~Y%k@G4)gjb5_aQ|WT|SQfo>rs zF@TaxMB1WvC?aa4Ev67ja;9b{)A=2y%T^d((?kSc7`OQViJ8nyIgE7_k=z6rTl@ge zxyX>n1rpwkiv;YGuy=RwIdB&{{y~um;;!6$Mk~qZ?!2ICkWFKTfH^IQ8FNpjsQr}| zXpxO;sh}hcW9B+@H#`z9^*7 zpO@#%%K}1wljl|s4t!f~o*hXm;^eJg(5strL;fgz6)@_$yl>lND&b7|>zOYA?|xqS zxsmz_;Dd9IQ3(g~VTVrvqb+TGv0*)h{4ab-c{iXu#g`l+g~!YyJATb0nqYJkzwKZT z758Xn^Z;}I1AfosC>n4!|G}IuX@CuU-RWBLGyb^D30R!RHw4lDTp)Aocg$H`eBgo`)c~MLSA^c7Bwi*d=C;s+QW}|g-3n7kEajGQNDG`Fu?sFgDk}5001jn}0|)3q zkDH3)+v(lQl+2h0#f3UriR_u;dYvb*G*|JgI*XF)j8Z0F0LV>B)mLdW@CBxR6w}p@ zIjmdh^a)LDMu&2u>jS{esEoU|l=4l zmA{s@U!A9FY*`r)e??VNZRw#a7EFe6S0yW1(5%m!iiMRItr zu$QBp$g2_#3X^DJDyCCE({rimq625_dUgJTNZQd#)#m$j`_%dB zEhU$!@ijAbxcc*dX8~{Yt50952fQ4}X4;r+>Q>_pN^&0yYb-gf?g|T}op6WxiN=RQ zIi6X(UH#<9Au7iP=JGbtEqo;Hcs0z-pP0GlME|?=+-QF>xcxb>E#EgHI0by-o?nf1Ly8bM#Nf-cTS~|q?Cy{gp*o%Ky+d^d$&CClEcdemh$%z;1 zHc{y8o5Z^PZIm0C;)NGIRM(x7V;Al9F-s-KyR_GHUrKJ@(*SeZrGU;js)`j-=teJ! zL^g9)xMWzCMY%E{E%G`CWW6PsYRpvsemkW#K{WHJoV1mvkh=|M8lst*P13g4Gbz+l zq?!{{md>Hf^nKE?{q*jQUeYHf%7tWm=|*BZ^|M#%q3))d2x|jmygkK+-PF z)Oqv@BX4WsM$}TIR%=o^Yw7$Se{!gS@Kc(sorh_KH#Ai|Jur8%=0FR5DVcYPX)b;_ED|NKAKtZN#@jh+A;TNYxY{9omNE?b7|(b<<*xP(=3V;@5Gs@{zg^uMGgx?(0rmTM5Kg z>&|@RNM}O6?&_Zs=mAr=U8;)C^Es_{yGPN+BWz|4Ph%SN%tf$kT}pND5Ng+TdoxW` zX7{MUo|5b10$_!&wbRAL7B437wj4Wy%=WXxN^Y3QJMy9YOny2aDbP!Sl71Db1$p_a zt>>KewtS~6im}eTD<8s79J()_{?fhh{{P+LtQEy8i%hFc%e<|9?ylB1-1k{aOMR^U z?oPH2_qXNTWNWm?6kD6e2K%Aw?Lls~8RN%Hw|1pWwECI#w%p}MWJ8~vF49|#IUY7Y h^AWjKC>^F2(z8p<1?D_&tGC(R+P*5v7GL6_`Y(;t0rvm^ diff --git a/translations/RRJServer_ru_RU.ts b/translations/RRJServer_ru_RU.ts index 9a642e2..e05356f 100644 --- a/translations/RRJServer_ru_RU.ts +++ b/translations/RRJServer_ru_RU.ts @@ -34,56 +34,56 @@ Удалить - + actual актуально - + update required требуется обновление - - + + DM code DM код - - + + ID ID - - + + Procedure AMM Процедура AMM - - + + Canplay Режимы - - + + Status Статус - + The deletion will be irrevocable. Delete it anyway? Удаление будет безвозвратным. Всё равно удалить? - - + + Assign this task? Назначить эту задачу? @@ -109,73 +109,73 @@ Delete it anyway? Задача - + TextLabel - + Name Имя - + DM Code - + Completion Report Отчет о выполнении - + + Checkup + На проверке + + + Failed Неверно - - Right - Верно - - - + Completed Выполнена - + New Новая - + viewed Просмотрено - - + + completed выполнена - + failed неверно - + checkup на проверке - + new новая - + Change task status? The status will be set: 'failed' @@ -184,7 +184,8 @@ The status will be set: 'неверно' - + + Change task status? The status will be set: 'new' @@ -193,8 +194,17 @@ The status will be set: 'новая' - - + + Change task status? +The status will be set: +'checkup' + Изменить статус задачи? +Будет установлен статус: +'на проверке' + + + + Change task status? The status will be set: 'completed' @@ -328,56 +338,44 @@ The status will be set: Восстановить - + Installed Установлен - + Not installed Не установлен - - + + Exist Существует - - + + Not exist Не существует - - - - Error! - Ошибка! - - - + Install PostgreSQL. Установите PostgreSQL. - + Failed to create user! Ошибка создания пользователя! - + Failed to create Database! Ошибка создания Базы данных! - - Completed! - Завершено! - - - + The database has been successfully restored! База данных успешно восстановлена! @@ -385,9 +383,14 @@ The status will be set: DialogChekerTask - + Check Task - Проверка задачи + Проверка Задачи + + + + Status Task + Статус Задачи @@ -722,52 +725,45 @@ The status will be set: Обновить Docs - - - - Error! - Ошибка! - - - + Driver PostgreSQL is not installed! Драйвер PostgreSQL не установлен! - + Superuser PostgreSQL authorization Авторизация суперпользователя PostgreSQL - - + + Error connecting to PostgreSQL! Ошибка соединения с PostgreSQL! - - + + Possible reasons: Возможные причины: - - + + *superuser PostgreSQL login or password is incorrect; *логин или пароль суперпользователя PostgreSQL некорректен; - + *Port is incorrect. *Порт некорректен. - + *Port is incorrect; *Порт некорректен; - + *file 'pg_hba.conf' does not contain an entry for the IP address: *файл 'pg_hba.conf не содержит записи доступа для IP адреса: @@ -1109,32 +1105,32 @@ The changes will not be accepted. Удалить - - + + ID ID - - + + Status Статус - - + + Procedure FIM Процедура FIM - + The deletion will be irrevocable. Delete it anyway? Удаление будет безвозвратным. Всё равно удалить? - + Assign this task? Назначить эту задачу? @@ -1331,7 +1327,7 @@ Please reconnect to the server. - + DM code DM код @@ -1346,12 +1342,12 @@ Please reconnect to the server. Назначить - + Subprocedure Подпроцедура - + Canplay Режимы @@ -1364,28 +1360,28 @@ Please reconnect to the server. АРМ инструктора Тренажёра процедур технического обслуживания RRJ-95NEW-100 - - + + Server MPS Сервер ТПТО - + Expand window Развернуть окно - + Minimize window Свернуть окно - + Exit Выход - + Starting the server... Запуск сервера... @@ -1414,12 +1410,12 @@ Please reconnect to the server. Отправить - + Trainee Обучаемый - + Instructor Инструктор @@ -1609,92 +1605,81 @@ Please reconnect to the server. Версия материалов: - - Authorization - Авторизация - - - + Error PostgreSQL! Ошибка PostgreSQL! - + Server is started! Сервер запущен! - + Server is stoped! Сервер остановлен! - - - Error! - Ошибка! - - - + Settings file could not be opened: Файл настроек не открыт: - - - Warning! - Внимание! - - - + Database settings have been changed. The server will be restarted. Настройки Базы Данных были изменены. Сервер будет перезапущен. - + The file could not be opened Файл не может быть открыт - - + + Database connection error! Ошибка подключения Базы данных! - + Database connection OK! База данных подключена! - + + started запущен - + + locked + заблокирован + + + stoped остановлен - + connected подключен - + not connected не подключен - + No Client files found! Файлы клиента не найдены! - + * check Application for the presence of a folder with a build * check SharedData for a folder with the base version and the name base * проверьте Application на наличие папки со сборкой