Fix relative path for image download & settings

This commit is contained in:
marco 2015-08-23 15:54:52 +02:00
parent 1e2d5b0693
commit be7efa98cf
4 changed files with 33 additions and 13 deletions

View file

@ -154,10 +154,14 @@ int main(int argc, char *argv[])
qsrand(QDateTime::currentDateTime().toTime_t()); qsrand(QDateTime::currentDateTime().toTime_t());
#ifdef PORTABLE_BUILD
const QString dataDir = "data/";
#else
#if QT_VERSION < 0x050000 #if QT_VERSION < 0x050000
const QString dataDir = QDesktopServices::storageLocation(QDesktopServices::DataLocation); const QString dataDir = QDesktopServices::storageLocation(QDesktopServices::DataLocation);
#else #else
const QString dataDir = QStandardPaths::standardLocations(QStandardPaths::DataLocation).first(); const QString dataDir = QStandardPaths::standardLocations(QStandardPaths::DataLocation).first();
#endif
#endif #endif
if (!db->getLoadSuccess()) if (!db->getLoadSuccess())
if (!db->loadCardDatabase(dataDir + "/cards.xml")) if (!db->loadCardDatabase(dataDir + "/cards.xml"))

View file

@ -1,6 +1,7 @@
#include "settingscache.h" #include "settingscache.h"
#include <QSettings> #include <QSettings>
#include <QFile> #include <QFile>
#if QT_VERSION >= 0x050000 #if QT_VERSION >= 0x050000
#include <QStandardPaths> #include <QStandardPaths>
#else #else
@ -9,16 +10,16 @@
QString SettingsCache::getSettingsPath() QString SettingsCache::getSettingsPath()
{ {
QString file = ""; QString file = "settings/";
#ifndef PORTABLE_BUILD #ifndef PORTABLE_BUILD
#if QT_VERSION >= 0x050000 #if QT_VERSION >= 0x050000
file = QStandardPaths::writableLocation(QStandardPaths::DataLocation); file = QStandardPaths::writableLocation(QStandardPaths::DataLocation);
#else #else
file = QDesktopServices::storageLocation(QDesktopServices::DataLocation); file = QDesktopServices::storageLocation(QDesktopServices::DataLocation);
#endif
#endif #endif
file.append("/settings/"); file.append("/settings/");
#endif
return file; return file;
} }

View file

@ -114,10 +114,10 @@ private:
bool spectatorsCanTalk; bool spectatorsCanTalk;
bool spectatorsCanSeeEverything; bool spectatorsCanSeeEverything;
int keepalive; int keepalive;
QString getSettingsPath();
void translateLegacySettings(); void translateLegacySettings();
public: public:
SettingsCache(); SettingsCache();
QString getSettingsPath();
const QByteArray &getMainWindowGeometry() const { return mainWindowGeometry; } const QByteArray &getMainWindowGeometry() const { return mainWindowGeometry; }
QString getLang() const { return lang; } QString getLang() const { return lang; }
QString getDeckPath() const { return deckPath; } QString getDeckPath() const { return deckPath; }

View file

@ -45,19 +45,19 @@
OracleWizard::OracleWizard(QWidget *parent) OracleWizard::OracleWizard(QWidget *parent)
: QWizard(parent) : QWizard(parent)
{ {
settings = new QSettings(this); settings = new QSettings(settingsCache->getSettingsPath()+"global.ini",QSettings::IniFormat, this);
connect(settingsCache, SIGNAL(langChanged()), this, SLOT(updateLanguage())); connect(settingsCache, SIGNAL(langChanged()), this, SLOT(updateLanguage()));
QString dataDir; QString dataDir;
#ifndef PORTABLE_BUILD #ifndef PORTABLE_BUILD
#if QT_VERSION < 0x050000 #if QT_VERSION < 0x050000
QDesktopServices::storageLocation(QDesktopServices::DataLocation) QDesktopServices::storageLocation(QDesktopServices::DataLocation);
#else #else
QStandardPaths::standardLocations(QStandardPaths::DataLocation).first(); QStandardPaths::standardLocations(QStandardPaths::DataLocation).first();
#endif #endif
#else #else
dataDir.append("data/"); dataDir.append("../cockatrice/data");
#endif #endif
importer = new OracleImporter(dataDir, this); importer = new OracleImporter(dataDir, this);
@ -517,11 +517,17 @@ bool SaveSetsPage::validatePage()
dataDir = QStandardPaths::standardLocations(QStandardPaths::DataLocation).first(); dataDir = QStandardPaths::standardLocations(QStandardPaths::DataLocation).first();
#endif #endif
#else #else
dataDir = "data/"; dataDir = "../cockatrice/data";
#endif #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(); QString defaultPath = settings->value("paths/carddatabase").toString();
#endif
QString windowName = tr("Save card database"); QString windowName = tr("Save card database");
QString fileType = tr("XML; card database (*.xml)"); QString fileType = tr("XML; card database (*.xml)");
@ -532,6 +538,7 @@ bool SaveSetsPage::validatePage()
fileName = dataDir + "/cards.xml"; fileName = dataDir + "/cards.xml";
else else
fileName = QFileDialog::getSaveFileName(this, windowName, dataDir + "/cards.xml", fileType); fileName = QFileDialog::getSaveFileName(this, windowName, dataDir + "/cards.xml", fileType);
settings->setValue("paths/carddatabase", fileName); settings->setValue("paths/carddatabase", fileName);
} }
else { else {
@ -725,10 +732,18 @@ bool SaveTokensPage::validatePage()
dataDir = QStandardPaths::standardLocations(QStandardPaths::DataLocation).first(); dataDir = QStandardPaths::standardLocations(QStandardPaths::DataLocation).first();
#endif #endif
#else #else
dataDir = "data/"; dataDir = "../cockatrice/data";
#endif #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(); QString defaultPath = settings->value("paths/tokendatabase").toString();
#endif
QString windowName = tr("Save token database"); QString windowName = tr("Save token database");
QString fileType = tr("XML; token database (*.xml)"); QString fileType = tr("XML; token database (*.xml)");