From d0df3d00c1b35f9ff1e7ff1f74bd0fa721d0230d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lukas=20Br=C3=BCbach?= Date: Wed, 9 Apr 2025 16:56:53 +0200 Subject: [PATCH] Try to find the card again without providerId when searching fails during swap card. --- .../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();