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 0000000..74c2897 Binary files /dev/null and b/ServerLMS/resources/icons/circleGray.png differ 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);