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