summaryrefslogtreecommitdiffstats
path: root/common/definitions.cpp
diff options
context:
space:
mode:
authorChristian Mollekopf <chrigi_1@fastmail.fm>2017-07-03 14:02:27 +0200
committerChristian Mollekopf <chrigi_1@fastmail.fm>2017-07-03 14:02:27 +0200
commit55fe06979ceebe67553135b43aa47e70d931304b (patch)
tree16b10a744879cc1872d6c07624b59ae64469ddbf /common/definitions.cpp
parent56fae95f49a1ca8ca614bd9f89b0ea5f872765e9 (diff)
parent288946f1694c2abe1d2c5800c87339d1e8780e4b (diff)
downloadsink-55fe06979ceebe67553135b43aa47e70d931304b.tar.gz
sink-55fe06979ceebe67553135b43aa47e70d931304b.zip
Merge branch 'develop'
Diffstat (limited to 'common/definitions.cpp')
-rw-r--r--common/definitions.cpp41
1 files changed, 34 insertions, 7 deletions
diff --git a/common/definitions.cpp b/common/definitions.cpp
index 3fc4700..17977bc 100644
--- a/common/definitions.cpp
+++ b/common/definitions.cpp
@@ -23,6 +23,17 @@
23#include <QStandardPaths> 23#include <QStandardPaths>
24#include <QDir> 24#include <QDir>
25 25
26static bool rereadDataLocation = true;
27static bool rereadConfigLocation = true;
28static bool rereadTemporaryFileLocation = true;
29
30void Sink::clearLocationCache()
31{
32 rereadDataLocation = true;
33 rereadConfigLocation = true;
34 rereadTemporaryFileLocation = true;
35}
36
26QString Sink::storageLocation() 37QString Sink::storageLocation()
27{ 38{
28 return dataLocation() + "/storage"; 39 return dataLocation() + "/storage";
@@ -30,21 +41,37 @@ QString Sink::storageLocation()
30 41
31QString Sink::dataLocation() 42QString Sink::dataLocation()
32{ 43{
33 return QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation) + "/sink"; 44 static QString location;
45 if (rereadDataLocation) {
46 location = QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation) + "/sink";
47 rereadDataLocation = false;
48 }
49 return location;
34} 50}
35 51
36QString Sink::configLocation() 52QString Sink::configLocation()
37{ 53{
38 return QStandardPaths::writableLocation(QStandardPaths::GenericConfigLocation) + "/sink"; 54 static QString location;
55 if (rereadConfigLocation) {
56 location = QStandardPaths::writableLocation(QStandardPaths::GenericConfigLocation) + "/sink";
57 rereadConfigLocation = false;
58 }
59 return location;
39} 60}
40 61
41QString Sink::temporaryFileLocation() 62QString Sink::temporaryFileLocation()
42{ 63{
43 auto path = dataLocation() + "/temporaryFiles"; 64 static QString location;
44 //FIXME create in a singleton on startup? 65 static bool dirCreated = false;
45 QDir dir; 66 if (rereadTemporaryFileLocation) {
46 dir.mkpath(path); 67 location = dataLocation() + "/temporaryFiles";
47 return path; 68 dirCreated = QDir{}.mkpath(location);
69 rereadTemporaryFileLocation = false;
70 }
71 if (!dirCreated && QDir{}.mkpath(location)) {
72 dirCreated = true;
73 }
74 return location;
48} 75}
49 76
50QString Sink::resourceStorageLocation(const QByteArray &resourceInstanceIdentifier) 77QString Sink::resourceStorageLocation(const QByteArray &resourceInstanceIdentifier)