[DeckList] Remove no-op card XML readElement

AbstractDecklistCardNode::readElement only advanced the XML
reader to </card> and always returned 0; a card's attributes were
already parsed by the parent InnerDecklistNode::readElement. The
containing zone loop skips the card's end tag itself, so the
method was dead weight and is dropped from the node interface
along with the pure virtual it existed to satisfy.
This commit is contained in:
Lukas Brübach 2026-09-17 14:55:22 +02:00
parent 19b2c22a9f
commit d77070c1af
5 changed files with 5 additions and 27 deletions

View file

@ -34,17 +34,6 @@ bool AbstractDecklistCardNode::compareName(AbstractDecklistNode *other) const
}
}
int AbstractDecklistCardNode::readElement(QXmlStreamReader *xml, int /* limit */)
{
while (!xml->atEnd()) {
xml->readNext();
if (xml->isEndElement() && xml->name().toString() == "card") {
return 0;
}
}
return 0;
}
void AbstractDecklistCardNode::writeElement(QXmlStreamWriter *xml)
{
xml->writeEmptyElement("card");

View file

@ -134,15 +134,6 @@ public:
*/
bool compareName(AbstractDecklistNode *other) const;
/**
* @brief Deserialize this nodes properties from XML.
* @param xml QXmlStreamReader positioned at the element.
* @return true if parsing succeeded.
*
* This supports loading deck files from Cockatrices XML format.
*/
int readElement(QXmlStreamReader *xml, int limit) override;
/**
* @brief Serialize this nodes properties to XML.
* @param xml Writer to append this nodes XML element.

View file

@ -183,7 +183,6 @@ public:
* Cockatrice deck XML format.
* @{
*/
virtual int readElement(QXmlStreamReader *xml, int limit) = 0;
virtual void writeElement(QXmlStreamWriter *xml) = 0;
/// @}
};

View file

@ -164,12 +164,11 @@ int InnerDecklistNode::readElement(QXmlStreamReader *xml, int limit)
} else if (childName == "card") {
int amount = xml->attributes().value("number").toString().toInt();
amount = qMin(amount, limit - totalCards);
auto *newCard = new DecklistCardNode(xml->attributes().value("name").toString(), amount, this, -1,
xml->attributes().value("setShortName").toString(),
xml->attributes().value("collectorNumber").toString(),
xml->attributes().value("uuid").toString());
new DecklistCardNode(xml->attributes().value("name").toString(), amount, this, -1,
xml->attributes().value("setShortName").toString(),
xml->attributes().value("collectorNumber").toString(),
xml->attributes().value("uuid").toString());
totalCards += amount;
totalCards += newCard->readElement(xml, limit - totalCards);
}
} else if (xml->isEndElement() && (childName == "zone")) {
return totalCards;

View file

@ -229,7 +229,7 @@ public:
* @param limit The maximum amount of cards to read
* @return the amount of cards found
*/
int readElement(QXmlStreamReader *xml, int limit) override;
int readElement(QXmlStreamReader *xml, int limit);
/**
* @brief Serialize this node and its children to XML.