mirror of
https://gitea.msk.dinamika-avia.ru/Constanta-Design/RRJServer.git
synced 2026-03-27 19:45:43 +03:00
Рефакт
This commit is contained in:
@@ -7,7 +7,11 @@ MainWindow::MainWindow(QWidget *parent) :
|
|||||||
QMainWindow(parent),
|
QMainWindow(parent),
|
||||||
ui(new Ui::MainWindow),
|
ui(new Ui::MainWindow),
|
||||||
m_serverLMSWidget(nullptr),
|
m_serverLMSWidget(nullptr),
|
||||||
trayIcon(nullptr)
|
trayIcon(nullptr),
|
||||||
|
menu(nullptr),
|
||||||
|
action_ShowWindow(nullptr),
|
||||||
|
action_HideWindow(nullptr),
|
||||||
|
action_Exit(nullptr)
|
||||||
{
|
{
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
|
|
||||||
@@ -22,11 +26,11 @@ MainWindow::MainWindow(QWidget *parent) :
|
|||||||
|
|
||||||
//this->move(0, 0);
|
//this->move(0, 0);
|
||||||
//this->showNormal();
|
//this->showNormal();
|
||||||
|
|
||||||
errorCheck();
|
|
||||||
//this->showMaximized();
|
//this->showMaximized();
|
||||||
|
|
||||||
/* Инициализируем иконку трея, устанавливаем иконку из набора системных иконок,
|
errorCheck();
|
||||||
|
|
||||||
|
/* Инициализируем иконку трея, устанавливаем иконку,
|
||||||
* а также задаем всплывающую подсказку
|
* а также задаем всплывающую подсказку
|
||||||
* */
|
* */
|
||||||
trayIcon = new QSystemTrayIcon(this);
|
trayIcon = new QSystemTrayIcon(this);
|
||||||
@@ -34,23 +38,21 @@ MainWindow::MainWindow(QWidget *parent) :
|
|||||||
trayIcon->setIcon(QPixmap(":/resources/IcoServerRRJ.ico"));
|
trayIcon->setIcon(QPixmap(":/resources/IcoServerRRJ.ico"));
|
||||||
trayIcon->setToolTip(tr("Server LMS"));
|
trayIcon->setToolTip(tr("Server LMS"));
|
||||||
|
|
||||||
/* После чего создаем контекстное меню из двух пунктов*/
|
/* После чего создаем контекстное меню*/
|
||||||
QMenu * menu = new QMenu(this);
|
menu = new QMenu(this);
|
||||||
QAction * viewWindow = new QAction(trUtf8("Развернуть окно"), this);
|
action_ShowWindow = new QAction(tr("Expand window"), this);
|
||||||
QAction * hideWindow = new QAction(trUtf8("Свернуть окно"), this);
|
action_HideWindow = new QAction(tr("Minimize window"), this);
|
||||||
QAction * quitAction = new QAction(trUtf8("Выход"), this);
|
action_Exit = new QAction(tr("Exit"), this);
|
||||||
|
|
||||||
/* подключаем сигналы нажатий на пункты меню к соответсвующим слотам.
|
/* подключаем сигналы нажатий на пункты меню к соответсвующим слотам.
|
||||||
* Первый пункт меню разворачивает приложение из трея,
|
|
||||||
* а второй пункт меню завершает приложение
|
|
||||||
* */
|
* */
|
||||||
connect(viewWindow, SIGNAL(triggered()), this, SLOT(show()));
|
connect(action_ShowWindow, SIGNAL(triggered()), this, SLOT(slot_Menu_ShowWindow()));
|
||||||
connect(hideWindow, SIGNAL(triggered()), this, SLOT(hide()));
|
connect(action_HideWindow, SIGNAL(triggered()), this, SLOT(slot_Menu_HideWindow()));
|
||||||
connect(quitAction, SIGNAL(triggered()), this, SLOT(close()));
|
connect(action_Exit, SIGNAL(triggered()), this, SLOT(slot_Menu_Exit()));
|
||||||
|
|
||||||
menu->addAction(viewWindow);
|
menu->addAction(action_ShowWindow);
|
||||||
menu->addAction(hideWindow);
|
menu->addAction(action_HideWindow);
|
||||||
menu->addAction(quitAction);
|
menu->addAction(action_Exit);
|
||||||
|
|
||||||
/* Устанавливаем контекстное меню на иконку
|
/* Устанавливаем контекстное меню на иконку
|
||||||
* и показываем иконку приложения в трее
|
* и показываем иконку приложения в трее
|
||||||
@@ -62,18 +64,9 @@ MainWindow::MainWindow(QWidget *parent) :
|
|||||||
* данного нажатия
|
* данного нажатия
|
||||||
* */
|
* */
|
||||||
connect(trayIcon, SIGNAL(activated(QSystemTrayIcon::ActivationReason)),
|
connect(trayIcon, SIGNAL(activated(QSystemTrayIcon::ActivationReason)),
|
||||||
this, SLOT(iconActivated(QSystemTrayIcon::ActivationReason)));
|
this, SLOT(slot_IconActivated(QSystemTrayIcon::ActivationReason)));
|
||||||
|
|
||||||
//this->hide();
|
slot_Menu_HideWindow();
|
||||||
//this->close();
|
|
||||||
//this->showEvent();
|
|
||||||
|
|
||||||
QSystemTrayIcon::MessageIcon icon = QSystemTrayIcon::MessageIcon(QSystemTrayIcon::Information);
|
|
||||||
trayIcon->showMessage(tr("Server LMS"),
|
|
||||||
tr("Приложение свернуто в трей. Для того чтобы, "
|
|
||||||
"развернуть окно приложения, щелкните по иконке приложения в трее"),
|
|
||||||
icon,
|
|
||||||
2000);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Метод, который обрабатывает событие закрытия окна приложения
|
/* Метод, который обрабатывает событие закрытия окна приложения
|
||||||
@@ -84,58 +77,29 @@ void MainWindow::closeEvent(QCloseEvent * event)
|
|||||||
* игнорируется, а окно просто скрывается, что сопровождается
|
* игнорируется, а окно просто скрывается, что сопровождается
|
||||||
* соответствующим всплывающим сообщением
|
* соответствующим всплывающим сообщением
|
||||||
*/
|
*/
|
||||||
if(this->isVisible() /*&& ui->trayCheckBox->isChecked()*/)
|
if(this->isVisible())
|
||||||
{
|
{
|
||||||
//flFirstShow = false;
|
|
||||||
|
|
||||||
event->ignore();
|
event->ignore();
|
||||||
this->hide();
|
slot_Menu_HideWindow();
|
||||||
QSystemTrayIcon::MessageIcon icon = QSystemTrayIcon::MessageIcon(QSystemTrayIcon::Information);
|
|
||||||
|
|
||||||
trayIcon->showMessage(tr("Server LMS"),
|
|
||||||
tr("Приложение свернуто в трей. Для того чтобы, "
|
|
||||||
"развернуть окно приложения, щелкните по иконке приложения в трее"),
|
|
||||||
icon,
|
|
||||||
2000);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
void MainWindow::showEvent(QShowEvent *event)
|
|
||||||
{
|
|
||||||
QMainWindow::showEvent(event);
|
|
||||||
|
|
||||||
if(flFirstShow)
|
|
||||||
this->close();
|
|
||||||
}*/
|
|
||||||
|
|
||||||
/* Метод, который обрабатывает нажатие на иконку приложения в трее
|
/* Метод, который обрабатывает нажатие на иконку приложения в трее
|
||||||
* */
|
* */
|
||||||
void MainWindow::iconActivated(QSystemTrayIcon::ActivationReason reason)
|
void MainWindow::slot_IconActivated(QSystemTrayIcon::ActivationReason reason)
|
||||||
{
|
{
|
||||||
switch (reason){
|
switch (reason){
|
||||||
case QSystemTrayIcon::Trigger:
|
case QSystemTrayIcon::Trigger:
|
||||||
/* Событие игнорируется в том случае, если чекбокс не отмечен
|
/* иначе, если окно видимо, то оно скрывается,
|
||||||
|
* и наоборот, если скрыто, то разворачивается на экран
|
||||||
* */
|
* */
|
||||||
//if(ui->trayCheckBox->isChecked())
|
if(!this->isVisible())
|
||||||
{
|
{
|
||||||
/* иначе, если окно видимо, то оно скрывается,
|
slot_Menu_ShowWindow();
|
||||||
* и наоборот, если скрыто, то разворачивается на экран
|
}
|
||||||
* */
|
else
|
||||||
if(!this->isVisible()){
|
{
|
||||||
this->show();
|
slot_Menu_HideWindow();
|
||||||
} else
|
|
||||||
{
|
|
||||||
this->hide();
|
|
||||||
|
|
||||||
QSystemTrayIcon::MessageIcon icon = QSystemTrayIcon::MessageIcon(QSystemTrayIcon::Information);
|
|
||||||
|
|
||||||
trayIcon->showMessage(tr("Server LMS"),
|
|
||||||
tr("Приложение свернуто в трей. Для того чтобы, "
|
|
||||||
"развернуть окно приложения, щелкните по иконке приложения в трее"),
|
|
||||||
icon,
|
|
||||||
2000);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
@@ -152,6 +116,7 @@ void MainWindow::exit()
|
|||||||
MainWindow::~MainWindow()
|
MainWindow::~MainWindow()
|
||||||
{
|
{
|
||||||
delete m_serverLMSWidget;
|
delete m_serverLMSWidget;
|
||||||
|
delete trayIcon;
|
||||||
delete ui;
|
delete ui;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -201,3 +166,30 @@ void MainWindow::errorCheck()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void MainWindow::slot_Menu_ShowWindow()
|
||||||
|
{
|
||||||
|
this->show();
|
||||||
|
action_ShowWindow->setEnabled(false);
|
||||||
|
action_HideWindow->setEnabled(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
void MainWindow::slot_Menu_HideWindow()
|
||||||
|
{
|
||||||
|
this->hide();
|
||||||
|
action_ShowWindow->setEnabled(true);
|
||||||
|
action_HideWindow->setEnabled(false);
|
||||||
|
|
||||||
|
QSystemTrayIcon::MessageIcon icon = QSystemTrayIcon::MessageIcon(QSystemTrayIcon::Information);
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
|
||||||
|
void MainWindow::slot_Menu_Exit()
|
||||||
|
{
|
||||||
|
this->hide();
|
||||||
|
this->close();
|
||||||
|
}
|
||||||
|
|||||||
@@ -25,29 +25,35 @@ public:
|
|||||||
~MainWindow();
|
~MainWindow();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
// Метод получения событий в главном окне приложения
|
/* Метод получения событий в главном окне приложения
|
||||||
// В нём будет производиться проверка события смены перевода приложения
|
* В нём будет производиться проверка события смены перевода приложения
|
||||||
|
*/
|
||||||
void changeEvent(QEvent * event) override;
|
void changeEvent(QEvent * event) override;
|
||||||
|
|
||||||
/* Виртуальная функция родительского класса в нашем классе
|
/* Виртуальная функция родительского класса в нашем классе
|
||||||
* переопределяется для изменения поведения приложения,
|
* переопределяется для изменения поведения приложения,
|
||||||
* чтобы оно сворачивалось в трей, когда мы этого хотим
|
* чтобы оно сворачивалось в трей, когда мы этого хотим
|
||||||
*/
|
*/
|
||||||
void closeEvent(QCloseEvent * event);
|
void closeEvent(QCloseEvent * event) override;
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
/* Слот, который будет принимать сигнал от события
|
//Слот нажатия на иконку приложения в трее
|
||||||
* нажатия на иконку приложения в трее
|
void slot_IconActivated(QSystemTrayIcon::ActivationReason reason);
|
||||||
*/
|
|
||||||
void iconActivated(QSystemTrayIcon::ActivationReason reason);
|
public slots:
|
||||||
|
//Слоты нажатия на пункты меню
|
||||||
|
void slot_Menu_ShowWindow();
|
||||||
|
void slot_Menu_HideWindow();
|
||||||
|
void slot_Menu_Exit();
|
||||||
|
|
||||||
|
private slots:
|
||||||
|
//Слот смены языка
|
||||||
|
void on_cmbLanguage_currentIndexChanged(const QString &arg1);
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
//сигнал об изменении языка интерфейса
|
//сигнал об изменении языка интерфейса
|
||||||
void signal_LanguageChanged(QString language);
|
void signal_LanguageChanged(QString language);
|
||||||
|
|
||||||
private slots:
|
|
||||||
void on_cmbLanguage_currentIndexChanged(const QString &arg1);
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void exit();
|
void exit();
|
||||||
void errorCheck();
|
void errorCheck();
|
||||||
@@ -57,7 +63,10 @@ private:
|
|||||||
ServerLMSWidget* m_serverLMSWidget;
|
ServerLMSWidget* m_serverLMSWidget;
|
||||||
QTranslator qtLanguageTranslator;
|
QTranslator qtLanguageTranslator;
|
||||||
|
|
||||||
/* Объявляем объект будущей иконки приложения для трея */
|
|
||||||
QSystemTrayIcon* trayIcon;
|
QSystemTrayIcon* trayIcon;
|
||||||
|
QMenu * menu;
|
||||||
|
QAction * action_ShowWindow;
|
||||||
|
QAction * action_HideWindow;
|
||||||
|
QAction * action_Exit;
|
||||||
};
|
};
|
||||||
#endif // MAINWINDOW_H
|
#endif // MAINWINDOW_H
|
||||||
|
|||||||
Reference in New Issue
Block a user