From f7e71a086888e63136f45b59f9015da2f770c243 Mon Sep 17 00:00:00 2001 From: RickyRister <42636155+RickyRister@users.noreply.github.com> Date: Mon, 19 Jan 2026 00:27:58 -0800 Subject: [PATCH] [DeckList] Add optional restrictToZone param to getZoneNodes (#6534) --- .../libcockatrice/deck_list/deck_list.cpp | 4 ++-- .../libcockatrice/deck_list/deck_list.h | 2 +- .../libcockatrice/deck_list/deck_list_node_tree.cpp | 10 +++++----- .../libcockatrice/deck_list/deck_list_node_tree.h | 7 ++++++- 4 files changed, 14 insertions(+), 9 deletions(-) diff --git a/libcockatrice_deck_list/libcockatrice/deck_list/deck_list.cpp b/libcockatrice_deck_list/libcockatrice/deck_list/deck_list.cpp index 173988796..3d1070f15 100644 --- a/libcockatrice_deck_list/libcockatrice/deck_list/deck_list.cpp +++ b/libcockatrice_deck_list/libcockatrice/deck_list/deck_list.cpp @@ -464,9 +464,9 @@ QList DeckList::getCardNodes(const QSet &rest return tree.getCardNodes(restrictToZones); } -QList DeckList::getZoneNodes() const +QList DeckList::getZoneNodes(const QSet &restrictToZones) const { - return tree.getZoneNodes(); + return tree.getZoneNodes(restrictToZones); } int DeckList::getSideboardSize() const diff --git a/libcockatrice_deck_list/libcockatrice/deck_list/deck_list.h b/libcockatrice_deck_list/libcockatrice/deck_list/deck_list.h index 8f7efbe2f..91e56fc9f 100644 --- a/libcockatrice_deck_list/libcockatrice/deck_list/deck_list.h +++ b/libcockatrice_deck_list/libcockatrice/deck_list/deck_list.h @@ -224,7 +224,7 @@ public: QStringList getCardList(const QSet &restrictToZones = {}) const; QList getCardRefList(const QSet &restrictToZones = {}) const; QList getCardNodes(const QSet &restrictToZones = {}) const; - QList getZoneNodes() const; + QList getZoneNodes(const QSet &restrictToZones = {}) const; int getSideboardSize() const; DecklistCardNode *addCard(const QString &cardName, diff --git a/libcockatrice_deck_list/libcockatrice/deck_list/deck_list_node_tree.cpp b/libcockatrice_deck_list/libcockatrice/deck_list/deck_list_node_tree.cpp index 8f651a061..644e0851a 100644 --- a/libcockatrice_deck_list/libcockatrice/deck_list/deck_list_node_tree.cpp +++ b/libcockatrice_deck_list/libcockatrice/deck_list/deck_list_node_tree.cpp @@ -41,10 +41,7 @@ QList DecklistNodeTree::getCardNodes(const QSet result; - for (auto *zoneNode : getZoneNodes()) { - if (!restrictToZones.isEmpty() && !restrictToZones.contains(zoneNode->getName())) { - continue; - } + for (auto *zoneNode : getZoneNodes(restrictToZones)) { for (auto *cardNode : *zoneNode) { auto *cardCardNode = dynamic_cast(cardNode); if (cardCardNode) { @@ -56,13 +53,16 @@ QList DecklistNodeTree::getCardNodes(const QSet DecklistNodeTree::getZoneNodes() const +QList DecklistNodeTree::getZoneNodes(const QSet &restrictToZones) const { QList zones; for (auto *node : *root) { InnerDecklistNode *currentZone = dynamic_cast(node); if (!currentZone) continue; + if (!restrictToZones.isEmpty() && !restrictToZones.contains(currentZone->getName())) { + continue; + } zones.append(currentZone); } diff --git a/libcockatrice_deck_list/libcockatrice/deck_list/deck_list_node_tree.h b/libcockatrice_deck_list/libcockatrice/deck_list/deck_list_node_tree.h index 5cfd4944d..6de760634 100644 --- a/libcockatrice_deck_list/libcockatrice/deck_list/deck_list_node_tree.h +++ b/libcockatrice_deck_list/libcockatrice/deck_list/deck_list_node_tree.h @@ -45,7 +45,12 @@ public: */ QList getCardNodes(const QSet &restrictToZones = {}) const; - QList getZoneNodes() const; + /** + * Gets all zone nodes in the tree + * @param restrictToZones If not empty, only get the zone nodes with these names. + * @return A QList containing all the zone nodes in the tree. + */ + QList getZoneNodes(const QSet &restrictToZones = {}) const; /** * @brief Computes the deck hash