diff --git a/cockatrice/src/carddatabase.cpp b/cockatrice/src/carddatabase.cpp index 4a3705b9..c500b379 100644 --- a/cockatrice/src/carddatabase.cpp +++ b/cockatrice/src/carddatabase.cpp @@ -1053,6 +1053,18 @@ void CardDatabase::loadTokenDatabase() loadCardDatabase(settingsCache->getTokenDatabasePath(), true); } +void CardDatabase::loadCustomCardDatabases(const QString &path) +{ + QDir dir(path); + if(!dir.exists()) + return; + + foreach(QString fileName, dir.entryList(QStringList("*.xml"), QDir::Files | QDir::Readable, QDir::Name | QDir::IgnoreCase)) + { + loadCardDatabase(dir.absoluteFilePath(fileName), false); + } +} + QStringList CardDatabase::getAllColors() const { QSet colors; diff --git a/cockatrice/src/carddatabase.h b/cockatrice/src/carddatabase.h index 24deb947..30fdc1e0 100644 --- a/cockatrice/src/carddatabase.h +++ b/cockatrice/src/carddatabase.h @@ -271,6 +271,7 @@ public: public slots: void clearPixmapCache(); LoadStatus loadCardDatabase(const QString &path, bool tokens = false); + void loadCustomCardDatabases(const QString &path); void emitCardListChanged(); private slots: void imageLoaded(CardInfo *card, QImage image); diff --git a/cockatrice/src/main.cpp b/cockatrice/src/main.cpp index fa2c2d83..dc0473ab 100644 --- a/cockatrice/src/main.cpp +++ b/cockatrice/src/main.cpp @@ -164,6 +164,13 @@ int main(int argc, char *argv[]) } if (!QDir().mkpath(settingsCache->getPicsPath() + "/CUSTOM")) qDebug() << "Could not create " + settingsCache->getPicsPath().toUtf8() + "/CUSTOM. Will fall back on default card images."; + if (QDir().mkpath(dataDir + "/customsets")) + { + // if the dir exists (or has just been created) + db->loadCustomCardDatabases(dataDir + "/customsets"); + } else { + qDebug() << "Could not create " + dataDir + "/customsets folder."; + } if(settingsCache->getSoundPath().isEmpty() || !QDir(settingsCache->getSoundPath()).exists()) {