Fix cards being able to jump between side and mainboard

This commit is contained in:
ZeldaZach 2024-11-27 12:46:46 -05:00
parent 7fff7cfee9
commit 7ad2972c4d
No known key found for this signature in database

View file

@ -1,13 +1,11 @@
#include "deck_list_model.h" #include "deck_list_model.h"
#include "../game/cards/card_database.h"
#include "../game/cards/card_database_manager.h" #include "../game/cards/card_database_manager.h"
#include "../main.h" #include "../main.h"
#include "../settings/cache_settings.h" #include "../settings/cache_settings.h"
#include "deck_loader.h" #include "deck_loader.h"
#include <QBrush> #include <QBrush>
#include <QFile>
#include <QFont> #include <QFont>
#include <QPrinter> #include <QPrinter>
#include <QProgressDialog> #include <QProgressDialog>
@ -381,16 +379,17 @@ QModelIndex DeckListModel::addCard(const QString &cardName,
const QModelIndex parentIndex = nodeToIndex(cardTypeNode); const QModelIndex parentIndex = nodeToIndex(cardTypeNode);
auto *cardNode = dynamic_cast<DecklistModelCardNode *>( auto *cardNode = dynamic_cast<DecklistModelCardNode *>(
cardTypeNode->findCardChildByNameAndProviderId(cardName, cardInfoSet.getProperty("uuid"))); cardTypeNode->findCardChildByNameAndProviderId(cardName, cardInfoSet.getProperty("uuid")));
const auto cardSetName = cardInfoSet.getPtr().isNull() ? "" : cardInfoSet.getPtr()->getCorrectedShortName();
if (!cardNode) { if (!cardNode) {
auto *decklistCard = auto *decklistCard = deckList->addCard(cardInfo->getName(), zoneName, cardSetName,
deckList->addCard(cardInfo->getName(), zoneName, cardInfoSet.getPtr()->getCorrectedShortName(),
cardInfoSet.getProperty("num"), cardInfoSet.getProperty("uuid")); cardInfoSet.getProperty("num"), cardInfoSet.getProperty("uuid"));
beginInsertRows(parentIndex, static_cast<int>(cardTypeNode->size()), static_cast<int>(cardTypeNode->size())); beginInsertRows(parentIndex, static_cast<int>(cardTypeNode->size()), static_cast<int>(cardTypeNode->size()));
cardNode = new DecklistModelCardNode(decklistCard, cardTypeNode); cardNode = new DecklistModelCardNode(decklistCard, cardTypeNode);
endInsertRows(); endInsertRows();
} else { } else {
cardNode->setNumber(cardNode->getNumber() + 1); cardNode->setNumber(cardNode->getNumber() + 1);
cardNode->setCardSetShortName(cardInfoSet.getPtr()->getCorrectedShortName()); cardNode->setCardSetShortName(cardSetName);
cardNode->setCardCollectorNumber(cardInfoSet.getProperty("num")); cardNode->setCardCollectorNumber(cardInfoSet.getProperty("num"));
cardNode->setCardProviderId(cardInfoSet.getProperty("uuid")); cardNode->setCardProviderId(cardInfoSet.getProperty("uuid"));
deckList->updateDeckHash(); deckList->updateDeckHash();