From 650b0525a381f111b1691a979659f67bc5157fe8 Mon Sep 17 00:00:00 2001 From: krivoshein Date: Wed, 12 Nov 2025 10:55:31 +0300 Subject: [PATCH] =?UTF-8?q?DocsUpdater=20=D0=B2=20=D0=BE=D1=82=D0=B4=D0=B5?= =?UTF-8?q?=D0=BB=D1=8C=D0=BD=D1=8B=D0=B9=20=D0=BF=D0=BE=D1=82=D0=BE=D0=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../settings/dialogsettings.ui | 10 +-- ServerLMS/ServerLMS.qrc | 1 + ServerLMS/Systems/docsupdater.cpp | 6 +- ServerLMS/Systems/docsupdater.h | 11 ++-- ServerLMS/resources/icons/exchange.png | Bin 0 -> 15624 bytes ServerLMS/serverlmswidget.cpp | 18 ++++- ServerLMS/serverlmswidget.h | 4 ++ ServerLMS/settings/dialogsettingstray.cpp | 6 ++ ServerLMS/settings/dialogsettingstray.h | 3 + ServerLMS/settings/dialogsettingstray.ui | 62 ++++++++++++++++-- 10 files changed, 103 insertions(+), 18 deletions(-) create mode 100644 ServerLMS/resources/icons/exchange.png diff --git a/InstructorsAndTrainees/settings/dialogsettings.ui b/InstructorsAndTrainees/settings/dialogsettings.ui index bb28e7e..1115f5c 100644 --- a/InstructorsAndTrainees/settings/dialogsettings.ui +++ b/InstructorsAndTrainees/settings/dialogsettings.ui @@ -26,7 +26,7 @@ Settings - + :/resources/icons/lms.png:/resources/icons/lms.png @@ -242,7 +242,7 @@ Save - + :/resources/icons/circleGreen.png:/resources/icons/circleGreen.png @@ -301,7 +301,7 @@ Version - + :/resources/icons/updateVersion.png:/resources/icons/updateVersion.png @@ -333,7 +333,7 @@ Style - + :/resources/icons/style.png:/resources/icons/style.png @@ -370,7 +370,7 @@ - + diff --git a/ServerLMS/ServerLMS.qrc b/ServerLMS/ServerLMS.qrc index 42b4a34..70fc525 100644 --- a/ServerLMS/ServerLMS.qrc +++ b/ServerLMS/ServerLMS.qrc @@ -19,5 +19,6 @@ resources/icons/checkDB.png resources/icons/editorDB.png resources/icons/procedure.png + resources/icons/exchange.png diff --git a/ServerLMS/Systems/docsupdater.cpp b/ServerLMS/Systems/docsupdater.cpp index 5b1e334..26befc6 100644 --- a/ServerLMS/Systems/docsupdater.cpp +++ b/ServerLMS/Systems/docsupdater.cpp @@ -3,9 +3,9 @@ #include "tools.h" -DocsUpdater::DocsUpdater(UpdateController* updateController, QWidget *parentWidget): +DocsUpdater::DocsUpdater(UpdateController* updateController, QObject *parent): + QObject(parent), updateController(updateController), - parentWidget(parentWidget), flagStop(false) { @@ -16,7 +16,7 @@ DocsUpdater::~DocsUpdater() } -bool DocsUpdater::update() +bool DocsUpdater::slot_update() { QMutexLocker locker(&mtxAccess); diff --git a/ServerLMS/Systems/docsupdater.h b/ServerLMS/Systems/docsupdater.h index 2ae0377..efa3074 100644 --- a/ServerLMS/Systems/docsupdater.h +++ b/ServerLMS/Systems/docsupdater.h @@ -1,17 +1,21 @@ #ifndef DOCSUPDATER_H #define DOCSUPDATER_H +#include #include "updatecontroller.h" #include "module.h" -class DocsUpdater +class DocsUpdater : public QObject { + Q_OBJECT + public: - DocsUpdater(UpdateController* updateController, QWidget *parentWidget); + DocsUpdater(UpdateController* updateController, QObject *parent = nullptr); ~DocsUpdater(); - bool update(); +public slots: + bool slot_update(); private: void domElementParserAMM(QDomElement element, Module* moduleParent); @@ -21,7 +25,6 @@ private: private: UpdateController* updateController; - QWidget *parentWidget; QMutex mtxAccess; bool flagStop; QList listAllModulesAMM; //? diff --git a/ServerLMS/resources/icons/exchange.png b/ServerLMS/resources/icons/exchange.png new file mode 100644 index 0000000000000000000000000000000000000000..52930680a9b091c70f0776c0ea2dab28663d5d2b GIT binary patch literal 15624 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

ZLbcJUGehfckT4f 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 V6$1_?b|LsfJYk?ysO@m`{{V;Q5-$J% literal 0 HcmV?d00001 diff --git a/ServerLMS/serverlmswidget.cpp b/ServerLMS/serverlmswidget.cpp index 4f951a8..2761921 100644 --- a/ServerLMS/serverlmswidget.cpp +++ b/ServerLMS/serverlmswidget.cpp @@ -59,6 +59,7 @@ ServerLMSWidget::~ServerLMSWidget() delete dataParser; delete processingSystem; delete updateController; + delete docsUpdater; delete assetsManager; delete chatSystem; @@ -114,6 +115,13 @@ void ServerLMSWidget::slot_ErrorPostgreSQL(QString text) QMessageBox::critical(this, tr("Error PostgreSQL!"),text); } +void ServerLMSWidget::slot_UpdateDocs() +{ + QApplication::setOverrideCursor(Qt::WaitCursor); + emit signal_DocsUpdaterUpdate(); + QApplication::restoreOverrideCursor(); +} + void ServerLMSWidget::start() { startInitialization(); @@ -190,6 +198,8 @@ void ServerLMSWidget::on_btnSettings_clicked() connect(&dlg, &DialogSettingsTray::signal_LanguageChanged, this, &ServerLMSWidget::slot_LanguageChanged); //connect(&dlg, &DialogSettingsTray::signal_UpdateStyleSheet, this, &ServerLMSWidget::slot_UpdateStyleSheet); + connect(&dlg, &DialogSettingsTray::signal_UpdateDocs, this, &ServerLMSWidget::slot_UpdateDocs); + switch( dlg.exec() ) { @@ -271,6 +281,8 @@ QString ServerLMSWidget::loadStyleSheet() void ServerLMSWidget::startInitialization() { + QApplication::setOverrideCursor(Qt::WaitCursor); + providerDBLMS = new ProviderDBLMS(this); connect(providerDBLMS, &ProviderDBLMS::signal_ErrorPostgreSQL, this, &ServerLMSWidget::slot_ErrorPostgreSQL); connect(providerDBLMS, &ProviderDBLMS::signal_BlockAutorization, this, &ServerLMSWidget::slot_BlockAutorization); @@ -315,7 +327,9 @@ void ServerLMSWidget::startInitialization() emit sigUpdateController(commonClientHandler,dataParser,assetsManager); docsUpdater = new DocsUpdater(updateController, this); - docsUpdater->update(); + connect(this, &ServerLMSWidget::signal_DocsUpdaterUpdate, docsUpdater, &DocsUpdater::slot_update,Qt::DirectConnection); + docsUpdater->moveToThread(updateThread); + slot_UpdateDocs(); ui->btnStopServer->setEnabled(false); ui->btnStartServer->setEnabled(true); @@ -323,6 +337,8 @@ void ServerLMSWidget::startInitialization() flStartInitialization = true; updateStateServer(); + + QApplication::restoreOverrideCursor(); } void ServerLMSWidget::tryConnectionToDB() diff --git a/ServerLMS/serverlmswidget.h b/ServerLMS/serverlmswidget.h index ad9dc97..151a7da 100644 --- a/ServerLMS/serverlmswidget.h +++ b/ServerLMS/serverlmswidget.h @@ -78,6 +78,8 @@ signals: void sigUpdateController(CommonClientHandler* commonClientHandler,DataParser *dataParser,AssetsManager *assetManager); QTcpSocket* sigGetSocket(); + void signal_DocsUpdaterUpdate(); + public slots: void slot_LanguageChanged(QString language); void slot_UpdateListClients(); @@ -86,6 +88,8 @@ public slots: void slot_ErrorPostgreSQL(QString text); + void slot_UpdateDocs(); + public: QString getLanguage() { diff --git a/ServerLMS/settings/dialogsettingstray.cpp b/ServerLMS/settings/dialogsettingstray.cpp index 6e5951c..93c636f 100644 --- a/ServerLMS/settings/dialogsettingstray.cpp +++ b/ServerLMS/settings/dialogsettingstray.cpp @@ -17,6 +17,7 @@ DialogSettingsTray::DialogSettingsTray(ProviderDBLMS* providerDBLMS, QWidget *pa ui->btnSave->setObjectName("btnSave"); ui->btnCheckDB->setObjectName("btnCheckDB"); + ui->btnUpdateDocs->setObjectName("btnUpdateDocs"); /* Создаем строку для регулярного выражения */ QString ipRange = "(?:[0-1]?[0-9]?[0-9]|2[0-4][0-9]|25[0-5])"; @@ -349,3 +350,8 @@ void DialogSettingsTray::on_btnCheckDB_clicked() return; } } + +void DialogSettingsTray::on_btnUpdateDocs_clicked() +{ + emit signal_UpdateDocs(); +} diff --git a/ServerLMS/settings/dialogsettingstray.h b/ServerLMS/settings/dialogsettingstray.h index 183579c..92d03b2 100644 --- a/ServerLMS/settings/dialogsettingstray.h +++ b/ServerLMS/settings/dialogsettingstray.h @@ -38,6 +38,7 @@ public: signals: //сигнал об изменении языка интерфейса void signal_LanguageChanged(QString language); + void signal_UpdateDocs(); private slots: void on_btnSave_clicked(); @@ -60,6 +61,8 @@ private slots: void on_checkLocalhost_stateChanged(int arg1); + void on_btnUpdateDocs_clicked(); + private: bool saveSettings(); diff --git a/ServerLMS/settings/dialogsettingstray.ui b/ServerLMS/settings/dialogsettingstray.ui index 068919b..83bf914 100644 --- a/ServerLMS/settings/dialogsettingstray.ui +++ b/ServerLMS/settings/dialogsettingstray.ui @@ -6,7 +6,7 @@ 0 0 - 450 + 550 400 @@ -245,7 +245,7 @@ Check&&Repare - + :/resources/icons/checkDB.png:/resources/icons/checkDB.png @@ -293,7 +293,7 @@ Save - + :/resources/icons/circleGreen.png:/resources/icons/circleGreen.png @@ -314,13 +314,65 @@ + + + + Additional + + + + + + + + + 80 + 58 + + + + Update Docs + + + + :/resources/icons/exchange.png:/resources/icons/exchange.png + + + + 32 + 32 + + + + Qt::ToolButtonTextUnderIcon + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + - - + +