diff --git a/resources/text/CHANGELOG b/resources/text/CHANGELOG
index 1e3e6114f..be8398bf9 100644
--- a/resources/text/CHANGELOG
+++ b/resources/text/CHANGELOG
@@ -1,6 +1,7 @@
[1.9.9.7]
+- [#] Custom counts of messages in feed list (issue #14).
- [~] Message list optimizations.
- [+] Feed list categories exapand status is now persistent.
- [+] System-wide external web browser can now be used.
diff --git a/src/core/feedsmodelstandardcategory.cpp b/src/core/feedsmodelstandardcategory.cpp
index d74697f11..aeb79f253 100755
--- a/src/core/feedsmodelstandardcategory.cpp
+++ b/src/core/feedsmodelstandardcategory.cpp
@@ -20,6 +20,7 @@
#include "core/defs.h"
#include "core/databasefactory.h"
#include "core/textfactory.h"
+#include "core/settings.h"
#include "gui/iconthemefactory.h"
#include "gui/iconfactory.h"
@@ -81,7 +82,11 @@ QVariant FeedsModelStandardCategory::data(int column, int role) const {
return m_title;
}
else if (column == FDS_MODEL_COUNTS_INDEX) {
- return QString("(%1)").arg(QString::number(countOfUnreadMessages()));
+ return Settings::instance()->value(APP_CFG_FEEDS,
+ "count_format",
+ "(%unread)").toString()
+ .replace("%unread", QString::number(countOfUnreadMessages()))
+ .replace("%all", QString::number(countOfAllMessages()));
}
else {
return QVariant();
diff --git a/src/core/feedsmodelstandardfeed.cpp b/src/core/feedsmodelstandardfeed.cpp
index 1dc925005..4067dcdf9 100755
--- a/src/core/feedsmodelstandardfeed.cpp
+++ b/src/core/feedsmodelstandardfeed.cpp
@@ -194,9 +194,11 @@ QVariant FeedsModelStandardFeed::data(int column, int role) const {
return m_title;
}
else if (column == FDS_MODEL_COUNTS_INDEX) {
- // TODO: Changeable text.
- return QString("(%1)").arg(QString::number(countOfUnreadMessages()));
- //QString::number(countOfAllMessages()));
+ return Settings::instance()->value(APP_CFG_FEEDS,
+ "count_format",
+ "(%unread)").toString()
+ .replace("%unread", QString::number(countOfUnreadMessages()))
+ .replace("%all", QString::number(countOfAllMessages()));
}
else {
return QVariant();
diff --git a/src/gui/formsettings.cpp b/src/gui/formsettings.cpp
index 3e88da3f3..4adbfce4a 100755
--- a/src/gui/formsettings.cpp
+++ b/src/gui/formsettings.cpp
@@ -26,6 +26,7 @@
#include "core/dynamicshortcuts.h"
#include "core/webbrowsernetworkaccessmanager.h"
#include "core/silentnetworkaccessmanager.h"
+#include "core/feedsmodel.h"
#include "gui/iconthemefactory.h"
#include "gui/skinfactory.h"
#include "gui/systemtrayicon.h"
@@ -197,6 +198,8 @@ void FormSettings::loadFeedsMessages() {
m_ui->m_spinAutoUpdateInterval->setValue(Settings::instance()->value(APP_CFG_FEEDS, "auto_update_interval", DEFAULT_AUTO_UPDATE_INTERVAL).toInt());
m_ui->m_spinFeedUpdateTimeout->setValue(Settings::instance()->value(APP_CFG_FEEDS, "feed_update_timeout", DOWNLOAD_TIMEOUT).toInt());
m_ui->m_checkUpdateAllFeedsOnStartup->setChecked(Settings::instance()->value(APP_CFG_FEEDS, "feeds_update_on_startup", false).toBool());
+ m_ui->m_cmbCountsFeedList->addItems(QStringList() << "(%unread)" << "[%unread]" << "%unread/%all" << "%unread-%all" << "[%unread|%all]");
+ m_ui->m_cmbCountsFeedList->setCurrentText(Settings::instance()->value(APP_CFG_FEEDS, "count_format", "(%unread)").toString());
}
void FormSettings::saveFeedsMessages() {
@@ -206,8 +209,10 @@ void FormSettings::saveFeedsMessages() {
Settings::instance()->setValue(APP_CFG_FEEDS, "auto_update_interval", m_ui->m_spinAutoUpdateInterval->value());
Settings::instance()->setValue(APP_CFG_FEEDS, "feed_update_timeout", m_ui->m_spinFeedUpdateTimeout->value());
Settings::instance()->setValue(APP_CFG_FEEDS, "feeds_update_on_startup", m_ui->m_checkUpdateAllFeedsOnStartup->isChecked());
+ Settings::instance()->setValue(APP_CFG_FEEDS, "count_format", m_ui->m_cmbCountsFeedList->currentText());
FormMain::instance()->tabWidget()->feedMessageViewer()->feedsView()->updateAutoUpdateStatus();
+ FormMain::instance()->tabWidget()->feedMessageViewer()->feedsView()->sourceModel()->reloadWholeLayout();
}
void FormSettings::displayProxyPassword(int state) {
diff --git a/src/gui/formsettings.ui b/src/gui/formsettings.ui
index c656bad80..07d017b2d 100644
--- a/src/gui/formsettings.ui
+++ b/src/gui/formsettings.ui
@@ -17,7 +17,7 @@
-
- 5
+ 6
@@ -633,7 +633,7 @@ Authors of this application are NOT responsible for lost data.
-
- 1
+ 0
@@ -974,7 +974,7 @@ Authors of this application are NOT responsible for lost data.
- Feeds
+ Feeds && categories
@@ -1039,6 +1039,26 @@ Authors of this application are NOT responsible for lost data.
+ -
+
+
+ Message count format in feed list
+
+
+
+ -
+
+
+ Enter format for count of messages displayed next to each feed/category in feed list. Use "%all" and "%unread" placeholders.
+
+
+ true
+
+
+
+
+
+