Cockatrice 2026-09-01-Development-3.1.0-beta.10
A virtual tabletop for multiplayer card games
Loading...
Searching...
No Matches
cockatrice_xml_4.h
Go to the documentation of this file.
1#ifndef COCKATRICE_XML4_H
2#define COCKATRICE_XML4_H
3
5
6#include <QLoggingCategory>
7#include <QXmlStreamReader>
9
10inline Q_LOGGING_CATEGORY(CockatriceXml4Log, "cockatrice_xml.xml_4_parser");
11
29{
30 Q_OBJECT
31public:
34 ~CockatriceXml4Parser() override = default;
35
42 bool getCanParseFile(const QString &name, QIODevice &device) override;
43
48 void parseFile(QIODevice &device) override;
49
55 void parseFileInto(QIODevice &device, CardDatabaseData &data) override;
56
60 bool saveToFile(FormatRulesNameMap _formats,
61 SetNameMap _sets,
62 CardNameMap cards,
63 const QString &fileName,
64 const QString &sourceUrl = "unknown",
65 const QString &sourceVersion = "unknown") override;
66
67private:
69
75 QHash<QString, QString> loadCardPropertiesFromXml(QXmlStreamReader &xml);
76
82 void loadCardsFromXml(QXmlStreamReader &xml);
83
84 void loadFormats(QXmlStreamReader &xml);
90 void loadSetsFromXml(QXmlStreamReader &xml);
91};
92
93#endif
QHash< QString, FormatRulesPtr > FormatRulesNameMap
Definition card_info.h:33
QHash< QString, CardSetPtr > SetNameMap
Definition card_info.h:32
QHash< QString, CardInfoPtr > CardNameMap
Definition card_info.h:31
bool getCanParseFile(const QString &name, QIODevice &device) override
Determines if the parser can handle this file.
Definition cockatrice_xml_4.cpp:23
void loadCardsFromXml(QXmlStreamReader &xml)
Load all <card> elements from the XML stream.
Definition cockatrice_xml_4.cpp:262
void parseFile(QIODevice &device) override
Parse the XML database.
Definition cockatrice_xml_4.cpp:54
~CockatriceXml4Parser() override=default
CockatriceXml4Parser(ICardPreferenceProvider *cardPreferenceProvider, ICardSetPriorityController *cardSetPriorityController)
Definition cockatrice_xml_4.cpp:17
void loadSetsFromXml(QXmlStreamReader &xml)
Load all <set> elements from the XML stream.
Definition cockatrice_xml_4.cpp:206
void parseFileInto(QIODevice &device, CardDatabaseData &data) override
Parse the XML database into the given snapshot.
Definition cockatrice_xml_4.cpp:85
QHash< QString, QString > loadCardPropertiesFromXml(QXmlStreamReader &xml)
Loads a generic <prop> block from a <card> element.
Definition cockatrice_xml_4.cpp:246
void loadFormats(QXmlStreamReader &xml)
Definition cockatrice_xml_4.cpp:188
ICardPreferenceProvider * cardPreferenceProvider
Interface to handle user preferences.
Definition cockatrice_xml_4.h:68
bool saveToFile(FormatRulesNameMap _formats, SetNameMap _sets, CardNameMap cards, const QString &fileName, const QString &sourceUrl="unknown", const QString &sourceVersion="unknown") override
Save sets and cards back to an XML4 file.
Definition cockatrice_xml_4.cpp:606
ICardSetPriorityController * cardSetPriorityController
Definition card_database_parser.h:73
ICardDatabaseParser(ICardSetPriorityController *cardSetPriorityController)
Definition card_database_parser.cpp:7
Definition interface_card_preference_provider.h:7
Definition interface_card_set_priority_controller.h:7
Q_LOGGING_CATEGORY(CockatriceXml4Log, "cockatrice_xml.xml_4_parser")
Value type holding the full parsed state of a card database.
Definition card_database_data.h:17