Make parser use CardSettingsInterface

Took 13 minutes
This commit is contained in:
Lukas Brübach 2025-11-08 12:24:24 +01:00
parent fc6ffffcb9
commit 975912de90
5 changed files with 21 additions and 3 deletions

View file

@ -11,6 +11,11 @@ public:
{ {
return SettingsCache::instance().cardOverrides().getCardPreferenceOverride(cardName); return SettingsCache::instance().cardOverrides().getCardPreferenceOverride(cardName);
} }
bool getIncludeRebalancedCards() const override
{
return SettingsCache::instance().getIncludeRebalancedCards();
};
}; };
#endif // COCKATRICE_SETTINGS_CARD_PREFERENCE_PROVIDER_H #endif // COCKATRICE_SETTINGS_CARD_PREFERENCE_PROVIDER_H

View file

@ -13,6 +13,11 @@
#define COCKATRICE_XML4_SCHEMALOCATION \ #define COCKATRICE_XML4_SCHEMALOCATION \
"https://raw.githubusercontent.com/Cockatrice/Cockatrice/master/doc/carddatabase_v4/cards.xsd" "https://raw.githubusercontent.com/Cockatrice/Cockatrice/master/doc/carddatabase_v4/cards.xsd"
CockatriceXml4Parser::CockatriceXml4Parser(ICardPreferenceProvider *_cardPreferenceProvider)
: cardPreferenceProvider(_cardPreferenceProvider)
{
}
bool CockatriceXml4Parser::getCanParseFile(const QString &fileName, QIODevice &device) bool CockatriceXml4Parser::getCanParseFile(const QString &fileName, QIODevice &device)
{ {
qCInfo(CockatriceXml4Log) << "Trying to parse: " << fileName; qCInfo(CockatriceXml4Log) << "Trying to parse: " << fileName;
@ -131,8 +136,7 @@ QVariantHash CockatriceXml4Parser::loadCardPropertiesFromXml(QXmlStreamReader &x
void CockatriceXml4Parser::loadCardsFromXml(QXmlStreamReader &xml) void CockatriceXml4Parser::loadCardsFromXml(QXmlStreamReader &xml)
{ {
bool includeRebalancedCards = bool includeRebalancedCards = cardPreferenceProvider->getIncludeRebalancedCards();
true; // TODO: MOVE THIS OUT OF THE PARSER SettingsCache::instance().getIncludeRebalancedCards();
while (!xml.atEnd()) { while (!xml.atEnd()) {
if (xml.readNext() == QXmlStreamReader::EndElement) { if (xml.readNext() == QXmlStreamReader::EndElement) {
break; break;

View file

@ -11,6 +11,7 @@
#include <QLoggingCategory> #include <QLoggingCategory>
#include <QXmlStreamReader> #include <QXmlStreamReader>
#include <libcockatrice/interfaces/interface_card_preference_provider.h>
inline Q_LOGGING_CATEGORY(CockatriceXml4Log, "cockatrice_xml.xml_4_parser"); inline Q_LOGGING_CATEGORY(CockatriceXml4Log, "cockatrice_xml.xml_4_parser");
@ -18,7 +19,7 @@ class CockatriceXml4Parser : public ICardDatabaseParser
{ {
Q_OBJECT Q_OBJECT
public: public:
CockatriceXml4Parser() = default; CockatriceXml4Parser(ICardPreferenceProvider *cardPreferenceProvider);
~CockatriceXml4Parser() override = default; ~CockatriceXml4Parser() override = default;
bool getCanParseFile(const QString &name, QIODevice &device) override; bool getCanParseFile(const QString &name, QIODevice &device) override;
void parseFile(QIODevice &device) override; void parseFile(QIODevice &device) override;
@ -29,6 +30,8 @@ public:
const QString &sourceVersion = "unknown") override; const QString &sourceVersion = "unknown") override;
private: private:
ICardPreferenceProvider *cardPreferenceProvider;
QVariantHash loadCardPropertiesFromXml(QXmlStreamReader &xml); QVariantHash loadCardPropertiesFromXml(QXmlStreamReader &xml);
void loadCardsFromXml(QXmlStreamReader &xml); void loadCardsFromXml(QXmlStreamReader &xml);
void loadSetsFromXml(QXmlStreamReader &xml); void loadSetsFromXml(QXmlStreamReader &xml);

View file

@ -8,6 +8,7 @@ class ICardPreferenceProvider
public: public:
virtual ~ICardPreferenceProvider() = default; virtual ~ICardPreferenceProvider() = default;
virtual QString getCardPreferenceOverride(const QString &cardName) const = 0; virtual QString getCardPreferenceOverride(const QString &cardName) const = 0;
virtual bool getIncludeRebalancedCards() const = 0;
}; };
#endif // COCKATRICE_INTERFACE_CARD_PREFERENCE_PROVIDER_H #endif // COCKATRICE_INTERFACE_CARD_PREFERENCE_PROVIDER_H

View file

@ -9,6 +9,11 @@ public:
{ {
return {}; return {};
} }
bool getIncludeRebalancedCards() const override
{
return true;
}
}; };
#endif // COCKATRICE_NOOP_CARD_PREFERENCE_PROVIDER_H #endif // COCKATRICE_NOOP_CARD_PREFERENCE_PROVIDER_H