From 0bd53d6dc7b66fadbe83892482518612e5304937 Mon Sep 17 00:00:00 2001 From: BruebachL <44814898+BruebachL@users.noreply.github.com> Date: Wed, 9 Apr 2025 17:19:21 +0200 Subject: [PATCH] Try to find the card again without providerId when searching fails during swap card. (#5814) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Lukas BrĂ¼bach --- .../src/client/tabs/abstract_tab_deck_editor.cpp | 10 ++++++++-- cockatrice/src/client/tabs/abstract_tab_deck_editor.h | 4 ++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/cockatrice/src/client/tabs/abstract_tab_deck_editor.cpp b/cockatrice/src/client/tabs/abstract_tab_deck_editor.cpp index fe2148293..11572aba5 100644 --- a/cockatrice/src/client/tabs/abstract_tab_deck_editor.cpp +++ b/cockatrice/src/client/tabs/abstract_tab_deck_editor.cpp @@ -124,8 +124,13 @@ void AbstractTabDeckEditor::actSwapCard(CardInfoPtr info, QString zoneName) { QString providerId = CardDatabaseManager::getInstance()->getSetInfoForCard(info).getProperty("uuid"); QString collectorNumber = CardDatabaseManager::getInstance()->getSetInfoForCard(info).getProperty("num"); - deckDockWidget->swapCard( - deckDockWidget->deckModel->findCard(info->getName(), zoneName, providerId, collectorNumber)); + + QModelIndex foundCard = deckDockWidget->deckModel->findCard(info->getName(), zoneName, providerId, collectorNumber); + if (!foundCard.isValid()) { + foundCard = deckDockWidget->deckModel->findCard(info->getName(), zoneName); + } + + deckDockWidget->swapCard(foundCard); } /** @@ -357,6 +362,7 @@ bool AbstractTabDeckEditor::actSaveDeckAs() dialog.setDefaultSuffix("cod"); dialog.setNameFilters(DeckLoader::FILE_NAME_FILTERS); dialog.selectFile(getDeckList()->getName().trimmed()); + if (!dialog.exec()) return false; diff --git a/cockatrice/src/client/tabs/abstract_tab_deck_editor.h b/cockatrice/src/client/tabs/abstract_tab_deck_editor.h index 0a5f97f56..39699bee4 100644 --- a/cockatrice/src/client/tabs/abstract_tab_deck_editor.h +++ b/cockatrice/src/client/tabs/abstract_tab_deck_editor.h @@ -67,7 +67,7 @@ public: DeckEditorPrintingSelectorDockWidget *printingSelectorDockWidget; public slots: - void onDeckChanged(); + virtual void onDeckChanged(); void updateCard(CardInfoPtr _card); void actAddCard(CardInfoPtr info); void actAddCardToSideboard(CardInfoPtr info); @@ -90,7 +90,7 @@ protected slots: void cleanDeckAndResetModified(); virtual void actLoadDeck(); bool actSaveDeck(); - bool actSaveDeckAs(); + virtual bool actSaveDeckAs(); virtual void actLoadDeckFromClipboard(); void actEditDeckInClipboard(); void actEditDeckInClipboardRaw();