From 6d0b511e3ff38e0dad57e88e5105151a0421cd4a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Br=C3=BCbach=2C=20Lukas?= Date: Sat, 29 Nov 2025 23:56:47 +0100 Subject: [PATCH] [PrintingSelector] Emit deckModified when using bulk selection --- .../interface/widgets/dialogs/dlg_select_set_for_cards.cpp | 5 +++++ .../src/interface/widgets/dialogs/dlg_select_set_for_cards.h | 1 + .../interface/widgets/printing_selector/printing_selector.h | 5 +++++ .../printing_selector_card_selection_widget.cpp | 3 +++ 4 files changed, 14 insertions(+) diff --git a/cockatrice/src/interface/widgets/dialogs/dlg_select_set_for_cards.cpp b/cockatrice/src/interface/widgets/dialogs/dlg_select_set_for_cards.cpp index 893c84512..8a7ddc725 100644 --- a/cockatrice/src/interface/widgets/dialogs/dlg_select_set_for_cards.cpp +++ b/cockatrice/src/interface/widgets/dialogs/dlg_select_set_for_cards.cpp @@ -157,12 +157,16 @@ void DlgSelectSetForCards::actOK() model->addCard(ExactCard(cardInfo, printing), DECK_ZONE_MAIN); } } + if (!modifiedSetsAndCardsMap.isEmpty()) { + emit deckModified(); + } accept(); } void DlgSelectSetForCards::actClear() { DeckLoader::clearSetNamesAndNumbers(model->getDeckList()); + emit deckModified(); accept(); } @@ -170,6 +174,7 @@ void DlgSelectSetForCards::actSetAllToPreferred() { DeckLoader::clearSetNamesAndNumbers(model->getDeckList()); DeckLoader::setProviderIdToPreferredPrinting(model->getDeckList()); + emit deckModified(); accept(); } diff --git a/cockatrice/src/interface/widgets/dialogs/dlg_select_set_for_cards.h b/cockatrice/src/interface/widgets/dialogs/dlg_select_set_for_cards.h index 335b86d2c..5b1c246c7 100644 --- a/cockatrice/src/interface/widgets/dialogs/dlg_select_set_for_cards.h +++ b/cockatrice/src/interface/widgets/dialogs/dlg_select_set_for_cards.h @@ -37,6 +37,7 @@ public: signals: void widgetOrderChanged(); void orderChanged(); + void deckModified(); public slots: void actOK(); diff --git a/cockatrice/src/interface/widgets/printing_selector/printing_selector.h b/cockatrice/src/interface/widgets/printing_selector/printing_selector.h index 7130e436c..fbe3b5b06 100644 --- a/cockatrice/src/interface/widgets/printing_selector/printing_selector.h +++ b/cockatrice/src/interface/widgets/printing_selector/printing_selector.h @@ -40,6 +40,11 @@ public: return deckModel; } + [[nodiscard]] AbstractTabDeckEditor *getDeckEditor() const + { + return deckEditor; + } + public slots: void retranslateUi(); void updateDisplay(); diff --git a/cockatrice/src/interface/widgets/printing_selector/printing_selector_card_selection_widget.cpp b/cockatrice/src/interface/widgets/printing_selector/printing_selector_card_selection_widget.cpp index 57d5fd895..4ce0f62f6 100644 --- a/cockatrice/src/interface/widgets/printing_selector/printing_selector_card_selection_widget.cpp +++ b/cockatrice/src/interface/widgets/printing_selector/printing_selector_card_selection_widget.cpp @@ -1,6 +1,7 @@ #include "printing_selector_card_selection_widget.h" #include "../../../interface/widgets/dialogs/dlg_select_set_for_cards.h" +#include "../tabs/abstract_tab_deck_editor.h" /** * @brief Constructs a PrintingSelectorCardSelectionWidget for navigating through cards in the deck. @@ -48,6 +49,8 @@ void PrintingSelectorCardSelectionWidget::connectSignals() void PrintingSelectorCardSelectionWidget::selectSetForCards() { auto *setSelectionDialog = new DlgSelectSetForCards(nullptr, parent->getDeckModel()); + connect(setSelectionDialog, &DlgSelectSetForCards::deckModified, parent->getDeckEditor(), + &AbstractTabDeckEditor::onDeckModified); if (!setSelectionDialog->exec()) { return; }