From be7efa98cf455a8767aab5edd8c593d9f6553f65 Mon Sep 17 00:00:00 2001 From: marco Date: Sun, 23 Aug 2015 15:54:52 +0200 Subject: [PATCH] Fix relative path for image download & settings --- cockatrice/src/main.cpp | 6 +++++- cockatrice/src/settingscache.cpp | 7 ++++--- cockatrice/src/settingscache.h | 4 ++-- oracle/src/oraclewizard.cpp | 29 ++++++++++++++++++++++------- 4 files changed, 33 insertions(+), 13 deletions(-) diff --git a/cockatrice/src/main.cpp b/cockatrice/src/main.cpp index 28331707..bc7fa450 100644 --- a/cockatrice/src/main.cpp +++ b/cockatrice/src/main.cpp @@ -153,11 +153,15 @@ int main(int argc, char *argv[]) installNewTranslator(); qsrand(QDateTime::currentDateTime().toTime_t()); - + +#ifdef PORTABLE_BUILD + const QString dataDir = "data/"; +#else #if QT_VERSION < 0x050000 const QString dataDir = QDesktopServices::storageLocation(QDesktopServices::DataLocation); #else const QString dataDir = QStandardPaths::standardLocations(QStandardPaths::DataLocation).first(); +#endif #endif if (!db->getLoadSuccess()) if (!db->loadCardDatabase(dataDir + "/cards.xml")) diff --git a/cockatrice/src/settingscache.cpp b/cockatrice/src/settingscache.cpp index 651f6a12..98e40590 100644 --- a/cockatrice/src/settingscache.cpp +++ b/cockatrice/src/settingscache.cpp @@ -1,6 +1,7 @@ #include "settingscache.h" #include #include + #if QT_VERSION >= 0x050000 #include #else @@ -9,7 +10,7 @@ QString SettingsCache::getSettingsPath() { - QString file = ""; + QString file = "settings/"; #ifndef PORTABLE_BUILD #if QT_VERSION >= 0x050000 @@ -17,10 +18,10 @@ QString SettingsCache::getSettingsPath() #else file = QDesktopServices::storageLocation(QDesktopServices::DataLocation); #endif -#endif file.append("/settings/"); +#endif - return file; + return file; } void SettingsCache::translateLegacySettings() diff --git a/cockatrice/src/settingscache.h b/cockatrice/src/settingscache.h index eb1944bd..e83b92c2 100644 --- a/cockatrice/src/settingscache.h +++ b/cockatrice/src/settingscache.h @@ -113,11 +113,11 @@ private: bool spectatorsNeedPassword; bool spectatorsCanTalk; bool spectatorsCanSeeEverything; - int keepalive; - QString getSettingsPath(); + int keepalive; void translateLegacySettings(); public: SettingsCache(); + QString getSettingsPath(); const QByteArray &getMainWindowGeometry() const { return mainWindowGeometry; } QString getLang() const { return lang; } QString getDeckPath() const { return deckPath; } diff --git a/oracle/src/oraclewizard.cpp b/oracle/src/oraclewizard.cpp index 2664ae62..d566a734 100644 --- a/oracle/src/oraclewizard.cpp +++ b/oracle/src/oraclewizard.cpp @@ -45,19 +45,19 @@ OracleWizard::OracleWizard(QWidget *parent) : QWizard(parent) { - settings = new QSettings(this); + settings = new QSettings(settingsCache->getSettingsPath()+"global.ini",QSettings::IniFormat, this); connect(settingsCache, SIGNAL(langChanged()), this, SLOT(updateLanguage())); QString dataDir; #ifndef PORTABLE_BUILD #if QT_VERSION < 0x050000 - QDesktopServices::storageLocation(QDesktopServices::DataLocation) + QDesktopServices::storageLocation(QDesktopServices::DataLocation); #else QStandardPaths::standardLocations(QStandardPaths::DataLocation).first(); #endif #else - dataDir.append("data/"); + dataDir.append("../cockatrice/data"); #endif importer = new OracleImporter(dataDir, this); @@ -517,11 +517,17 @@ bool SaveSetsPage::validatePage() dataDir = QStandardPaths::standardLocations(QStandardPaths::DataLocation).first(); #endif #else - dataDir = "data/"; + dataDir = "../cockatrice/data"; #endif - QSettings* settings = new QSettings(this); +#ifdef PORTABLE_BUILD + QSettings* settings = new QSettings("../cockatrice/settings/global.ini",QSettings::IniFormat,this); + QString defaultPath = "../cockatrice/data/cards.xml"; + settings->setValue("paths/carddatabase", "data/cards.xml"); +#else + QSettings* settings = new QSettings(settingsCache->getSettingsPath()+"global.ini",QSettings::IniFormat,this); QString defaultPath = settings->value("paths/carddatabase").toString(); +#endif QString windowName = tr("Save card database"); QString fileType = tr("XML; card database (*.xml)"); @@ -532,6 +538,7 @@ bool SaveSetsPage::validatePage() fileName = dataDir + "/cards.xml"; else fileName = QFileDialog::getSaveFileName(this, windowName, dataDir + "/cards.xml", fileType); + settings->setValue("paths/carddatabase", fileName); } else { @@ -725,10 +732,18 @@ bool SaveTokensPage::validatePage() dataDir = QStandardPaths::standardLocations(QStandardPaths::DataLocation).first(); #endif #else - dataDir = "data/"; + dataDir = "../cockatrice/data"; #endif - QSettings* settings = new QSettings(this); + +#ifdef PORTABLE_BUILD + QSettings* settings = new QSettings("../cockatrice/settings/global.ini",QSettings::IniFormat,this); + QString defaultPath = "../cockatrice/data/tokens.xml"; + settings->setValue("paths/tokendatabase", "data/tokens.xml"); +#else + QSettings* settings = new QSettings(settingsCache->getSettingsPath()+"global.ini",QSettings::IniFormat,this); QString defaultPath = settings->value("paths/tokendatabase").toString(); +#endif + QString windowName = tr("Save token database"); QString fileType = tr("XML; token database (*.xml)");