diff --git a/src/librssguard/gui/settings/settingsgui.cpp b/src/librssguard/gui/settings/settingsgui.cpp index 208dd4e54..0750dacc5 100755 --- a/src/librssguard/gui/settings/settingsgui.cpp +++ b/src/librssguard/gui/settings/settingsgui.cpp @@ -2,6 +2,7 @@ #include "gui/settings/settingsgui.h" +#include "core/feedsmodel.h" #include "gui/dialogs/formmain.h" #include "gui/feedmessageviewer.h" #include "gui/feedstoolbar.h" @@ -43,6 +44,7 @@ SettingsGui::SettingsGui(Settings* settings, QWidget* parent) : SettingsPanel(se connect(m_ui->m_checkEnableNotifications, &QCheckBox::toggled, this, &SettingsGui::dirtifySettings); connect(m_ui->m_checkHidden, &QCheckBox::toggled, this, &SettingsGui::dirtifySettings); connect(m_ui->m_checkMonochromeIcons, &QCheckBox::toggled, this, &SettingsGui::dirtifySettings); + 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); connect(m_ui->m_checkCloseTabsDoubleClick, &QCheckBox::toggled, this, &SettingsGui::dirtifySettings); @@ -117,6 +119,7 @@ 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()); // Mark active theme. if (current_theme == QL1S(APP_NO_THEME)) { @@ -215,9 +218,13 @@ void SettingsGui::saveSettings() { settings()->setValue(GROUP(GUI), GUI::MonochromeTrayIcon, m_ui->m_checkMonochromeIcons->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()); + // Make sure that number of unread messages is shown in tray icon as requested. + qApp->feedReader()->feedsModel()->notifyWithCounts(); + // Save notifications. settings()->setValue(GROUP(GUI), GUI::EnableNotifications, m_ui->m_checkEnableNotifications->isChecked()); diff --git a/src/librssguard/gui/settings/settingsgui.ui b/src/librssguard/gui/settings/settingsgui.ui index edb55b470..0bb234e81 100644 --- a/src/librssguard/gui/settings/settingsgui.ui +++ b/src/librssguard/gui/settings/settingsgui.ui @@ -29,7 +29,7 @@ QTabWidget::North - 0 + 1 @@ -171,21 +171,21 @@ QFormLayout::ExpandingFieldsGrow - + Hide main window when it is minimized - + Start application hidden - + Enable popup balloon tooltips @@ -199,6 +199,13 @@ + + + + Display count of unread messages + + + @@ -393,6 +400,7 @@ m_treeSkins m_grpTray m_checkMonochromeIcons + m_checkCountUnreadMessages m_checkEnableNotifications m_checkHideWhenMinimized m_checkHidden diff --git a/src/librssguard/gui/systemtrayicon.cpp b/src/librssguard/gui/systemtrayicon.cpp index 9f36a9a6d..113f11b27 100644 --- a/src/librssguard/gui/systemtrayicon.cpp +++ b/src/librssguard/gui/systemtrayicon.cpp @@ -100,7 +100,8 @@ void SystemTrayIcon::show() { void SystemTrayIcon::setNumber(int number, bool any_new_message) { Q_UNUSED(any_new_message) - if (number <= 0) { + if (number <= 0 || !qApp->settings()->value(GROUP(GUI), SETTING(GUI::UnreadNumbersInTrayIcon)).toBool()) { + // Either no unread messages or numbers in tray icon are disabled. setToolTip(QSL(APP_LONG_NAME)); QSystemTrayIcon::setIcon(QIcon(m_normalIcon)); } diff --git a/src/librssguard/miscellaneous/settings.cpp b/src/librssguard/miscellaneous/settings.cpp index 477dfcad0..cb87e89eb 100755 --- a/src/librssguard/miscellaneous/settings.cpp +++ b/src/librssguard/miscellaneous/settings.cpp @@ -166,6 +166,9 @@ DVALUE(bool) GUI::HideMainWindowWhenMinimizedDef = false; DKEY GUI::MonochromeTrayIcon = "monochrome_tray_icon"; DVALUE(bool) GUI::MonochromeTrayIconDef = false; +DKEY GUI::UnreadNumbersInTrayIcon = "show_unread_numbers_in_tray_icon"; +DVALUE(bool) GUI::UnreadNumbersInTrayIconDef = true; + 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 18bbd939d..387f8c1d0 100644 --- a/src/librssguard/miscellaneous/settings.h +++ b/src/librssguard/miscellaneous/settings.h @@ -185,6 +185,9 @@ namespace GUI { KEY MonochromeTrayIcon; VALUE(bool) MonochromeTrayIconDef; + KEY UnreadNumbersInTrayIcon; + VALUE(bool) UnreadNumbersInTrayIconDef; + KEY EnableNotifications; VALUE(bool) EnableNotificationsDef; diff --git a/src/librssguard/services/owncloud/gui/formeditowncloudaccount.cpp b/src/librssguard/services/owncloud/gui/formeditowncloudaccount.cpp index f3933fab8..001200230 100644 --- a/src/librssguard/services/owncloud/gui/formeditowncloudaccount.cpp +++ b/src/librssguard/services/owncloud/gui/formeditowncloudaccount.cpp @@ -111,18 +111,12 @@ void FormEditOwnCloudAccount::performTest() { else if (result.isLoaded()) { if (!SystemFactory::isVersionEqualOrNewer(result.version(), OWNCLOUD_MIN_VERSION)) { m_ui->m_lblTestResult->setStatus(WidgetWithStatus::StatusType::Error, - tr( - "Selected Nextcloud News server is running unsupported version %1. At least version %2 is required.").arg( - result.version(), - OWNCLOUD_MIN_VERSION), + tr("Installed version: %1, required at least: %2.").arg(result.version(), OWNCLOUD_MIN_VERSION), tr("Selected Nextcloud News server is running unsupported version.")); } else { m_ui->m_lblTestResult->setStatus(WidgetWithStatus::StatusType::Ok, - tr( - "Nextcloud News server is okay, running with version %1, while at least version %2 is required.").arg( - result.version(), - OWNCLOUD_MIN_VERSION), + tr("Installed version: %1, required at least: %2.").arg(result.version(), OWNCLOUD_MIN_VERSION), tr("Nextcloud News server is okay.")); } } diff --git a/src/librssguard/services/tt-rss/gui/formeditttrssaccount.cpp b/src/librssguard/services/tt-rss/gui/formeditttrssaccount.cpp index b8f2e2c64..b0e0b111b 100644 --- a/src/librssguard/services/tt-rss/gui/formeditttrssaccount.cpp +++ b/src/librssguard/services/tt-rss/gui/formeditttrssaccount.cpp @@ -134,28 +134,14 @@ void FormEditTtRssAccount::performTest() { } else if (result.apiLevel() < TTRSS_MINIMAL_API_LEVEL) { m_ui->m_lblTestResult->setStatus(WidgetWithStatus::StatusType::Error, - tr( - "Selected Tiny Tiny RSS server is running unsupported version of API (%1). At least API level %2 is required.").arg( - QString::number( - result - . - apiLevel()), - QString - :: - number(TTRSS_MINIMAL_API_LEVEL)), + tr("Installed version: %1, required at least: %2.").arg(QString::number(result.apiLevel()), + QString::number(TTRSS_MINIMAL_API_LEVEL)), tr("Selected Tiny Tiny RSS server is running unsupported version of API.")); } else { m_ui->m_lblTestResult->setStatus(WidgetWithStatus::StatusType::Ok, - tr( - "Tiny Tiny RSS server is okay, running with API level %1, while at least API level %2 is required.").arg( - QString::number( - result - . - apiLevel()), - QString - :: - number(TTRSS_MINIMAL_API_LEVEL)), + tr("Installed version: %1, required at least: %2.").arg(QString::number(result.apiLevel()), + QString::number(TTRSS_MINIMAL_API_LEVEL)), tr("Tiny Tiny RSS server is okay.")); } }