summarylogtreecommitdiffstats
path: root/0001-Use-QStandardPaths-AppDataLocation-as-base-path.patch
blob: 852c73ba327abcf9cd462195159d103949b6abac (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
From 3067930c16c28e5c3fd0e966990e5cfe92b16028 Mon Sep 17 00:00:00 2001
From: Florian Preinstorfer <nblock@archlinux.us>
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 <QSettings>
 #include <QApplication>
+#include <QStandardPaths>
 #include <QDebug>
 
 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 <QSqlError>
 #include <QDir>
 #include <QDate>
+#include <QStandardPaths>
 
 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 <QDir>
 #include <QTranslator>
 #include <QLibraryInfo>
 #include <QApplication>
@@ -38,12 +39,19 @@
 #include <QSharedMemory>
 #include <QStyleFactory>
 #include <QtPlugin>
+#include <QStandardPaths>
 
 //--------------------------------------------------------------------------------
 #include <QFile>
 #include <QTextStream>
 #include <QDebug>
 
+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 <QMessageBox>
 #include <QDesktopWidget>
 #include <QSettings>
+#include <QStandardPaths>
 
 #include <QDebug>
 
@@ -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