diff --git a/vkconfig_gui/mainwindow.cpp b/vkconfig_gui/mainwindow.cpp index 2daa389fb1..9fc9e3f43e 100644 --- a/vkconfig_gui/mainwindow.cpp +++ b/vkconfig_gui/mainwindow.cpp @@ -48,7 +48,7 @@ #include MainWindow::MainWindow(QApplication &app, QWidget *parent) - : QMainWindow(parent), _tray_icon(nullptr), app(app), ui(new Ui::MainWindow) { + : QMainWindow(parent), _tray_icon(new QSystemTrayIcon(this)), app(app), ui(new Ui::MainWindow) { ui->setupUi(this); this->tabs[TAB_DIAGNOSTIC].reset(new TabDiagnostics(*this, ui)); @@ -111,6 +111,7 @@ void MainWindow::UpdateUI_Status() { // Device { QMenu *menu = new QMenu(this); + QSignalMapper *mapper_device = new QSignalMapper(menu); QSignalMapper *mapper_layers = new QSignalMapper(menu); @@ -194,13 +195,14 @@ void MainWindow::UpdateUI_Status() { this->connect(tray_quit_action, &QAction::triggered, qApp, &QCoreApplication::quit); menu->addAction(tray_quit_action); - if (this->_tray_icon != nullptr) { - delete this->_tray_icon; + if (VKC_PLATFORM == PLATFORM_LINUX) { + if (this->_tray_icon != nullptr) { + delete this->_tray_icon; + } + this->_tray_icon = new QSystemTrayIcon(this); } - this->_tray_icon = new QSystemTrayIcon(this); this->_tray_icon->setContextMenu(menu); - this->_tray_icon->show(); this->connect(this->_tray_icon, &QSystemTrayIcon::activated, this, &MainWindow::OnIconActivated); if (configurator.layers_override_enabled || configurator.driver_override_enabled || configurator.loader_log_enabled) { @@ -208,6 +210,8 @@ void MainWindow::UpdateUI_Status() { } else { this->_tray_icon->setIcon(QIcon(":/resourcefiles/vkconfig-off.png")); } + + this->_tray_icon->show(); } } @@ -384,7 +388,6 @@ void MainWindow::OnTrayActionOverrideLayers(bool toggled) { configurator.Override(OVERRIDE_AREA_ALL); this->tabs[TAB_CONFIGURATIONS]->UpdateUI(UPDATE_REBUILD_UI); - this->UpdateUI(UPDATE_REBUILD_UI); } void MainWindow::OnLayersChanged(int index) { @@ -393,7 +396,6 @@ void MainWindow::OnLayersChanged(int index) { configurator.Override(OVERRIDE_AREA_ALL); this->tabs[TAB_CONFIGURATIONS]->UpdateUI(UPDATE_REBUILD_UI); - this->UpdateUI(UPDATE_REBUILD_UI); } void MainWindow::OnTrayActionOverrideDevice(bool toggled) { @@ -403,7 +405,6 @@ void MainWindow::OnTrayActionOverrideDevice(bool toggled) { configurator.Override(OVERRIDE_AREA_LOADER_SETTINGS_BIT); this->tabs[TAB_DRIVERS]->UpdateUI(UPDATE_REBUILD_UI); - this->UpdateUI(UPDATE_REBUILD_UI); } void MainWindow::OnDeviceChanged(int index) { @@ -412,7 +413,6 @@ void MainWindow::OnDeviceChanged(int index) { configurator.Override(OVERRIDE_AREA_LOADER_SETTINGS_BIT); this->tabs[TAB_DRIVERS]->UpdateUI(UPDATE_REBUILD_UI); - this->UpdateUI(UPDATE_REBUILD_UI); } void MainWindow::OnTrayActionOverrideLog(bool toggled) { @@ -421,7 +421,6 @@ void MainWindow::OnTrayActionOverrideLog(bool toggled) { configurator.Override(OVERRIDE_AREA_LOADER_SETTINGS_BIT); this->tabs[TAB_DIAGNOSTIC]->UpdateUI(UPDATE_REBUILD_UI); - this->UpdateUI(UPDATE_REBUILD_UI); } /// The only thing we need to do here is clear the configuration if