[Card] Respect disabled sets when loading v3 card databases (#6882) (#7004)

(cherry picked from commit 0c140d866f)
This commit is contained in:
DawnFire42 2026-06-17 08:09:05 -04:00 committed by RickyRister
parent 42a3930faa
commit 26167fe3e9

View file

@ -217,27 +217,32 @@ void CockatriceXml3Parser::loadCardsFromXml(QXmlStreamReader &xml)
// NOTE: attributes must be read before readElementText() // NOTE: attributes must be read before readElementText()
QXmlStreamAttributes attrs = xml.attributes(); QXmlStreamAttributes attrs = xml.attributes();
QString setName = xml.readElementText(QXmlStreamReader::IncludeChildElements); QString setName = xml.readElementText(QXmlStreamReader::IncludeChildElements);
PrintingInfo setInfo(internalAddSet(setName)); auto set = internalAddSet(setName);
if (attrs.hasAttribute("muId")) { // Only load printings from sets the user has enabled, matching the v4 loader's
setInfo.setProperty("muid", attrs.value("muId").toString()); // behaviour. Without this check, disabling a set has no effect on v3 databases.
} if (set->getEnabled()) {
PrintingInfo setInfo(set);
if (attrs.hasAttribute("muId")) {
setInfo.setProperty("muid", attrs.value("muId").toString());
}
if (attrs.hasAttribute("muId")) { if (attrs.hasAttribute("uuId")) {
setInfo.setProperty("uuid", attrs.value("uuId").toString()); setInfo.setProperty("uuid", attrs.value("uuId").toString());
} }
if (attrs.hasAttribute("picURL")) { if (attrs.hasAttribute("picURL")) {
setInfo.setProperty("picurl", attrs.value("picURL").toString()); setInfo.setProperty("picurl", attrs.value("picURL").toString());
} }
if (attrs.hasAttribute("num")) { if (attrs.hasAttribute("num")) {
setInfo.setProperty("num", attrs.value("num").toString()); setInfo.setProperty("num", attrs.value("num").toString());
} }
if (attrs.hasAttribute("rarity")) { if (attrs.hasAttribute("rarity")) {
setInfo.setProperty("rarity", attrs.value("rarity").toString()); setInfo.setProperty("rarity", attrs.value("rarity").toString());
}
_sets[setName].append(setInfo);
} }
_sets[setName].append(setInfo);
// related cards // related cards
} else if (xmlName == "related" || xmlName == "reverse-related") { } else if (xmlName == "related" || xmlName == "reverse-related") {
CardRelationType attach = CardRelationType::DoesNotAttach; CardRelationType attach = CardRelationType::DoesNotAttach;