From c92f3e4239ebd5f4bd2e131d72ac00c2e22b8307 Mon Sep 17 00:00:00 2001 From: Max-Wilhelm Bruker Date: Fri, 23 Mar 2012 12:17:59 +0100 Subject: [PATCH] fix for issue #17: oracle: convert smart quotes to normal quotes in card names --- cockatrice/src/carddatabase.cpp | 6 +++++- cockatrice/src/carddatabase.h | 1 + oracle/src/oracleimporter.cpp | 3 ++- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/cockatrice/src/carddatabase.cpp b/cockatrice/src/carddatabase.cpp index 65df3884..db862c80 100644 --- a/cockatrice/src/carddatabase.cpp +++ b/cockatrice/src/carddatabase.cpp @@ -14,6 +14,8 @@ #include #include +const int CardDatabase::versionNeeded = 2; + CardSet::CardSet(const QString &_shortName, const QString &_longName) : shortName(_shortName), longName(_longName) { @@ -625,6 +627,8 @@ bool CardDatabase::loadFromFile(const QString &fileName) if (xml.readNext() == QXmlStreamReader::StartElement) { if (xml.name() != "cockatrice_carddatabase") return false; + if (xml.attributes().value("version").toString().toInt() < versionNeeded) + return false; while (!xml.atEnd()) { if (xml.readNext() == QXmlStreamReader::EndElement) break; @@ -649,7 +653,7 @@ bool CardDatabase::saveToFile(const QString &fileName) xml.setAutoFormatting(true); xml.writeStartDocument(); xml.writeStartElement("cockatrice_carddatabase"); - xml.writeAttribute("version", "1"); + xml.writeAttribute("version", QString::number(versionNeeded)); xml.writeStartElement("sets"); QHashIterator setIterator(setHash); diff --git a/cockatrice/src/carddatabase.h b/cockatrice/src/carddatabase.h index fe892a03..2c9ae6ca 100644 --- a/cockatrice/src/carddatabase.h +++ b/cockatrice/src/carddatabase.h @@ -180,6 +180,7 @@ protected: CardInfo *noCard; PictureLoadingThread *loadingThread; private: + static const int versionNeeded; void loadCardsFromXml(QXmlStreamReader &xml); void loadSetsFromXml(QXmlStreamReader &xml); public: diff --git a/oracle/src/oracleimporter.cpp b/oracle/src/oracleimporter.cpp index 18b1be49..e391e9e9 100644 --- a/oracle/src/oracleimporter.cpp +++ b/oracle/src/oracleimporter.cpp @@ -92,7 +92,8 @@ CardInfo *OracleImporter::addCard(const QString &setName, if (cardName.contains("XX")) cardName.remove("XX"); cardName = cardName.replace("Æ", "AE"); - + cardName = cardName.replace("’", "'"); + CardInfo *card; if (cardHash.contains(cardName)) { card = cardHash.value(cardName);