76 lines
2.4 KiB
C++
76 lines
2.4 KiB
C++
|
#include "numlockmanager.h"
|
||
|
#include "ui_numlockmanager.h"
|
||
|
|
||
|
NumLockManager::NumLockManager(QWidget *parent)
|
||
|
: QMainWindow(parent)
|
||
|
, ui(new Ui::NumLockManager)
|
||
|
{
|
||
|
ui->setupUi(this);
|
||
|
setWindowTitle("NumLockManager V1.3");
|
||
|
setFixedSize(490, 170);
|
||
|
setWindowIcon(tray_icon_on);
|
||
|
setWindowFlags(Qt::WindowCloseButtonHint);
|
||
|
|
||
|
QString texts[6] = {"автозапуск", "ввімк/Вимк", "лише ввімк", "лише вимк", "про програму" , "закрити програму"};
|
||
|
|
||
|
for (int i = 0; i < 6; i++){
|
||
|
actions[i]->setText(texts[i]);
|
||
|
menu->addAction(actions[i]);
|
||
|
if (i == 0 || i == 3) menu->addSeparator();
|
||
|
if (i == 0) menu->addAction(" Режим");
|
||
|
}
|
||
|
|
||
|
action_autostart->setData(autostart->status());
|
||
|
action_autostart->setIcon(autostart->status() ? icon_check_true : icon_check_false);
|
||
|
|
||
|
set_mode(config.getMode());
|
||
|
|
||
|
tray_icon->setIcon(tray_icon_off);
|
||
|
tray_icon->setContextMenu(menu);
|
||
|
tray_icon->show();
|
||
|
|
||
|
ss->moveToThread(ss);
|
||
|
ss->start();
|
||
|
mode->moveToThread(mode);
|
||
|
|
||
|
connect(ss, &StatusShow::status, this, &NumLockManager::getStatus);
|
||
|
connect(tray_icon, &QSystemTrayIcon::activated, this, &NumLockManager::icon_activated);
|
||
|
connect(action_exit, &QAction::triggered, this, &QApplication::quit);
|
||
|
connect(menu, &QMenu::triggered, this, &NumLockManager::set_menu_hz);
|
||
|
}
|
||
|
|
||
|
void NumLockManager::getStatus(bool status)
|
||
|
{
|
||
|
tray_icon->setIcon( status ? tray_icon_on : tray_icon_off );
|
||
|
setWindowIcon( status ? tray_icon_on : tray_icon_off );
|
||
|
}
|
||
|
|
||
|
void NumLockManager::set_menu_hz(QAction *action)
|
||
|
{
|
||
|
for (int i = 0; i < 3; i++)
|
||
|
if (action == actions_mode[i]) set_mode(i);
|
||
|
|
||
|
if (action == action_autostart){
|
||
|
bool data = action_autostart->data().toBool();
|
||
|
action_autostart->setIcon( data ? icon_check_false : icon_check_true);
|
||
|
action_autostart->setData( !data );
|
||
|
autostart->switch_();
|
||
|
// data ? settings->remove(MY_APP_NAME) : settings->setValue(MY_APP_NAME, MY_APP_PATH);
|
||
|
|
||
|
}
|
||
|
|
||
|
if (action == action_about) showNormal();
|
||
|
}
|
||
|
|
||
|
void NumLockManager::set_mode(int index)
|
||
|
{
|
||
|
mode->setMode(index);
|
||
|
config.setMode(index);
|
||
|
|
||
|
for (int i = 0; i < 3; i++)
|
||
|
actions_mode[i]->setIcon((i == index) ? icon_radio_true : icon_radio_false);
|
||
|
|
||
|
if (index > 0)
|
||
|
mode->start();
|
||
|
}
|