diff --git a/BigPictureTV/BigPictureTV.cpp b/BigPictureTV/BigPictureTV.cpp index 0537d6e..b64d947 100644 --- a/BigPictureTV/BigPictureTV.cpp +++ b/BigPictureTV/BigPictureTV.cpp @@ -43,16 +43,23 @@ void BigPictureTV::createTrayIcon() { trayIcon = new QSystemTrayIcon(Utils::getIconForTheme(), this); trayIconMenu = new QMenu(); - configAction = new QAction(tr("Settings"), this); - quitAction = new QAction(tr("Quit"), this); - connect(configAction, &QAction::triggered, this, &BigPictureTV::showSettings); - connect(quitAction, &QAction::triggered, this, &QApplication::quit); + pauseAction = new QAction(tr("Pause detection"), this); + pauseAction->setCheckable(true); + connect(pauseAction, &QAction::triggered, this, &BigPictureTV::changeDetectionState); + trayIconMenu->addAction(pauseAction); + + trayIconMenu->addSeparator(); + configAction = new QAction(tr("Settings"), this); + connect(configAction, &QAction::triggered, this, &BigPictureTV::showSettings); trayIconMenu->addAction(configAction); + + quitAction = new QAction(tr("Quit"), this); + connect(quitAction, &QAction::triggered, this, &QApplication::quit); trayIconMenu->addAction(quitAction); - trayIcon->setContextMenu(trayIconMenu); + trayIcon->setContextMenu(trayIconMenu); trayIcon->setToolTip("BigPictureTV"); trayIcon->show(); } @@ -214,6 +221,7 @@ void BigPictureTV::showSettings() configurator = new Configurator; configurator->setAttribute(Qt::WA_DeleteOnClose); connect(configurator, &Configurator::closed, this, &BigPictureTV::onConfiguratorClosed); + configurator->show(); } @@ -222,7 +230,10 @@ void BigPictureTV::onConfiguratorClosed() configurator = nullptr; loadSettings(); windowCheckTimer->setInterval(window_checkrate); - windowCheckTimer->start(); + + if (!pauseAction->isChecked()) { + windowCheckTimer->start(); + } } void BigPictureTV::startupReset() @@ -240,3 +251,10 @@ void BigPictureTV::startupReset() } } } + +void BigPictureTV::changeDetectionState() +{ + if (!configurator) { + pauseAction->isChecked() ? windowCheckTimer->stop() : windowCheckTimer->start(); + } +} diff --git a/BigPictureTV/bigpicturetv.h b/BigPictureTV/bigpicturetv.h index 50489cd..391c391 100644 --- a/BigPictureTV/bigpicturetv.h +++ b/BigPictureTV/bigpicturetv.h @@ -29,6 +29,7 @@ private slots: QTimer *windowCheckTimer; QMenu *trayIconMenu; QAction *quitAction; + QAction *pauseAction; QAction *configAction; void loadSettings(); void createTrayIcon(); @@ -42,6 +43,7 @@ private slots: void checkWindowTitle(); void showSettings(); void startupReset(); + void changeDetectionState(); QString gamemode_audio_device; QString desktop_audio_device;