From 39c11897f823a6124524c542e3f2f232881c5e21 Mon Sep 17 00:00:00 2001 From: krivoshein Date: Mon, 27 Oct 2025 18:46:50 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A0=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 --- ServerLMS/ServerLMS.qrc | 1 + ServerLMS/resources/icons/circleGray.png | Bin 0 -> 2185 bytes ServerLMS/serverlmswidget.cpp | 25 +++++++++--- ServerLMS/serverlmswidget.h | 5 +++ ServerLMS/serverlmswidget.ui | 22 ++++++++++ TrayServerLMS/mainwindow.cpp | 49 +++++++++++++++-------- TrayServerLMS/mainwindow.h | 4 ++ 7 files changed, 83 insertions(+), 23 deletions(-) create mode 100644 ServerLMS/resources/icons/circleGray.png diff --git a/ServerLMS/ServerLMS.qrc b/ServerLMS/ServerLMS.qrc index 041e467..29a560f 100644 --- a/ServerLMS/ServerLMS.qrc +++ b/ServerLMS/ServerLMS.qrc @@ -15,5 +15,6 @@ resources/icons/rocket.png resources/icons/stop.png resources/icons/settings.png + resources/icons/circleGray.png diff --git a/ServerLMS/resources/icons/circleGray.png b/ServerLMS/resources/icons/circleGray.png new file mode 100644 index 0000000000000000000000000000000000000000..74c2897a83c5186beee80cd7e70aad1170ca6ede GIT binary patch literal 2185 zcmbVO4Nw$S9A83|&@clX5wmp_q3mw=?%-fo4#GQvQw~l*L&aooce&fRyIpq|xr0=2 z)U@ftM#h}*GquL=DWU|FFh!|U2u#p~ic}C4{2CEV=^Y<8*4URj^Y*=c@ArQH@Bi!? zV`AJhKI42K2zo{zuS*6q>>A!f!CTDDy#uDF`S`ga1bH;NhDT5OCjta{jb~HSq%=bU zL2))YNpmJf?y&Iy4MCC74xXg47zs8pX4bAjI?KOCV3yV(uZ0;f1FvN)Y<#Z3q~s>1 zQn^_aP9xD#aHN9(1U5z@VTa9X7YT<3>Ek89+O>@$a34g<(jYM|fpD6^2x~ckfy3l# z8KnpfgTryTLahqL@t0vGriehX2vnhxDbz$LMktl=z=Hs30-Z@D>s}p@1->+hMUr>| zMRRg;9gMrZ7MTxXij9#ZffPdsHOB1v@RH-Jz zaT%jFVKRyerDP@y*bMSbrOc!;bp);)yszV^Y*!Wx-lzZP{Um_}RY+Q&n8#I{uJj?| zSrG)*IZ!<*%%Xvnm4*8!Wn3~aMc?16sT918VIr3)<&Xjs zV+P*(FR6zD{ZUuh_M3wK)ylrJM@oDU4*G^`>26ry!`<>2JLq!)XlRz;2l)`>>8IDl zq^7N``tVd%`s}gCm(}ETB-Di-N%%d@f7`g)haTs93To~CI}W~dg!yQH*|jan{H*k` zbsa;RR*oq%`pmQJ&YQYn@x;;o2Be#h>TsrCJe@FONE&(TF4GjI5`eLtcQU$^Ic2xOwR2TG&vWmr_po`a@$ z_BPvVe(KKsD&r}bc>d%1fJyh;Yd3XOtLHBIahLjXVGk6vHszzZTzeq|B_}jYyWaiV z{P|0u_mV0mR|WZQlTH1waM!_u^_D}8p3iRdY93db7c{ez-dU{4Z){%bS2WB2=O}%~ zx-Y-{xy>WO)V8Im{-S^J5@xK;|trz{Mz&D{H%Q=*WNy=?W%E>3|kvKrQ+(G z*6P_#M@wUu20HruFU@UDQ`eOLGHprzzEcZ}zpv6>@$^R4pRxCz^^AX|@bzzAf1%`X z)x1@KP0??77%dx@-<%V&;Imif57U<=7Z;W69`n@JFqQu5O8xozl!jRs&U(N7L;jAR z-bI===+_)?zSKBT@Q#DhEBE?tf+iqx9drJAez`gDTvHP5=NRe0Ml`g~eQ3ONLCW5D z|D9naEej8oN20w8p>yF!xWEa$_4g`E;G@SKZQG~6JT_V=*+j(Wov>+k`wjQob~}I@ zQPx^n6|#7pd}88g#))4$P;hyxBgXIM=sM literal 0 HcmV?d00001 diff --git a/ServerLMS/serverlmswidget.cpp b/ServerLMS/serverlmswidget.cpp index 1782844..4d517fd 100644 --- a/ServerLMS/serverlmswidget.cpp +++ b/ServerLMS/serverlmswidget.cpp @@ -40,11 +40,7 @@ ServerLMSWidget::ServerLMSWidget(QWidget *parent) : updateMyStyleSheet(); - setLanguageInterfase(); - - startInitialization(); - - tryConnectionToDB(); + setLanguageInterfase(); } ServerLMSWidget::~ServerLMSWidget() @@ -95,10 +91,12 @@ void ServerLMSWidget::changeEvent(QEvent *event) dbSettings.dbHostName, QString::number(dbSettings.dbPort)); ui->lblDBsettings->setText(strDBsettings); + ui->lblDBisConnected->setPixmap(QPixmap(QStringLiteral(":/resources/icons/circleGreen.png"))); } else { ui->lblDBsettings->setText(""); + ui->lblDBisConnected->setPixmap(QPixmap(QStringLiteral(":/resources/icons/circleGray.png"))); } } } @@ -126,17 +124,25 @@ void ServerLMSWidget::slot_AddMessageToLog(QString message) ui->loggerTextField->appendPlainText(message); } +void ServerLMSWidget::start() +{ + startInitialization(); + tryConnectionToDB(); +} + 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!")); } else { server->unBlockAutorization(); ui->lblBlockAuth->setPixmap(QPixmap(QStringLiteral(":/resources/icons/open.png"))); + //emit signal_Tray_ShowMessage(tr("Authorization unblocked!")); } } @@ -197,6 +203,7 @@ void ServerLMSWidget::on_btnSettings_clicked() providerDBLMS->DisConnectionFromDB(); ui->lblDBsettings->setText(""); + ui->lblDBisConnected->setPixmap(QPixmap(QStringLiteral(":/resources/icons/circleGreen.png"))); QMessageBox::warning(this, tr("Warning!"), tr("Database settings have been changed.\nThe server will be restarted.")); @@ -315,9 +322,12 @@ void ServerLMSWidget::tryConnectionToDB() if(! providerDBLMS->ConnectionToDB()) { ui->lblDBsettings->setText(""); + ui->lblDBisConnected->setPixmap(QPixmap(QStringLiteral(":/resources/icons/circleGray.png"))); ui->btnStopServer->setEnabled(false); ui->btnStartServer->setEnabled(false); - QMessageBox::critical(this, tr("Error!"), tr("Database connection error")); + //QMessageBox::critical(this, tr("Error!"), tr("Database connection error!")); + + emit signal_Tray_ShowMessage(tr("Database connection error!")); } else { @@ -330,6 +340,9 @@ void ServerLMSWidget::tryConnectionToDB() dbSettings.dbHostName, QString::number(dbSettings.dbPort)); ui->lblDBsettings->setText(strDBsettings); + ui->lblDBisConnected->setPixmap(QPixmap(QStringLiteral(":/resources/icons/circleGreen.png"))); + + emit signal_Tray_ShowMessage(tr("Database connection OK!") + "\n" + strDBsettings); on_btnStartServer_clicked(); } diff --git a/ServerLMS/serverlmswidget.h b/ServerLMS/serverlmswidget.h index e7ea9af..5ee4907 100644 --- a/ServerLMS/serverlmswidget.h +++ b/ServerLMS/serverlmswidget.h @@ -62,6 +62,9 @@ signals: //сигнал смены языка void signal_LanguageChanged(QString language); + //сигнал вывода сообщения из трея + void signal_Tray_ShowMessage(QString textMsg); + void sigRecognize(); void sigCalculateFullHash(); void sigUpdateController(CommonClientHandler* commonClientHandler,DataParser *dataParser,AssetsManager *assetManager); @@ -101,6 +104,8 @@ public: void removeClient(int socketId); + void start(); + private slots: void on_btnStartServer_clicked(); void on_btnStopServer_clicked(); diff --git a/ServerLMS/serverlmswidget.ui b/ServerLMS/serverlmswidget.ui index 08819e2..a807a59 100644 --- a/ServerLMS/serverlmswidget.ui +++ b/ServerLMS/serverlmswidget.ui @@ -223,6 +223,28 @@ + + + + + 32 + 32 + + + + + 32 + 32 + + + + + + + :/resources/icons/circleGray.png + + + diff --git a/TrayServerLMS/mainwindow.cpp b/TrayServerLMS/mainwindow.cpp index f0e4757..dd6e1ce 100644 --- a/TrayServerLMS/mainwindow.cpp +++ b/TrayServerLMS/mainwindow.cpp @@ -1,5 +1,6 @@ #include #include +#include #include "mainwindow.h" #include "./ui_mainwindow.h" @@ -15,21 +16,6 @@ MainWindow::MainWindow(QWidget *parent) : { ui->setupUi(this); - serverLMSWidget = new ServerLMSWidget(this); - - ui->verticalLayout_Main->addWidget(serverLMSWidget); - - connect(serverLMSWidget, &ServerLMSWidget::signal_LanguageChanged, this, &MainWindow::slot_LanguageChanged); - - qtLanguageTranslator.load(QString("translations/TrayServerLMS_") + serverLMSWidget->getLanguage(), "."); - qApp->installTranslator(&qtLanguageTranslator); - - //this->move(0, 0); - //this->showNormal(); - //this->showMaximized(); - - errorCheck(); - /* Инициализируем иконку трея, устанавливаем иконку, * а также задаем всплывающую подсказку * */ @@ -66,6 +52,28 @@ MainWindow::MainWindow(QWidget *parent) : connect(trayIcon, SIGNAL(activated(QSystemTrayIcon::ActivationReason)), this, SLOT(slot_IconActivated(QSystemTrayIcon::ActivationReason))); + + + serverLMSWidget = new ServerLMSWidget(this); + + ui->verticalLayout_Main->addWidget(serverLMSWidget); + + connect(serverLMSWidget, &ServerLMSWidget::signal_LanguageChanged, this, &MainWindow::slot_LanguageChanged); + connect(serverLMSWidget, &ServerLMSWidget::signal_Tray_ShowMessage, this, &MainWindow::slot_Tray_ShowMessage); + + serverLMSWidget->start(); + + qtLanguageTranslator.load(QString("translations/TrayServerLMS_") + serverLMSWidget->getLanguage(), "."); + qApp->installTranslator(&qtLanguageTranslator); + + //this->move(0, 0); + //this->showNormal(); + //this->showMaximized(); + + errorCheck(); + + //QThread::sleep(2); + slot_Menu_HideWindow(); } @@ -178,8 +186,7 @@ void MainWindow::slot_Menu_HideWindow() trayIcon->showMessage(tr("Server LMS"), tr("The application is minimized to the tray. " "To maximize the application window, click the application icon in the tray."), - icon, - 2000); + icon, 100); } void MainWindow::slot_Menu_Exit() @@ -188,6 +195,14 @@ void MainWindow::slot_Menu_Exit() this->close(); } +void MainWindow::slot_Tray_ShowMessage(QString textMsg) +{ + QSystemTrayIcon::MessageIcon icon = QSystemTrayIcon::MessageIcon(QSystemTrayIcon::Warning); + trayIcon->showMessage(tr("Server LMS"), + textMsg, + icon, 100); +} + void MainWindow::slot_LanguageChanged(QString language) { qtLanguageTranslator.load(QString(QStringLiteral("translations/TrayServerLMS_")) + language, QStringLiteral(".")); diff --git a/TrayServerLMS/mainwindow.h b/TrayServerLMS/mainwindow.h index 1bde9b8..b3e62cb 100644 --- a/TrayServerLMS/mainwindow.h +++ b/TrayServerLMS/mainwindow.h @@ -48,6 +48,10 @@ public slots: void slot_Menu_HideWindow(); void slot_Menu_Exit(); + //Слот вывода сообщения из трея + void slot_Tray_ShowMessage(QString textMsg); + + signals: //сигнал об изменении языка интерфейса void signal_LanguageChanged(QString language);