diff --git a/localization/rssguard_en.ts b/localization/rssguard_en.ts
index 5bf372bb3..56aae8270 100644
--- a/localization/rssguard_en.ts
+++ b/localization/rssguard_en.ts
@@ -237,8 +237,13 @@ version by clicking this popup notification.
Open article in web browser
+
+
+ Mark all articles as read
+
+
-
+
%n feeds fetched
@@ -343,7 +348,7 @@ version by clicking this popup notification.
BaseToastNotification
-
+
Close this notification
@@ -5219,7 +5224,7 @@ Feedly is a secure space where you can privately organize and research the topic
-
+
Cannot insert article filter, because current database cannot return last inserted row ID.
diff --git a/src/librssguard/gui/notifications/articlelistnotification.cpp b/src/librssguard/gui/notifications/articlelistnotification.cpp
index 423b0521a..159dc233a 100644
--- a/src/librssguard/gui/notifications/articlelistnotification.cpp
+++ b/src/librssguard/gui/notifications/articlelistnotification.cpp
@@ -20,6 +20,7 @@ ArticleListNotification::ArticleListNotification(QWidget* parent)
m_ui.m_btnPreviousPage->setIcon(qApp->icons()->fromTheme(QSL("arrow-left"), QSL("stock_left")));
m_ui.m_btnOpenArticleList->setIcon(qApp->icons()->fromTheme(QSL("view-list-details")));
m_ui.m_btnOpenWebBrowser->setIcon(qApp->icons()->fromTheme(QSL("document-open")));
+ m_ui.m_btnMarkAllRead->setIcon(qApp->icons()->fromTheme(QSL("mail-mark-read")));
m_ui.m_treeArticles->setModel(m_model);
@@ -33,6 +34,7 @@ ArticleListNotification::ArticleListNotification(QWidget* parent)
&PlainToolButton::setEnabled);
connect(m_ui.m_btnNextPage, &PlainToolButton::clicked, m_model, &ArticleListNotificationModel::nextPage);
connect(m_ui.m_btnPreviousPage, &PlainToolButton::clicked, m_model, &ArticleListNotificationModel::previousPage);
+ connect(m_ui.m_btnMarkAllRead, &PlainToolButton::clicked, this, &ArticleListNotification::markAllRead);
connect(m_ui.m_treeArticles,
&QAbstractItemView::doubleClicked,
this,
@@ -113,6 +115,12 @@ void ArticleListNotification::openArticleInWebBrowser() {
qApp->web()->openUrlInExternalBrowser(msg.m_url);
}
+void ArticleListNotification::markAllRead() {
+ for (Feed* fd : m_newMessages.keys()) {
+ markAsRead(fd, m_newMessages.value(fd));
+ }
+}
+
void ArticleListNotification::markAsRead(Feed* feed, const QList& articles) {
ServiceRoot* acc = feed->getParentServiceRoot();
QStringList message_ids;
diff --git a/src/librssguard/gui/notifications/articlelistnotification.h b/src/librssguard/gui/notifications/articlelistnotification.h
index bcb52f7fc..171002bd7 100644
--- a/src/librssguard/gui/notifications/articlelistnotification.h
+++ b/src/librssguard/gui/notifications/articlelistnotification.h
@@ -28,6 +28,7 @@ class ArticleListNotification : public BaseToastNotification {
void onMessageSelected(const QModelIndex& current, const QModelIndex& previous);
void showFeed(int index);
void openArticleInWebBrowser();
+ void markAllRead();
private:
void markAsRead(Feed* feed, const QList& articles);
diff --git a/src/librssguard/gui/notifications/articlelistnotification.ui b/src/librssguard/gui/notifications/articlelistnotification.ui
index 1ad424142..dccd7e787 100644
--- a/src/librssguard/gui/notifications/articlelistnotification.ui
+++ b/src/librssguard/gui/notifications/articlelistnotification.ui
@@ -138,7 +138,7 @@
-
- Open article in article list
+ Mark all articles as read