diff --git a/cockatrice/src/carddatabase.cpp b/cockatrice/src/carddatabase.cpp index 2e5c0ec7..5a942b0f 100644 --- a/cockatrice/src/carddatabase.cpp +++ b/cockatrice/src/carddatabase.cpp @@ -16,12 +16,6 @@ const int CardDatabase::versionNeeded = 3; -CardSet::CardSet(const QString &_shortName, const QString &_longName) - : shortName(_shortName), longName(_longName) -{ - updateSortKey(); -} - QXmlStreamWriter &operator<<(QXmlStreamWriter &xml, const CardSet *set) { xml.writeStartElement("set"); @@ -32,6 +26,24 @@ QXmlStreamWriter &operator<<(QXmlStreamWriter &xml, const CardSet *set) return xml; } +CardSet::CardSet(const QString &_shortName, const QString &_longName) + : shortName(_shortName), longName(_longName) +{ + updateSortKey(); +} + +QString CardSet::getCorrectedShortName() const +{ + // Because windows is horrible. + QSet invalidFileNames; + invalidFileNames << "CON" << "PRN" << "AUX" << "NUL" << "COM1" << "COM2" << + "COM3" << "COM4" << "COM5" << "COM6" << "COM7" << "COM8" << "COM9" << + "LPT1" << "LPT2" << "LPT3" << "LPT4" << "LPT5" << "LPT6" << "LPT7" << + "LPT8" << "LPT9"; + + return invalidFileNames.contains(shortName) ? shortName + "_" : shortName; +} + void CardSet::setSortKey(unsigned int _sortKey) { sortKey = _sortKey; diff --git a/cockatrice/src/carddatabase.h b/cockatrice/src/carddatabase.h index 5e83080c..70d77bca 100644 --- a/cockatrice/src/carddatabase.h +++ b/cockatrice/src/carddatabase.h @@ -26,6 +26,7 @@ private: unsigned int sortKey; public: CardSet(const QString &_shortName = QString(), const QString &_longName = QString()); + QString getCorrectedShortName() const; QString getShortName() const { return shortName; } QString getLongName() const { return longName; } int getSortKey() const { return sortKey; } @@ -51,7 +52,7 @@ public: PictureToLoad(CardInfo *_card = 0, bool _stripped = false, bool _hq = true); CardInfo *getCard() const { return card; } bool getStripped() const { return stripped; } - QString getSetName() const { return sortedSets[setIndex]->getShortName(); } + QString getSetName() const { return sortedSets[setIndex]->getCorrectedShortName(); } bool nextSet(); bool getHq() const { return hq; } void setHq(bool _hq) { hq = _hq; }