From 186be98f84b030f0f0eac4f7362364d02e43345a Mon Sep 17 00:00:00 2001 From: Martin Rotter Date: Thu, 30 Jan 2025 10:34:34 +0100 Subject: [PATCH] fix #1603 --- src/librssguard/gui/settings/settingsgui.cpp | 19 ++++++++------ src/librssguard/gui/settings/settingsgui.ui | 26 ++++++++++++++----- src/librssguard/gui/systemtrayicon.cpp | 3 ++- src/librssguard/miscellaneous/application.cpp | 7 ++++- src/librssguard/miscellaneous/settings.cpp | 3 +++ src/librssguard/miscellaneous/settings.h | 3 +++ 6 files changed, 44 insertions(+), 17 deletions(-) diff --git a/src/librssguard/gui/settings/settingsgui.cpp b/src/librssguard/gui/settings/settingsgui.cpp index dbc6b2a30..67cdb6976 100644 --- a/src/librssguard/gui/settings/settingsgui.cpp +++ b/src/librssguard/gui/settings/settingsgui.cpp @@ -54,6 +54,10 @@ SettingsGui::SettingsGui(Settings* settings, QWidget* parent) this, &SettingsGui::updateSkinOptions); + connect(m_ui->m_checkMonochromeIcons, + &QCheckBox::toggled, + m_ui->m_checkColoredIconsWhenArticles, + &QCheckBox::setEnabled); connect(m_ui->m_cmbIconTheme, static_cast(&QComboBox::currentIndexChanged), this, @@ -69,6 +73,9 @@ SettingsGui::SettingsGui(Settings* settings, QWidget* parent) connect(m_ui->m_checkForceAlternativePalette, &QCheckBox::toggled, this, &SettingsGui::dirtifySettings); connect(m_ui->m_checkForceAlternativePalette, &QCheckBox::toggled, this, &SettingsGui::requireRestart); connect(m_ui->m_checkMonochromeIcons, &QCheckBox::toggled, this, &SettingsGui::dirtifySettings); + connect(m_ui->m_checkMonochromeIcons, &QCheckBox::toggled, this, &SettingsGui::requireRestart); + connect(m_ui->m_checkColoredIconsWhenArticles, &QCheckBox::toggled, this, &SettingsGui::dirtifySettings); + connect(m_ui->m_checkColoredIconsWhenArticles, &QCheckBox::toggled, this, &SettingsGui::requireRestart); connect(m_ui->m_checkCountUnreadMessages, &QCheckBox::toggled, this, &SettingsGui::dirtifySettings); connect(m_ui->m_checkHideWhenMinimized, &QCheckBox::toggled, this, &SettingsGui::dirtifySettings); connect(m_ui->m_checkHideTabBarIfOneTabVisible, &QCheckBox::toggled, this, &SettingsGui::dirtifySettings); @@ -188,6 +195,8 @@ void SettingsGui::loadSettings() { } m_ui->m_checkMonochromeIcons->setChecked(settings()->value(GROUP(GUI), SETTING(GUI::MonochromeTrayIcon)).toBool()); + m_ui->m_checkColoredIconsWhenArticles + ->setChecked(settings()->value(GROUP(GUI), SETTING(GUI::ColoredBusyTrayIcon)).toBool()); m_ui->m_checkCountUnreadMessages ->setChecked(settings()->value(GROUP(GUI), SETTING(GUI::UnreadNumbersInTrayIcon)).toBool()); @@ -389,14 +398,8 @@ void SettingsGui::saveSettings() { qApp->deleteTrayIcon(); } } - - auto old_monochrome = settings()->value(GROUP(GUI), SETTING(GUI::MonochromeTrayIcon)).toBool(); - - if (old_monochrome != m_ui->m_checkMonochromeIcons->isChecked()) { - requireRestart(); - settings()->setValue(GROUP(GUI), GUI::MonochromeTrayIcon, m_ui->m_checkMonochromeIcons->isChecked()); - } - + settings()->setValue(GROUP(GUI), GUI::MonochromeTrayIcon, m_ui->m_checkMonochromeIcons->isChecked()); + settings()->setValue(GROUP(GUI), GUI::ColoredBusyTrayIcon, m_ui->m_checkColoredIconsWhenArticles->isChecked()); settings()->setValue(GROUP(GUI), GUI::UnreadNumbersInTrayIcon, m_ui->m_checkCountUnreadMessages->isChecked()); settings()->setValue(GROUP(GUI), GUI::MainWindowStartsHidden, m_ui->m_checkHidden->isChecked()); settings()->setValue(GROUP(GUI), GUI::HideMainWindowWhenMinimized, m_ui->m_checkHideWhenMinimized->isChecked()); diff --git a/src/librssguard/gui/settings/settingsgui.ui b/src/librssguard/gui/settings/settingsgui.ui index aea0971b0..cca44ee7c 100644 --- a/src/librssguard/gui/settings/settingsgui.ui +++ b/src/librssguard/gui/settings/settingsgui.ui @@ -96,7 +96,7 @@ - Qt::Vertical + Qt::Orientation::Vertical @@ -157,7 +157,7 @@ - QFormLayout::ExpandingFieldsGrow + QFormLayout::FieldGrowthPolicy::ExpandingFieldsGrow @@ -166,34 +166,44 @@ - + Display count of unread messages - + Hide main window when it is minimized - + Start application hidden + + + + false + + + Use colored icon when there are unread articles + + + - Qt::Vertical + Qt::Orientation::Vertical @@ -270,7 +280,7 @@ - Qt::Vertical + Qt::Orientation::Vertical @@ -452,6 +462,7 @@ m_tabUi m_grpTray m_checkMonochromeIcons + m_checkColoredIconsWhenArticles m_checkCountUnreadMessages m_checkHideWhenMinimized m_checkHidden @@ -467,6 +478,7 @@ m_checkForceAlternativePalette m_treeSkins m_gbCustomSkinColors + m_displayUnreadMessageCountOnTaskBar diff --git a/src/librssguard/gui/systemtrayicon.cpp b/src/librssguard/gui/systemtrayicon.cpp index c83db42af..64280d254 100644 --- a/src/librssguard/gui/systemtrayicon.cpp +++ b/src/librssguard/gui/systemtrayicon.cpp @@ -100,7 +100,8 @@ void SystemTrayIcon::setNumber(int number, bool any_feed_has_new_unread_messages tray_painter.begin(&background); - if (qApp->settings()->value(GROUP(GUI), SETTING(GUI::MonochromeTrayIcon)).toBool()) { + if (qApp->settings()->value(GROUP(GUI), SETTING(GUI::MonochromeTrayIcon)).toBool() && + !qApp->settings()->value(GROUP(GUI), SETTING(GUI::ColoredBusyTrayIcon)).toBool()) { tray_painter.setPen(Qt::GlobalColor::white); } else { diff --git a/src/librssguard/miscellaneous/application.cpp b/src/librssguard/miscellaneous/application.cpp index 922fe6d72..24b922dbe 100644 --- a/src/librssguard/miscellaneous/application.cpp +++ b/src/librssguard/miscellaneous/application.cpp @@ -674,7 +674,12 @@ void Application::restoreDatabaseSettings(bool restore_database, SystemTrayIcon* Application::trayIcon() { if (m_trayIcon == nullptr) { if (qApp->settings()->value(GROUP(GUI), SETTING(GUI::MonochromeTrayIcon)).toBool()) { - m_trayIcon = new SystemTrayIcon(APP_ICON_MONO_PATH, APP_ICON_MONO_PLAIN_PATH, m_mainForm); + if (qApp->settings()->value(GROUP(GUI), SETTING(GUI::ColoredBusyTrayIcon)).toBool()) { + m_trayIcon = new SystemTrayIcon(APP_ICON_MONO_PATH, APP_ICON_PLAIN_PATH, m_mainForm); + } + else { + m_trayIcon = new SystemTrayIcon(APP_ICON_MONO_PATH, APP_ICON_MONO_PLAIN_PATH, m_mainForm); + } } else { m_trayIcon = new SystemTrayIcon(APP_ICON_PATH, APP_ICON_PLAIN_PATH, m_mainForm); diff --git a/src/librssguard/miscellaneous/settings.cpp b/src/librssguard/miscellaneous/settings.cpp index aef405071..9a55063f3 100644 --- a/src/librssguard/miscellaneous/settings.cpp +++ b/src/librssguard/miscellaneous/settings.cpp @@ -362,6 +362,9 @@ DVALUE(bool) GUI::HideMainWindowWhenMinimizedDef = false; DKEY GUI::MonochromeTrayIcon = "monochrome_tray_icon"; DVALUE(bool) GUI::MonochromeTrayIconDef = false; +DKEY GUI::ColoredBusyTrayIcon = "colored_busy_tray_icon"; +DVALUE(bool) GUI::ColoredBusyTrayIconDef = false; + DKEY GUI::ForcedSkinColors = "forced_skin_colors"; DVALUE(bool) GUI::ForcedSkinColorsDef = true; diff --git a/src/librssguard/miscellaneous/settings.h b/src/librssguard/miscellaneous/settings.h index f270e62f2..ed7614ad6 100644 --- a/src/librssguard/miscellaneous/settings.h +++ b/src/librssguard/miscellaneous/settings.h @@ -361,6 +361,9 @@ namespace GUI { KEY MonochromeTrayIcon; VALUE(bool) MonochromeTrayIconDef; + KEY ColoredBusyTrayIcon; + VALUE(bool) ColoredBusyTrayIconDef; + KEY UnreadNumbersInTrayIcon; VALUE(bool) UnreadNumbersInTrayIconDef;