mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-11-09 11:33:25 -08:00
Address review findings
This commit is contained in:
parent
997eee835e
commit
6eef7a6849
5 changed files with 95 additions and 22 deletions
|
|
@ -123,9 +123,11 @@ bool DeckList::Metadata::readElement(QXmlStreamReader *xml, const QString &child
|
|||
return true;
|
||||
}
|
||||
|
||||
void DeckList::Metadata::write(QXmlStreamWriter *xml) const
|
||||
void DeckList::Metadata::write(QXmlStreamWriter *xml, bool includeLastLoadedTimestamp) const
|
||||
{
|
||||
xml->writeTextElement("lastLoadedTimestamp", lastLoadedTimestamp);
|
||||
if (includeLastLoadedTimestamp) {
|
||||
xml->writeTextElement("lastLoadedTimestamp", lastLoadedTimestamp);
|
||||
}
|
||||
xml->writeTextElement("deckname", name);
|
||||
xml->writeTextElement("format", gameFormat);
|
||||
xml->writeStartElement("bannerCard");
|
||||
|
|
@ -203,12 +205,12 @@ bool DeckList::readElement(QXmlStreamReader *xml)
|
|||
return true;
|
||||
}
|
||||
|
||||
void DeckList::write(QXmlStreamWriter *xml) const
|
||||
void DeckList::write(QXmlStreamWriter *xml, bool includeLastLoadedTimestamp) const
|
||||
{
|
||||
xml->writeStartElement("cockatrice_deck");
|
||||
xml->writeAttribute("version", "1");
|
||||
|
||||
metadata.write(xml);
|
||||
metadata.write(xml, includeLastLoadedTimestamp);
|
||||
|
||||
// Write zones
|
||||
tree.write(xml);
|
||||
|
|
@ -270,12 +272,12 @@ bool DeckList::loadFromString_Native(const QString &nativeString)
|
|||
return loadFromXml(&xml);
|
||||
}
|
||||
|
||||
QString DeckList::writeToString_Native() const
|
||||
QString DeckList::writeToString_Native(bool includeLastLoadedTimestamp) const
|
||||
{
|
||||
QString result;
|
||||
QXmlStreamWriter xml(&result);
|
||||
xml.writeStartDocument();
|
||||
write(&xml);
|
||||
write(&xml, includeLastLoadedTimestamp);
|
||||
xml.writeEndDocument();
|
||||
return result;
|
||||
}
|
||||
|
|
@ -486,7 +488,7 @@ QString DeckList::contentHash(const QString &nativeDeck)
|
|||
|
||||
QString DeckList::getContentHash() const
|
||||
{
|
||||
return contentHash(writeToString_Native());
|
||||
return contentHash(writeToString_Native(false));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -95,8 +95,10 @@ public:
|
|||
* @brief Writes the deck metadata section of a Cockatrice deck XML file.
|
||||
*
|
||||
* @param xml Writer to append the metadata elements to.
|
||||
* @param includeLastLoadedTimestamp Whether to write lastLoadedTimestamp. Collection sync
|
||||
* excludes it, since it changes every time a deck is opened.
|
||||
*/
|
||||
void write(QXmlStreamWriter *xml) const;
|
||||
void write(QXmlStreamWriter *xml, bool includeLastLoadedTimestamp = true) const;
|
||||
};
|
||||
|
||||
private:
|
||||
|
|
@ -244,10 +246,15 @@ public:
|
|||
/** @name Serialization (XML) */
|
||||
///@{
|
||||
bool readElement(QXmlStreamReader *xml);
|
||||
void write(QXmlStreamWriter *xml) const;
|
||||
void write(QXmlStreamWriter *xml, bool includeLastLoadedTimestamp = true) const;
|
||||
bool loadFromXml(QXmlStreamReader *xml);
|
||||
bool loadFromString_Native(const QString &nativeString);
|
||||
QString writeToString_Native() const;
|
||||
/**
|
||||
* @brief Serialises the deck to a Cockatrice native XML string.
|
||||
* @param includeLastLoadedTimestamp Whether to write lastLoadedTimestamp. Pass false for
|
||||
* content comparisons, so opening a deck does not change its identity.
|
||||
*/
|
||||
QString writeToString_Native(bool includeLastLoadedTimestamp = true) const;
|
||||
bool loadFromFile_Native(QIODevice *device);
|
||||
bool saveToFile_Native(QIODevice *device) const;
|
||||
///@}
|
||||
|
|
@ -305,7 +312,12 @@ public:
|
|||
* peers compare the same bytes.
|
||||
*/
|
||||
static QString contentHash(const QString &nativeDeck);
|
||||
/** @brief contentHash() of this deck's native serialisation. */
|
||||
/**
|
||||
* @brief contentHash() of this deck's native serialisation, without lastLoadedTimestamp.
|
||||
*
|
||||
* Opening a deck rewrites that timestamp, so hashing it would make every played deck
|
||||
* look modified to the server.
|
||||
*/
|
||||
QString getContentHash() const;
|
||||
void refreshDeckHash();
|
||||
///@}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue