From ff3e6796cf1c2f4a78db945086565a1861cf0308 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lukas=20Br=C3=BCbach?= Date: Mon, 18 Nov 2024 23:47:36 +0100 Subject: [PATCH] Refactor setCode to cardUUID and introduce new cardSetShortName field. --- .../src/client/tabs/tab_deck_editor.cpp | 2 +- cockatrice/src/deck/deck_list_model.cpp | 26 +++++++--- cockatrice/src/deck/deck_list_model.h | 12 ++++- common/decklist.cpp | 29 ++++++----- common/decklist.h | 51 ++++++++++++++----- 5 files changed, 85 insertions(+), 35 deletions(-) diff --git a/cockatrice/src/client/tabs/tab_deck_editor.cpp b/cockatrice/src/client/tabs/tab_deck_editor.cpp index fa69ef5ab..cdba48e11 100644 --- a/cockatrice/src/client/tabs/tab_deck_editor.cpp +++ b/cockatrice/src/client/tabs/tab_deck_editor.cpp @@ -726,7 +726,7 @@ void TabDeckEditor::updateCardInfoRight(const QModelIndex ¤t, const QModel return; if (!current.model()->hasChildren(current.sibling(current.row(), 0))) { cardInfo->setCard(current.sibling(current.row(), 1).data().toString(), - current.sibling(current.row(), 2).data().toString()); + current.sibling(current.row(), 4).data().toString()); } } diff --git a/cockatrice/src/deck/deck_list_model.cpp b/cockatrice/src/deck/deck_list_model.cpp index 117043420..2cda6344c 100644 --- a/cockatrice/src/deck/deck_list_model.cpp +++ b/cockatrice/src/deck/deck_list_model.cpp @@ -79,7 +79,7 @@ int DeckListModel::rowCount(const QModelIndex &parent) const int DeckListModel::columnCount(const QModelIndex & /*parent*/) const { - return 4; + return 5; } QVariant DeckListModel::data(const QModelIndex &index, int role) const @@ -114,11 +114,14 @@ QVariant DeckListModel::data(const QModelIndex &index, int role) const return node->getName(); } case 2: { - return node->getCardUuid(); + return node->getCardSetShortName(); } case 3: { return node->getCardCollectorNumber(); } + case 4: { + return node->getCardUuid(); + } default: return {}; } @@ -143,9 +146,11 @@ QVariant DeckListModel::data(const QModelIndex &index, int role) const case 1: return card->getName(); case 2: - return card->getCardUuid(); + return card->getCardSetShortName(); case 3: return card->getCardCollectorNumber(); + case 4: + return card->getCardUuid(); default: return {}; } @@ -182,6 +187,8 @@ QVariant DeckListModel::headerData(const int section, const Qt::Orientation orie return tr("Set"); case 3: return tr("Number"); + case 4: + return tr("UUID"); default: return {}; } @@ -244,11 +251,14 @@ bool DeckListModel::setData(const QModelIndex &index, const QVariant &value, con node->setName(value.toString()); break; case 2: - node->setCardSetCode(value.toString()); + node->setCardSetShortName(value.toString()); break; case 3: node->setCardCollectorNumber(value.toString()); break; + case 4: + node->setCardUUID(value.toString()); + break; default: return false; } @@ -375,15 +385,17 @@ QModelIndex DeckListModel::addCard(const QString &cardName, auto *cardNode = dynamic_cast( cardTypeNode->findCardChildByNameAndUUID(cardName, cardInfoSet.getProperty("uuid"))); if (!cardNode) { - auto *decklistCard = deckList->addCard(cardInfo->getName(), zoneName, cardInfoSet.getProperty("uuid"), - cardInfoSet.getProperty("num")); + auto *decklistCard = + deckList->addCard(cardInfo->getName(), zoneName, cardInfoSet.getPtr()->getCorrectedShortName(), + cardInfoSet.getProperty("num"), cardInfoSet.getProperty("uuid")); beginInsertRows(parentIndex, static_cast(cardTypeNode->size()), static_cast(cardTypeNode->size())); cardNode = new DecklistModelCardNode(decklistCard, cardTypeNode); endInsertRows(); } else { cardNode->setNumber(cardNode->getNumber() + 1); - cardNode->setCardSetCode(cardInfoSet.getProperty("uuid")); + cardNode->setCardSetShortName(cardInfoSet.getPtr()->getCorrectedShortName()); cardNode->setCardCollectorNumber(cardInfoSet.getProperty("num")); + cardNode->setCardUUID(cardInfoSet.getProperty("uuid")); deckList->updateDeckHash(); } sort(lastKnownColumn, lastKnownOrder); diff --git a/cockatrice/src/deck/deck_list_model.h b/cockatrice/src/deck/deck_list_model.h index af8e7a619..79edd220e 100644 --- a/cockatrice/src/deck/deck_list_model.h +++ b/cockatrice/src/deck/deck_list_model.h @@ -42,9 +42,17 @@ public: { return dataNode->getCardUuid(); } - void setCardSetCode(const QString &_cardSetName) override + void setCardUUID(const QString &_cardUUID) override { - dataNode->setCardSetCode(_cardSetName); + dataNode->setCardUUID(_cardUUID); + } + QString getCardSetShortName() const override + { + return dataNode->getCardSetShortName(); + } + void setCardSetShortName(const QString &_cardSetShortName) override + { + dataNode->setCardSetShortName(_cardSetShortName); } QString getCardCollectorNumber() const override { diff --git a/common/decklist.cpp b/common/decklist.cpp index cccb30f8e..ee406b77d 100644 --- a/common/decklist.cpp +++ b/common/decklist.cpp @@ -88,8 +88,8 @@ int AbstractDecklistNode::depth() const } InnerDecklistNode::InnerDecklistNode(InnerDecklistNode *other, InnerDecklistNode *_parent) - : AbstractDecklistNode(_parent), name(other->getName()), cardSetCode(other->getCardUuid()), - cardCollectorNumber(other->getCardCollectorNumber()) + : AbstractDecklistNode(_parent), name(other->getName()), cardSetShortName(other->getCardSetShortName()), + cardCollectorNumber(other->getCardCollectorNumber()), cardUUID(other->getCardUuid()) { for (int i = 0; i < other->size(); ++i) { auto *inner = dynamic_cast(other->at(i)); @@ -141,7 +141,8 @@ void InnerDecklistNode::clearTree() DecklistCardNode::DecklistCardNode(DecklistCardNode *other, InnerDecklistNode *_parent) : AbstractDecklistCardNode(_parent), name(other->getName()), number(other->getNumber()), - cardSetName(other->getCardUuid()), cardSetNumber(other->getCardCollectorNumber()) + cardSetShortName(other->getCardSetShortName()), cardSetNumber(other->getCardCollectorNumber()), + cardUUID(other->getCardUuid()) { } @@ -280,10 +281,10 @@ bool InnerDecklistNode::readElement(QXmlStreamReader *xml) InnerDecklistNode *newZone = new InnerDecklistNode(xml->attributes().value("name").toString(), this); newZone->readElement(xml); } else if (childName == "card") { - DecklistCardNode *newCard = new DecklistCardNode(xml->attributes().value("name").toString(), - xml->attributes().value("number").toString().toInt(), - this, xml->attributes().value("uuid").toString(), - xml->attributes().value("collectorNumber").toString()); + DecklistCardNode *newCard = new DecklistCardNode( + xml->attributes().value("name").toString(), xml->attributes().value("number").toString().toInt(), + this, xml->attributes().value("setShortName").toString(), + xml->attributes().value("collectorNumber").toString(), xml->attributes().value("uuid").toString()); newCard->readElement(xml); } } else if (xml->isEndElement() && (childName == "zone")) @@ -317,11 +318,14 @@ void AbstractDecklistCardNode::writeElement(QXmlStreamWriter *xml) xml->writeAttribute("number", QString::number(getNumber())); xml->writeAttribute("name", getName()); + if (getCardSetShortName() != "") { + xml->writeAttribute("setShortName", getCardSetShortName()); + } + if (getCardCollectorNumber() != "") { + xml->writeAttribute("collectorNumber", getCardCollectorNumber()); + } if (getCardUuid() != "") { xml->writeAttribute("uuid", getCardUuid()); - if (getCardCollectorNumber() != "") { - xml->writeAttribute("collectorNumber", getCardCollectorNumber()); - } } } @@ -763,14 +767,15 @@ int DeckList::getSideboardSize() const DecklistCardNode *DeckList::addCard(const QString &cardName, const QString &zoneName, const QString &cardSetName, - const QString &cardSetCollectorNumber) + const QString &cardSetCollectorNumber, + const QString &cardUUID) { auto *zoneNode = dynamic_cast(root->findChild(zoneName)); if (zoneNode == nullptr) { zoneNode = new InnerDecklistNode(zoneName, root); } - auto *node = new DecklistCardNode(cardName, 1, zoneNode, cardSetName, cardSetCollectorNumber); + auto *node = new DecklistCardNode(cardName, 1, zoneNode, cardSetName, cardSetCollectorNumber, cardUUID); updateDeckHash(); return node; diff --git a/common/decklist.h b/common/decklist.h index f5734afd2..15c570e59 100644 --- a/common/decklist.h +++ b/common/decklist.h @@ -64,6 +64,7 @@ public: } virtual QString getName() const = 0; virtual QString getCardUuid() const = 0; + virtual QString getCardSetShortName() const = 0; virtual QString getCardCollectorNumber() const = 0; InnerDecklistNode *getParent() const { @@ -80,8 +81,9 @@ public: class InnerDecklistNode : public AbstractDecklistNode, public QList { QString name; - QString cardSetCode; + QString cardSetShortName; QString cardCollectorNumber; + QString cardUUID; class compareFunctor; public: @@ -104,11 +106,19 @@ public: [[nodiscard]] virtual QString getVisibleName() const; [[nodiscard]] QString getCardUuid() const override { - return cardSetCode; + return cardUUID; } - void setCardSetCode(const QString &_cardSetCode) + void setCardUUID(const QString &_cardUUID) { - cardSetCode = _cardSetCode; + cardUUID = _cardUUID; + } + [[nodiscard]] QString getCardSetShortName() const override + { + return cardSetShortName; + } + void setCardSetShortName(const QString &_cardSetShortName) + { + cardSetShortName = _cardSetShortName; } [[nodiscard]] QString getCardCollectorNumber() const override { @@ -144,7 +154,9 @@ public: QString getName() const override = 0; virtual void setName(const QString &_name) = 0; virtual QString getCardUuid() const override = 0; - virtual void setCardSetCode(const QString &_cardSetName) = 0; + virtual void setCardUUID(const QString &_cardUUID) = 0; + virtual QString getCardSetShortName() const override = 0; + virtual void setCardSetShortName(const QString &_cardSetShortName) = 0; virtual QString getCardCollectorNumber() const override = 0; virtual void setCardCollectorNumber(const QString &_cardSetNumber) = 0; int height() const override @@ -163,17 +175,20 @@ class DecklistCardNode : public AbstractDecklistCardNode { QString name; int number; - QString cardSetName; + QString cardSetShortName; QString cardSetNumber; + QString cardUUID; public: explicit DecklistCardNode(QString _name = QString(), int _number = 1, InnerDecklistNode *_parent = nullptr, - QString _cardSetName = QString(), - QString _cardSetNumber = QString()) + QString _cardSetShortName = QString(), + QString _cardSetNumber = QString(), + QString _cardUUID = QString()) : AbstractDecklistCardNode(_parent), name(std::move(_name)), number(_number), - cardSetName(std::move(_cardSetName)), cardSetNumber(std::move(_cardSetNumber)) + cardSetShortName(std::move(_cardSetShortName)), cardSetNumber(std::move(_cardSetNumber)), + cardUUID(std::move(_cardUUID)) { } explicit DecklistCardNode(DecklistCardNode *other, InnerDecklistNode *_parent); @@ -195,11 +210,20 @@ public: } QString getCardUuid() const override { - return cardSetName; + return cardUUID; } - void setCardSetCode(const QString &_cardSetName) override + void setCardUUID(const QString &_cardUUID) override { - cardSetName = _cardSetName; + cardUUID = _cardUUID; + } + + QString getCardSetShortName() const override + { + return cardSetShortName; + } + void setCardSetShortName(const QString &_cardSetShortName) + { + cardSetShortName = _cardSetShortName; } QString getCardCollectorNumber() const override { @@ -300,7 +324,8 @@ public: DecklistCardNode *addCard(const QString &cardName, const QString &zoneName, const QString &cardSetName = QString(), - const QString &cardSetCollectorNumber = QString()); + const QString &cardSetCollectorNumber = QString(), + const QString &cardUUID = QString()); bool deleteNode(AbstractDecklistNode *node, InnerDecklistNode *rootNode = nullptr); /**