12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- #include "numlockmanager.h"
- #include "ui_numlockmanager.h"
- NumLockManager::NumLockManager(QWidget *parent)
- : QMainWindow(parent)
- , ui(new Ui::NumLockManager)
- {
- ui->setupUi(this);
- setWindowTitle("NumLockManager V1.1");
- 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(" Режим");
- }
- bool autostart = !settings->value(MY_APP_NAME).toString().isEmpty();
- action_autostart->setData(autostart);
- action_autostart->setIcon(autostart ? 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 );
- data ? settings->remove(MY_APP_NAME) : settings->setValue(MY_APP_NAME, MY_APP_PATH);
- settings->sync();
- }
- 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();
- }
|