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."));
}
}