From ea716d3e0c8b0250b5ce9e6f42bc91af6212af12 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lukas=20Br=C3=BCbach?= Date: Tue, 14 Jan 2025 16:11:05 +0100 Subject: [PATCH] Properly check if a duplicate already exists in the list, no longer break loop. --- .../printing_selector_card_sorting_widget.cpp | 5 +++-- cockatrice/src/game/cards/card_database.h | 5 +++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/cockatrice/src/client/ui/widgets/printing_selector/printing_selector_card_sorting_widget.cpp b/cockatrice/src/client/ui/widgets/printing_selector/printing_selector_card_sorting_widget.cpp index 003610f40..734c5cec7 100644 --- a/cockatrice/src/client/ui/widgets/printing_selector/printing_selector_card_sorting_widget.cpp +++ b/cockatrice/src/client/ui/widgets/printing_selector/printing_selector_card_sorting_widget.cpp @@ -103,8 +103,9 @@ QList PrintingSelectorCardSortingWidget::sortSets(const CardInfo for (auto it = cardInfoPerSets.begin(); it != cardInfoPerSets.end(); ++it) { for (const auto &cardInfoPerSet : it.value()) { if (cardInfoPerSet.getPtr() == set) { - sortedCardInfoPerSets << cardInfoPerSet; - break; + if (!sortedCardInfoPerSets.contains(cardInfoPerSet)) { + sortedCardInfoPerSets << cardInfoPerSet; + } } } } diff --git a/cockatrice/src/game/cards/card_database.h b/cockatrice/src/game/cards/card_database.h index a2164bad9..a88f9671c 100644 --- a/cockatrice/src/game/cards/card_database.h +++ b/cockatrice/src/game/cards/card_database.h @@ -144,6 +144,11 @@ public: explicit CardInfoPerSet(const CardSetPtr &_set = QSharedPointer(nullptr)); ~CardInfoPerSet() = default; + bool operator==(const CardInfoPerSet &other) const + { + return this->set == other.set && this->properties == other.properties; + } + private: CardSetPtr set; // per-set card properties;