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

@ -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"))

View file

@ -1,6 +1,7 @@
#include "settingscache.h"
#include <QSettings>
#include <QFile>
#if QT_VERSION >= 0x050000
#include <QStandardPaths>
#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()

View file

@ -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; }

View file

@ -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)");