From e2a4ef45cfe8a1c49c069f61d0cc08b9d9d808af Mon Sep 17 00:00:00 2001 From: Chris Date: Fri, 20 May 2022 00:29:55 +1000 Subject: [PATCH] Adding greyscale OpenRGB lightbulb as the tray icon to resolve #2453 * Created OpenRGBGreyscale.png from original SVG * Added to resources.qrc --- qt/OpenRGBDialog2.cpp | 41 ++++++++++- qt/OpenRGBDialog2.h | 3 + qt/OpenRGBGreyscale.png | Bin 0 -> 13723 bytes qt/OpenRGBSettingsPage.cpp | 25 +++++-- qt/OpenRGBSettingsPage.h | 4 ++ qt/OpenRGBSettingsPage.ui | 173 +++++++++++++++++++++++---------------------- qt/resources.qrc | 1 + 7 files changed, 158 insertions(+), 89 deletions(-) create mode 100644 qt/OpenRGBGreyscale.png diff --git a/qt/OpenRGBDialog2.cpp b/qt/OpenRGBDialog2.cpp index 7bf2c228..14dbacb5 100644 --- a/qt/OpenRGBDialog2.cpp +++ b/qt/OpenRGBDialog2.cpp @@ -331,7 +331,27 @@ OpenRGBDialog2::OpenRGBDialog2(QWidget *parent) : QMainWindow(parent), ui(new Op connect(trayIcon,SIGNAL(activated(QSystemTrayIcon::ActivationReason)), this, SLOT(on_ReShow(QSystemTrayIcon::ActivationReason))); - trayIcon->setIcon(logo); + /*-------------------------------------------------*\ + | If Greyscale Tray Icon flag is not set in config | + | then set the default value to false | + \*-------------------------------------------------*/ + if(!ui_settings.contains("greyscale_tray_icon")) + { + ui_settings["greyscale_tray_icon"] = false; + + settings_manager->SetSettings(ui_string, ui_settings); + settings_manager->SaveSettings(); + } + + /*-----------------------------------------------------*\ + | If greyscale tray icon exists in settings, apply it | + | or else set the icon to the default window logo | + \*-----------------------------------------------------*/ + if(ui_settings.contains("greyscale_tray_icon")) + { + SetTrayIcon(ui_settings["greyscale_tray_icon"].get()); + } + trayIcon->setToolTip("OpenRGB"); trayIcon->setContextMenu(trayIconMenu); trayIcon->show(); @@ -396,7 +416,7 @@ OpenRGBDialog2::OpenRGBDialog2(QWidget *parent) : QMainWindow(parent), ui(new Op | Add the LIFX settings page | \*-----------------------------------------------------*/ AddLIFXSettingsPage(); - + /*-----------------------------------------------------*\ | Add the Serial settings page | \*-----------------------------------------------------*/ @@ -620,6 +640,11 @@ void OpenRGBDialog2::AddSettingsPage() TabLabel* SettingsTabLabel = new TabLabel(SettingsLabelString, "General Settings"); ui->SettingsTabBar->tabBar()->setTabButton(ui->SettingsTabBar->tabBar()->count() - 1, QTabBar::LeftSide, SettingsTabLabel); + + /*-----------------------------------------------------*\ + | Connect signals to slots | + \*-----------------------------------------------------*/ + connect(SettingsPage, SIGNAL(TrayIconChanged(bool)), this, SLOT(SetTrayIcon(bool))); } void OpenRGBDialog2::AddE131SettingsPage() @@ -1668,6 +1693,18 @@ void Ui::OpenRGBDialog2::SetDetectionViewState(bool detection_showing) } } +void OpenRGBDialog2::SetTrayIcon(bool tray_icon) +{ + if(tray_icon) + { + trayIcon->setIcon(QIcon(":OpenRGBGreyscale.png")); + } + else + { + trayIcon->setIcon(QIcon(":OpenRGB.png")); + } +} + void OpenRGBDialog2::SaveProfile() { ProfileManager* profile_manager = ResourceManager::get()->GetProfileManager(); diff --git a/qt/OpenRGBDialog2.h b/qt/OpenRGBDialog2.h index 84cdc140..0d05f3e0 100644 --- a/qt/OpenRGBDialog2.h +++ b/qt/OpenRGBDialog2.h @@ -62,6 +62,9 @@ public: bool DontShowAgain; +public slots: + void SetTrayIcon(bool tray_icon); + private: /*-------------------------------------*\ | Page pointers | diff --git a/qt/OpenRGBGreyscale.png b/qt/OpenRGBGreyscale.png new file mode 100644 index 0000000000000000000000000000000000000000..054dac17275f09ae9892ae7558a357faefdeed99 GIT binary patch literal 13723 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 J8ZqPG{{iE*4iW$W literal 0 HcmV?d00001 diff --git a/qt/OpenRGBSettingsPage.cpp b/qt/OpenRGBSettingsPage.cpp index 4c499b62..99f7c4bf 100644 --- a/qt/OpenRGBSettingsPage.cpp +++ b/qt/OpenRGBSettingsPage.cpp @@ -37,6 +37,11 @@ OpenRGBSettingsPage::OpenRGBSettingsPage(QWidget *parent) : \*---------------------------------------------------------*/ json ui_settings = ResourceManager::get()->GetSettingsManager()->GetSettings("UserInterface"); + if(ui_settings.contains("greyscale_tray_icon")) + { + ui->CheckboxTrayIconGreyscale->setChecked(ui_settings["greyscale_tray_icon"]); + } + if(ui_settings.contains("minimize_on_close")) { ui->CheckboxMinimizeOnClose->setChecked(ui_settings["minimize_on_close"]); @@ -166,6 +171,18 @@ void OpenRGBSettingsPage::on_ComboBoxTheme_currentTextChanged(const QString them } } +void OpenRGBSettingsPage::on_CheckboxTrayIconGreyscale_clicked() +{ + json ui_settings = ResourceManager::get()->GetSettingsManager()->GetSettings("UserInterface"); + bool tray_icon = ui->CheckboxTrayIconGreyscale->isChecked(); + + ui_settings["greyscale_tray_icon"] = tray_icon; + ResourceManager::get()->GetSettingsManager()->SetSettings("UserInterface", ui_settings); + SaveSettings(); + + emit TrayIconChanged(tray_icon); +} + void OpenRGBSettingsPage::on_CheckboxMinimizeOnClose_clicked() { json ui_settings = ResourceManager::get()->GetSettingsManager()->GetSettings("UserInterface"); @@ -204,7 +221,7 @@ void Ui::OpenRGBSettingsPage::on_CheckboxAutoStart_clicked() { json autostart_settings = ResourceManager::get()->GetSettingsManager()->GetSettings("AutoStart"); autostart_settings["enabled"] = ui->CheckboxAutoStart->isChecked(); - + if(autostart_settings["enabled"]) { RemediateAutoStartProfile(autostart_settings); @@ -502,13 +519,13 @@ void OpenRGBSettingsPage::RemediateAutoStartProfile(json &autostart_settings) ui->ComboBoxAutoStartProfile->findText(QString::fromStdString(autostart_settings["profile"])) == -1)) { autostart_settings["profile"] = ui->ComboBoxAutoStartProfile->itemText(0).toStdString(); - + if(autostart_settings["enabled"]) { autostart_settings["setprofile"] = false; - + ResourceManager::get()->GetSettingsManager()->SetSettings("AutoStart", autostart_settings); - + ConfigureAutoStart(); SaveSettings(); } diff --git a/qt/OpenRGBSettingsPage.h b/qt/OpenRGBSettingsPage.h index 63f3d682..c7da3844 100644 --- a/qt/OpenRGBSettingsPage.h +++ b/qt/OpenRGBSettingsPage.h @@ -17,6 +17,9 @@ public: explicit OpenRGBSettingsPage(QWidget *parent = nullptr); ~OpenRGBSettingsPage(); +signals: + void TrayIconChanged(bool tray_icon); + private: Ui::OpenRGBSettingsPageUi *ui; void SaveSettings(); @@ -34,6 +37,7 @@ private: private slots: void on_ComboBoxTheme_currentTextChanged(const QString); void on_CheckboxMinimizeOnClose_clicked(); + void on_CheckboxTrayIconGreyscale_clicked(); void on_CheckboxLoadGeometry_clicked(); void on_CheckboxSaveGeometry_clicked(); void on_CheckboxAutoStart_clicked(); diff --git a/qt/OpenRGBSettingsPage.ui b/qt/OpenRGBSettingsPage.ui index 3bceb6d8..b81cc279 100644 --- a/qt/OpenRGBSettingsPage.ui +++ b/qt/OpenRGBSettingsPage.ui @@ -24,12 +24,19 @@ 0 0 - 418 - 464 + 427 + 638 - + + + + Minimize On Close + + + + 90000 @@ -42,167 +49,167 @@ - - + + - Start Client + Start Server + + + - + - Drivers Settings + Enable Log Console (restart required) - - + + - Start at Login Status + Custom Arguments - - - - - + + - Set Server Port + Save Geometry On Close - - - - - - - User Interface Settings: + + + + Qt::Vertical - + + QSizePolicy::MinimumExpanding + + + + 20 + 40 + + + - - + + - Minimize On Close + Load Window Geometry - - + + - Save Geometry On Close + Start Client - + - Start At Login + Start At Login Settings: - - + + - Load Profile + Log Manager Settings: - - + + - Start Server + Theme (restart required) - - + + + + + - Start At Login Settings: + Start at Login Status - - + + - Custom Arguments + Set Server Port - - + + - Log Manager Settings: + Load Profile - - + + - Start Minimized + Drivers Settings - - - - Qt::Vertical - - - QSizePolicy::MinimumExpanding - - - - 20 - 40 - - - - - - - - + Run zone checks on rescan - - + + + + + - Enable Log Console (restart required) + User Interface Settings: - - + + - Theme (restart required) + Start At Login - - + + - Load Window Geometry + Start Minimized - - + + - + AMD SMBus: Reduce CPU Usage (restart required) + + + + Greyscale Tray Icon + + + diff --git a/qt/resources.qrc b/qt/resources.qrc index 51eba994..41a2cd5e 100644 --- a/qt/resources.qrc +++ b/qt/resources.qrc @@ -49,5 +49,6 @@ storage_dark.png case.png case_dark.png + OpenRGBGreyscale.png