This commit is contained in:
2026-01-12 15:27:12 +03:00
parent 6d40c45135
commit 36527a9cb5
44 changed files with 148 additions and 146 deletions

View File

@@ -0,0 +1,80 @@
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QTranslator>
#include <QEvent>
#include <QCloseEvent>
#include <QSystemTrayIcon>
#include <QAction>
#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