From 3067930c16c28e5c3fd0e966990e5cfe92b16028 Mon Sep 17 00:00:00 2001 From: Florian Preinstorfer Date: Mon, 2 May 2016 22:18:17 +0200 Subject: [PATCH] Use QStandardPaths::AppDataLocation as base path --- src/backup.cpp | 9 +++++---- src/database.cpp | 3 ++- src/main.cpp | 12 +++++++++++- src/qrkhome.cpp | 9 +++++---- src/settingsdialog.cpp | 5 ++--- 5 files changed, 25 insertions(+), 13 deletions(-) diff --git a/src/backup.cpp b/src/backup.cpp index 3e41406..0e2ef01 100644 --- a/src/backup.cpp +++ b/src/backup.cpp @@ -25,14 +25,15 @@ #include #include +#include #include void Backup::create() { QSettings settings(QSettings::IniFormat, QSettings::UserScope, "QRK", "QRK"); - QString backupDir = settings.value("backupDirectory", qApp->applicationDirPath()).toString(); - QString dataDir = qApp->applicationDirPath() + "/data"; + QString backupDir = settings.value("backupDirectory", QStandardPaths::writableLocation(QStandardPaths::AppDataLocation)).toString(); + QString dataDir = QStandardPaths::writableLocation(QStandardPaths::AppDataLocation) + "/data"; QString infile = QString("%1/%2-QRK.db").arg(dataDir).arg(QDate::currentDate().year()); @@ -51,9 +52,9 @@ void Backup::pakLogFile() { QSettings settings(QSettings::IniFormat, QSettings::UserScope, "QRK", "QRK"); - QString backupDir = settings.value("backupDirectory", qApp->applicationDirPath()).toString(); + QString backupDir = settings.value("backupDirectory", QStandardPaths::writableLocation(QStandardPaths::AppDataLocation)).toString(); - QString infile = QString("%1/%2-QRK.db").arg(qApp->applicationDirPath() + "/qrk.log"); + QString infile = QString("%1/%2-QRK.db").arg(QStandardPaths::writableLocation(QStandardPaths::AppDataLocation) + "/qrk.log"); QString outfile = QString("%1/qrk_log_%2.zip").arg(backupDir).arg(QDateTime::currentDateTime().toString("yyyyMMdd-hhmmss")); diff --git a/src/database.cpp b/src/database.cpp index b5d324e..bc2bde0 100644 --- a/src/database.cpp +++ b/src/database.cpp @@ -31,6 +31,7 @@ #include #include #include +#include Database::Database(QObject *parent) : QObject(parent) @@ -492,7 +493,7 @@ bool Database::open(bool dbSelect) QDate date = QDate::currentDate(); - QString dataDir = qApp->applicationDirPath() + "/data"; + QString dataDir = QStandardPaths::writableLocation(QStandardPaths::AppDataLocation) + "/data"; QDir dir(dataDir); if (!dir.exists()) { dir.mkpath("."); diff --git a/src/main.cpp b/src/main.cpp index ac5228c..aa21ddd 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -31,6 +31,7 @@ #include "stdio.h" #include "signal.h" +#include #include #include #include @@ -38,12 +39,19 @@ #include #include #include +#include //-------------------------------------------------------------------------------- #include #include #include +void createAppDataLocation() +{ + QDir dir; + dir.mkpath(QStandardPaths::writableLocation(QStandardPaths::AppDataLocation)); +} + void QRKMessageHandler(QtMsgType type, const QMessageLogContext &, const QString & str) { QString txt; @@ -61,7 +69,8 @@ void QRKMessageHandler(QtMsgType type, const QMessageLogContext &, const QString txt = QString("%1 %2 Fatal: %3").arg(QDateTime::currentDateTime().toString("yyyy.MM.dd hh:mm:ss.zzz")).arg(type).arg(str); break; } - QFile outFile(qApp->applicationDirPath() + "/qrk.log"); + QFile outFile(QStandardPaths::writableLocation(QStandardPaths::AppDataLocation) + "/qrk.log"); + if (outFile.size() > 20000000) /*20 Mega*/ Backup::pakLogFile(); @@ -90,6 +99,7 @@ int main(int argc, char *argv[]) { QApplication app(argc, argv); QApplication::setStyle(QStyleFactory::create("Fusion")); + createAppDataLocation(); qInstallMessageHandler(QRKMessageHandler); diff --git a/src/qrkhome.cpp b/src/qrkhome.cpp index 9e00cf6..3635d8c 100644 --- a/src/qrkhome.cpp +++ b/src/qrkhome.cpp @@ -27,6 +27,7 @@ #include #include #include +#include #include @@ -126,17 +127,17 @@ void QRKHome::init() ui->backupDirIconLabel->setPixmap(pixmap); ui->backupDirLabel->setText(tr("n/a")); } else { - ui->backupDirLabel->setText(settings.value("backupDirectory", qApp->applicationDirPath()).toString()); + ui->backupDirLabel->setText(settings.value("backupDirectory", QStandardPaths::writableLocation(QStandardPaths::AppDataLocation)).toString()); } - ui->dataDirlabel->setText(qApp->applicationDirPath() + "/data"); + ui->dataDirlabel->setText(QStandardPaths::writableLocation(QStandardPaths::AppDataLocation) + "/data"); ui->lcdNumberDay->display(Database::getDayCounter()); ui->lcdNumberMonth->display(Database::getMonthCounter()); ui->lcdNumberYear->display(Database::getYearCounter()); - ui->serverModeCheckBox->setText(tr("Server Modus (Importverzeichnis: %1)").arg(settings.value("importDirectory", qApp->applicationDirPath() + "/import").toString())); + ui->serverModeCheckBox->setText(tr("Server Modus (Importverzeichnis: %1)").arg(settings.value("importDirectory", QStandardPaths::writableLocation(QStandardPaths::AppDataLocation) + "/import").toString())); - watcherpath = settings.value("importDirectory", qApp->applicationDirPath() + "/import" ).toString(); + watcherpath = settings.value("importDirectory", QStandardPaths::writableLocation(QStandardPaths::AppDataLocation) + "/import" ).toString(); watcher.removePaths(watcher.directories()); if (ui->serverModeCheckBox->isChecked()) { diff --git a/src/settingsdialog.cpp b/src/settingsdialog.cpp index 5c9dbc7..42a77a5 100644 --- a/src/settingsdialog.cpp +++ b/src/settingsdialog.cpp @@ -319,9 +319,8 @@ GeneralTab::GeneralTab(QSettings &settings, QWidget *parent) useLogo->setChecked(settings.value("useLogo", false).toBool()); logoEdit->setText(settings.value("logo", "./logo.png").toString()); - importDirectoryEdit->setText(settings.value("importDirectory", qApp->applicationDirPath() + "/import").toString()); - backupDirectoryEdit->setText(settings.value("backupDirectory", qApp->applicationDirPath()).toString()); - + importDirectoryEdit->setText(settings.value("importDirectory", QStandardPaths::writableLocation(QStandardPaths::AppDataLocation) + "/import").toString()); + backupDirectoryEdit->setText(settings.value("backupDirectory", QStandardPaths::writableLocation(QStandardPaths::AppDataLocation)).toString()); } void GeneralTab::useLogoCheck_toggled(bool toggled) -- 2.8.2