diff --git a/src/librssguard/core/feeddownloader.cpp b/src/librssguard/core/feeddownloader.cpp index 234b01b36..0e1913fa4 100644 --- a/src/librssguard/core/feeddownloader.cpp +++ b/src/librssguard/core/feeddownloader.cpp @@ -391,7 +391,7 @@ void FeedDownloader::updateOneFeed(ServiceRoot* acc, << " stored in DB."; if (updated_messages.first > 0) { - m_results.appendUpdatedFeed({feed->title(), updated_messages.first}); + m_results.appendUpdatedFeed({feed, updated_messages.first}); } } catch (const FeedFetchException& feed_ex) { @@ -500,7 +500,7 @@ QString FeedDownloadResults::overview(int how_many_feeds) const { QStringList result; for (int i = 0, number_items_output = qMin(how_many_feeds, m_updatedFeeds.size()); i < number_items_output; i++) { - result.append(m_updatedFeeds.at(i).first + QSL(": ") + QString::number(m_updatedFeeds.at(i).second)); + result.append(m_updatedFeeds.at(i).first->title() + QSL(": ") + QString::number(m_updatedFeeds.at(i).second)); } QString res_str = result.join(QSL("\n")); @@ -512,14 +512,14 @@ QString FeedDownloadResults::overview(int how_many_feeds) const { return res_str; } -void FeedDownloadResults::appendUpdatedFeed(const QPair& feed) { +void FeedDownloadResults::appendUpdatedFeed(const QPair& feed) { m_updatedFeeds.append(feed); } void FeedDownloadResults::sort() { std::sort(m_updatedFeeds.begin(), m_updatedFeeds.end(), - [](const QPair& lhs, const QPair& rhs) { + [](const QPair& lhs, const QPair& rhs) { return lhs.second > rhs.second; }); } @@ -528,6 +528,6 @@ void FeedDownloadResults::clear() { m_updatedFeeds.clear(); } -QList> FeedDownloadResults::updatedFeeds() const { +QList> FeedDownloadResults::updatedFeeds() const { return m_updatedFeeds; } diff --git a/src/librssguard/core/feeddownloader.h b/src/librssguard/core/feeddownloader.h index 8041864eb..600e8291e 100644 --- a/src/librssguard/core/feeddownloader.h +++ b/src/librssguard/core/feeddownloader.h @@ -18,16 +18,16 @@ class QMutex; // Represents results of batch feed updates. class FeedDownloadResults { public: - QList> updatedFeeds() const; + QList> updatedFeeds() const; QString overview(int how_many_feeds) const; - void appendUpdatedFeed(const QPair& feed); + void appendUpdatedFeed(const QPair& feed); void sort(); void clear(); private: // QString represents title if the feed, int represents count of newly downloaded messages. - QList> m_updatedFeeds; + QList> m_updatedFeeds; }; // This class offers means to "update" feeds and "special" categories. diff --git a/src/librssguard/miscellaneous/application.cpp b/src/librssguard/miscellaneous/application.cpp index 962b33095..a779e7db5 100644 --- a/src/librssguard/miscellaneous/application.cpp +++ b/src/librssguard/miscellaneous/application.cpp @@ -890,7 +890,12 @@ void Application::onFeedUpdatesProgress(const Feed* feed, int current, int total } void Application::onFeedUpdatesFinished(const FeedDownloadResults& results) { - if (!results.updatedFeeds().isEmpty()) { + auto fds = results.updatedFeeds(); + bool some_unquiet_feed = boolinq::from(fds).any([](const QPair& fd) { + return !fd.first->isQuiet(); + }); + + if (some_unquiet_feed) { // Now, inform about results via GUI message/notification. qApp->showGuiMessage(Notification::Event::NewUnreadArticlesFetched, {tr("Unread articles fetched"), results.overview(10), QSystemTrayIcon::MessageIcon::NoIcon}); diff --git a/src/librssguard/miscellaneous/feedreader.cpp b/src/librssguard/miscellaneous/feedreader.cpp index 73f4c04ff..0e7727ab4 100644 --- a/src/librssguard/miscellaneous/feedreader.cpp +++ b/src/librssguard/miscellaneous/feedreader.cpp @@ -336,11 +336,15 @@ void FeedReader::executeNextAutoUpdate() { // Request update for given feeds. updateFeeds(feeds_for_update); - // NOTE: OSD/bubble informing about performing of scheduled update can be shown now. - qApp->showGuiMessage(Notification::Event::ArticlesFetchingStarted, - {tr("Starting auto-download of some feeds' articles"), - tr("I will auto-download new articles for %n feed(s).", nullptr, feeds_for_update.size()), - QSystemTrayIcon::MessageIcon::Information}); + if (boolinq::from(feeds_for_update).any([](const Feed* fd) { + return !fd->isQuiet(); + })) { + // NOTE: OSD/bubble informing about performing of scheduled update can be shown now. + qApp->showGuiMessage(Notification::Event::ArticlesFetchingStarted, + {tr("Starting auto-download of some feeds' articles"), + tr("I will auto-download new articles for %n feed(s).", nullptr, feeds_for_update.size()), + QSystemTrayIcon::MessageIcon::Information}); + } } }