From 25f35227e4681a5a98046e89347d8867e5809de7 Mon Sep 17 00:00:00 2001 From: Martin Rotter Date: Mon, 12 May 2025 09:32:44 +0200 Subject: [PATCH] fix build --- .../scripts/github-actions/build-linux-mac.sh | 2 +- .../services/abstract/category.cpp | 9 +++++++-- .../services/abstract/rootitem.cpp | 20 +++++++++++++++++++ src/librssguard/services/abstract/rootitem.h | 1 + 4 files changed, 29 insertions(+), 3 deletions(-) diff --git a/resources/scripts/github-actions/build-linux-mac.sh b/resources/scripts/github-actions/build-linux-mac.sh index 188d7a9cb..871a63303 100755 --- a/resources/scripts/github-actions/build-linux-mac.sh +++ b/resources/scripts/github-actions/build-linux-mac.sh @@ -40,7 +40,7 @@ if [ $is_linux = true ]; then sudo apt-get -qy install appstream cmake ninja-build openssl libssl-dev sudo apt-get -qy install qt6-5compat-dev qt6-base-dev-tools qt6-image-formats-plugins qt6-multimedia-dev qt6-positioning-dev qt6-webengine-dev linguist-qt6 qt6-tools-dev - sudo apt-get -qy install libmpv-dev libssl-dev libsqlite3-dev alsa-base alsa-oss alsa-tools alsa-utils gstreamer1.0-alsa gstreamer1.0-plugins-bad gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-ugly gstreamer1.0-pulseaudio gstreamer1.0-qt6 gstreamer1.0-vaapi gstreamer1.0-x + sudo apt-get -qy install libmpv-dev libssl-dev libsqlite3-dev alsa-base alsa-oss alsa-tools alsa-utils gstreamer1.0-alsa gstreamer1.0-plugins-bad gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-ugly gstreamer1.0-pulseaudio gstreamer1.0-qt6 gstreamer1.0-vaapi gstreamer1.0-x libasound2-plugins libasound2-plugins-extra libasound2-dev else diff --git a/src/librssguard/services/abstract/category.cpp b/src/librssguard/services/abstract/category.cpp index 6da2bed93..3866611d1 100644 --- a/src/librssguard/services/abstract/category.cpp +++ b/src/librssguard/services/abstract/category.cpp @@ -71,6 +71,11 @@ bool Category::markAsReadUnread(RootItem::ReadStatus status) { QString Category::additionalTooltip() const { return tr("Number of feeds: %1\n" - "Number of categories: %2") - .arg(QString::number(getSubTreeFeeds().size()), QString::number(getSubTreeCategories().size() - 1)); + "Number of categories: %2\n" + "Number of disabled feeds: %3") + .arg(QString::number(getSubTreeFeeds().size()), + QString::number(getSubTreeCategories().size() - 1), + QString::number(getSubTree([](const RootItem* ri) { + return ri->kind() == RootItem::Kind::Feed && ri->toFeed()->isSwitchedOff(); + }).size())); } diff --git a/src/librssguard/services/abstract/rootitem.cpp b/src/librssguard/services/abstract/rootitem.cpp index 310fd9b10..20a78b55c 100644 --- a/src/librssguard/services/abstract/rootitem.cpp +++ b/src/librssguard/services/abstract/rootitem.cpp @@ -285,6 +285,26 @@ QList RootItem::getSubTree() const { return children; } +QList RootItem::getSubTree(std::function tester) const { + QList children; + QList traversable_items; + + traversable_items.append(const_cast(this)); + + // Iterate all nested items. + while (!traversable_items.isEmpty()) { + RootItem* active_item = traversable_items.takeFirst(); + + if (tester(active_item)) { + children.append(active_item); + } + + traversable_items.append(active_item->childItems()); + } + + return children; +} + QList RootItem::getSubTree(RootItem::Kind kind_of_item) const { QList children; QList traversable_items; diff --git a/src/librssguard/services/abstract/rootitem.h b/src/librssguard/services/abstract/rootitem.h index 3ee3061a3..39db48bec 100644 --- a/src/librssguard/services/abstract/rootitem.h +++ b/src/librssguard/services/abstract/rootitem.h @@ -144,6 +144,7 @@ class RSSGUARD_DLLSPEC RootItem : public QObject { // Returns flat list of all items from subtree where this item is a root. // Returned list includes this item too. QList getSubTree() const; + QList getSubTree(std::function tester) const; QList getSubTree(RootItem::Kind kind_of_item) const; QList getSubTreeCategories() const;