fix for issue #17: oracle: convert smart quotes to normal quotes in card names

This commit is contained in:
Max-Wilhelm Bruker 2012-03-23 12:17:59 +01:00
parent 61b351aa9f
commit c92f3e4239
3 changed files with 8 additions and 2 deletions

View file

@ -14,6 +14,8 @@
#include <QNetworkRequest> #include <QNetworkRequest>
#include <QDebug> #include <QDebug>
const int CardDatabase::versionNeeded = 2;
CardSet::CardSet(const QString &_shortName, const QString &_longName) CardSet::CardSet(const QString &_shortName, const QString &_longName)
: shortName(_shortName), longName(_longName) : shortName(_shortName), longName(_longName)
{ {
@ -625,6 +627,8 @@ bool CardDatabase::loadFromFile(const QString &fileName)
if (xml.readNext() == QXmlStreamReader::StartElement) { if (xml.readNext() == QXmlStreamReader::StartElement) {
if (xml.name() != "cockatrice_carddatabase") if (xml.name() != "cockatrice_carddatabase")
return false; return false;
if (xml.attributes().value("version").toString().toInt() < versionNeeded)
return false;
while (!xml.atEnd()) { while (!xml.atEnd()) {
if (xml.readNext() == QXmlStreamReader::EndElement) if (xml.readNext() == QXmlStreamReader::EndElement)
break; break;
@ -649,7 +653,7 @@ bool CardDatabase::saveToFile(const QString &fileName)
xml.setAutoFormatting(true); xml.setAutoFormatting(true);
xml.writeStartDocument(); xml.writeStartDocument();
xml.writeStartElement("cockatrice_carddatabase"); xml.writeStartElement("cockatrice_carddatabase");
xml.writeAttribute("version", "1"); xml.writeAttribute("version", QString::number(versionNeeded));
xml.writeStartElement("sets"); xml.writeStartElement("sets");
QHashIterator<QString, CardSet *> setIterator(setHash); QHashIterator<QString, CardSet *> setIterator(setHash);

View file

@ -180,6 +180,7 @@ protected:
CardInfo *noCard; CardInfo *noCard;
PictureLoadingThread *loadingThread; PictureLoadingThread *loadingThread;
private: private:
static const int versionNeeded;
void loadCardsFromXml(QXmlStreamReader &xml); void loadCardsFromXml(QXmlStreamReader &xml);
void loadSetsFromXml(QXmlStreamReader &xml); void loadSetsFromXml(QXmlStreamReader &xml);
public: public:

View file

@ -92,6 +92,7 @@ CardInfo *OracleImporter::addCard(const QString &setName,
if (cardName.contains("XX")) if (cardName.contains("XX"))
cardName.remove("XX"); cardName.remove("XX");
cardName = cardName.replace("Æ", "AE"); cardName = cardName.replace("Æ", "AE");
cardName = cardName.replace("", "'");
CardInfo *card; CardInfo *card;
if (cardHash.contains(cardName)) { if (cardHash.contains(cardName)) {