diff --git a/src/librssguard/gui/settings/settingsgui.cpp b/src/librssguard/gui/settings/settingsgui.cpp index 7a9963a29..d5c81fb56 100644 --- a/src/librssguard/gui/settings/settingsgui.cpp +++ b/src/librssguard/gui/settings/settingsgui.cpp @@ -34,6 +34,10 @@ SettingsGui::SettingsGui(Settings* settings, QWidget* parent) : SettingsPanel(se << /*: Version column of skin list. */ tr("Version") << tr("Author")); +#if !defined(Q_OS_UNIX) || defined(Q_OS_MACOS) + m_ui->m_tabUi->setTabVisible(m_ui->m_tabUi->indexOf(m_ui->m_taskBar), false); +#endif + m_ui->m_helpCustomSkinColors->setHelpText(tr("You can override some colors defined by your skin here. " "Some colors are used dynamically throughout the application."), false); @@ -73,6 +77,7 @@ SettingsGui::SettingsGui(Settings* settings, QWidget* parent) : SettingsPanel(se &QStackedWidget::setCurrentIndex); connect(m_ui->m_gbCustomSkinColors, &QGroupBox::toggled, this, &SettingsGui::dirtifySettings); connect(m_ui->m_spinToolbarIconSize, QOverload::of(&QSpinBox::valueChanged), this, &SettingsGui::dirtifySettings); + connect(m_ui->m_displayUnreadMessageCountOnTaskBar, &QCheckBox::toggled, this, &SettingsGui::dirtifySettings); connect(m_ui->m_spinToolbarIconSize, QOverload::of(&QSpinBox::valueChanged), this, [=](int value) { if (value <= 0) { @@ -146,6 +151,10 @@ void SettingsGui::loadSettings() { m_ui->m_checkMonochromeIcons->setChecked(settings()->value(GROUP(GUI), SETTING(GUI::MonochromeTrayIcon)).toBool()); m_ui->m_checkCountUnreadMessages->setChecked(settings()->value(GROUP(GUI), SETTING(GUI::UnreadNumbersInTrayIcon)).toBool()); +#if defined(Q_OS_UNIX) && !defined(Q_OS_MACOS) + m_ui->m_displayUnreadMessageCountOnTaskBar->setChecked(settings()->value(GROUP(GUI), SETTING(GUI::UnreadNumbersOnTaskBar)).toBool()); +#endif + // Mark active theme. if (current_theme == QL1S(APP_NO_THEME)) { // Because "no icon theme" lies at the index 0. @@ -326,6 +335,10 @@ void SettingsGui::saveSettings() { settings()->setValue(GROUP(GUI), GUI::ForceDarkFusion, m_ui->m_checkForceDarkFusion->isChecked()); +#if defined(Q_OS_UNIX) && !defined(Q_OS_MACOS) + settings()->setValue(GROUP(GUI), GUI::UnreadNumbersOnTaskBar, m_ui->m_displayUnreadMessageCountOnTaskBar->isChecked()); +#endif + // Make sure that number of unread messages is shown in tray icon as requested. qApp->feedReader()->feedsModel()->notifyWithCounts(); diff --git a/src/librssguard/gui/settings/settingsgui.ui b/src/librssguard/gui/settings/settingsgui.ui index 39624963a..8271a06c7 100644 --- a/src/librssguard/gui/settings/settingsgui.ui +++ b/src/librssguard/gui/settings/settingsgui.ui @@ -410,6 +410,24 @@ + + + Task bar + + + + + 10 + 10 + 321 + 25 + + + + Display count of unread messages + + + diff --git a/src/librssguard/miscellaneous/application.cpp b/src/librssguard/miscellaneous/application.cpp index d0c420a3b..5e06db68a 100644 --- a/src/librssguard/miscellaneous/application.cpp +++ b/src/librssguard/miscellaneous/application.cpp @@ -643,7 +643,9 @@ void Application::showMessagesNumber(int unread_messages, bool any_feed_has_unre QVariantMap setProperty; setProperty.insert("count", qint64(unread_messages)); - setProperty.insert("count-visible", unread_messages > 0); + bool task_bar_count_enabled = settings()->value(GROUP(GUI), + SETTING(GUI::UnreadNumbersOnTaskBar)).toBool(); + setProperty.insert("count-visible", task_bar_count_enabled && unread_messages > 0); signal << setProperty; diff --git a/src/librssguard/miscellaneous/settings.cpp b/src/librssguard/miscellaneous/settings.cpp index 98037cadf..eafa4f06f 100644 --- a/src/librssguard/miscellaneous/settings.cpp +++ b/src/librssguard/miscellaneous/settings.cpp @@ -260,6 +260,11 @@ DVALUE(bool) GUI::ForceDarkFusionDef = false; DKEY GUI::UnreadNumbersInTrayIcon = "show_unread_numbers_in_tray_icon"; DVALUE(bool) GUI::UnreadNumbersInTrayIconDef = true; +#if defined(Q_OS_UNIX) && !defined(Q_OS_MACOS) +DKEY GUI::UnreadNumbersOnTaskBar = "show_unread_numbers_on_task_bar"; +DVALUE(bool) GUI::UnreadNumbersOnTaskBarDef = true; +#endif + DKEY GUI::UseTrayIcon = "use_tray_icon"; DVALUE(bool) GUI::UseTrayIconDef = true; diff --git a/src/librssguard/miscellaneous/settings.h b/src/librssguard/miscellaneous/settings.h index 72fb1d76a..abdfca435 100644 --- a/src/librssguard/miscellaneous/settings.h +++ b/src/librssguard/miscellaneous/settings.h @@ -267,6 +267,11 @@ namespace GUI { KEY UnreadNumbersInTrayIcon; VALUE(bool) UnreadNumbersInTrayIconDef; +#if defined(Q_OS_UNIX) && !defined(Q_OS_MACOS) + KEY UnreadNumbersOnTaskBar; + VALUE(bool) UnreadNumbersOnTaskBarDef; +#endif + KEY TabCloseMiddleClick; VALUE(bool) TabCloseMiddleClickDef;