summaryrefslogtreecommitdiffstats
path: root/common/definitions.cpp
diff options
context:
space:
mode:
authorChristian Mollekopf <chrigi_1@fastmail.fm>2017-09-13 12:42:31 +0200
committerChristian Mollekopf <chrigi_1@fastmail.fm>2017-09-13 12:42:31 +0200
commitc12a9a09da59b9e418316dba02e6215cb55e47ee (patch)
tree05498d9a42e399bcca787f40c1fc473fb09e680e /common/definitions.cpp
parent55fe06979ceebe67553135b43aa47e70d931304b (diff)
parentebdb89b8bb482bbb5ecd544c3d38bef35fc7d820 (diff)
downloadsink-c12a9a09da59b9e418316dba02e6215cb55e47ee.tar.gz
sink-c12a9a09da59b9e418316dba02e6215cb55e47ee.zip
Merge commit 'ebdb89b8bb482bbb5ecd544c3d38bef35fc7d820'v0.4.0
Diffstat (limited to 'common/definitions.cpp')
-rw-r--r--common/definitions.cpp18
1 files changed, 13 insertions, 5 deletions
diff --git a/common/definitions.cpp b/common/definitions.cpp
index 17977bc..ee18d52 100644
--- a/common/definitions.cpp
+++ b/common/definitions.cpp
@@ -39,11 +39,17 @@ QString Sink::storageLocation()
39 return dataLocation() + "/storage"; 39 return dataLocation() + "/storage";
40} 40}
41 41
42static QString sinkLocation(QStandardPaths::StandardLocation location)
43{
44 return QStandardPaths::writableLocation(location) + "/sink";
45}
46
42QString Sink::dataLocation() 47QString Sink::dataLocation()
43{ 48{
44 static QString location; 49 static QString location = sinkLocation(QStandardPaths::GenericDataLocation);
50 //Warning: This is not threadsafe, but clearLocationCache is only ever used in testcode. The initialization above is required to make at least the initialization threadsafe (relies on C++11 threadsafe initialization).
45 if (rereadDataLocation) { 51 if (rereadDataLocation) {
46 location = QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation) + "/sink"; 52 location = sinkLocation(QStandardPaths::GenericDataLocation);
47 rereadDataLocation = false; 53 rereadDataLocation = false;
48 } 54 }
49 return location; 55 return location;
@@ -51,9 +57,10 @@ QString Sink::dataLocation()
51 57
52QString Sink::configLocation() 58QString Sink::configLocation()
53{ 59{
54 static QString location; 60 static QString location = sinkLocation(QStandardPaths::GenericConfigLocation);
61 //Warning: This is not threadsafe, but clearLocationCache is only ever used in testcode. The initialization above is required to make at least the initialization threadsafe (relies on C++11 threadsafe initialization).
55 if (rereadConfigLocation) { 62 if (rereadConfigLocation) {
56 location = QStandardPaths::writableLocation(QStandardPaths::GenericConfigLocation) + "/sink"; 63 location = sinkLocation(QStandardPaths::GenericConfigLocation);
57 rereadConfigLocation = false; 64 rereadConfigLocation = false;
58 } 65 }
59 return location; 66 return location;
@@ -61,8 +68,9 @@ QString Sink::configLocation()
61 68
62QString Sink::temporaryFileLocation() 69QString Sink::temporaryFileLocation()
63{ 70{
64 static QString location; 71 static QString location = dataLocation() + "/temporaryFiles";
65 static bool dirCreated = false; 72 static bool dirCreated = false;
73 //Warning: This is not threadsafe, but clearLocationCache is only ever used in testcode. The initialization above is required to make at least the initialization threadsafe (relies on C++11 threadsafe initialization).
66 if (rereadTemporaryFileLocation) { 74 if (rereadTemporaryFileLocation) {
67 location = dataLocation() + "/temporaryFiles"; 75 location = dataLocation() + "/temporaryFiles";
68 dirCreated = QDir{}.mkpath(location); 76 dirCreated = QDir{}.mkpath(location);