#ifndef MAINWINDOW_H #define MAINWINDOW_H #include #include #include #include #include #include #include "serverlmswidget.h" QT_BEGIN_NAMESPACE namespace Ui { class MainWindow; } QT_END_NAMESPACE class MainWindow : public QMainWindow { Q_OBJECT public: MainWindow(QWidget *parent = nullptr); ~MainWindow(); protected: /* Метод получения событий в главном окне приложения * В нём будет производиться проверка события смены перевода приложения */ void changeEvent(QEvent * event) override; /* Виртуальная функция родительского класса в нашем классе * переопределяется для изменения поведения приложения, * чтобы оно сворачивалось в трей, когда мы этого хотим */ void closeEvent(QCloseEvent * event) override; public slots: //Слот обработки смены языка void slot_LanguageChanged(QString language); //Слот нажатия на иконку приложения в трее void slot_TrayIconActivated(QSystemTrayIcon::ActivationReason reason); //Слот нажатия на сообщение void slot_TrayMessageClicked(); //Слоты нажатия на пункты меню void slot_TrayMenu_ShowWindow(); void slot_TrayMenu_HideWindow(); void slot_TrayMenu_Exit(); //Слот вывода сообщения из трея 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(); void updateTrayTitles(); private: Ui::MainWindow *ui; ServerLMSWidget* serverLMSWidget; QTranslator qtLanguageTranslator; //Трей QSystemTrayIcon* trayIcon; QMenu * trayMenu; QAction * action_ShowWindow; QAction * action_HideWindow; QAction * action_Exit; }; #endif // MAINWINDOW_H