From ed3766450ad2f29a73c05753be9a1563377b52fc Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Thu, 11 May 2017 13:04:35 +0200 Subject: Calling mkpath once is enough --- common/definitions.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'common/definitions.cpp') diff --git a/common/definitions.cpp b/common/definitions.cpp index 3fc4700..4bf3da4 100644 --- a/common/definitions.cpp +++ b/common/definitions.cpp @@ -40,10 +40,12 @@ QString Sink::configLocation() QString Sink::temporaryFileLocation() { - auto path = dataLocation() + "/temporaryFiles"; - //FIXME create in a singleton on startup? - QDir dir; - dir.mkpath(path); + static auto path = dataLocation() + "/temporaryFiles"; + static bool initialized = false; + if (!initialized) { + QDir{}.mkpath(path); + initialized = true; + } return path; } -- cgit v1.2.3 From 6a3bf46334fc4136da480287898d3f19c88261ee Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Fri, 12 May 2017 16:15:34 +0200 Subject: Avoid redoing stuff over and over that we can easily avoid. --- common/definitions.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'common/definitions.cpp') diff --git a/common/definitions.cpp b/common/definitions.cpp index 4bf3da4..7f4fbbe 100644 --- a/common/definitions.cpp +++ b/common/definitions.cpp @@ -30,12 +30,14 @@ QString Sink::storageLocation() QString Sink::dataLocation() { - return QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation) + "/sink"; + static auto location = QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation) + "/sink"; + return location; } QString Sink::configLocation() { - return QStandardPaths::writableLocation(QStandardPaths::GenericConfigLocation) + "/sink"; + static auto location = QStandardPaths::writableLocation(QStandardPaths::GenericConfigLocation) + "/sink"; + return location; } QString Sink::temporaryFileLocation() @@ -43,8 +45,9 @@ QString Sink::temporaryFileLocation() static auto path = dataLocation() + "/temporaryFiles"; static bool initialized = false; if (!initialized) { - QDir{}.mkpath(path); - initialized = true; + if (QDir{}.mkpath(path)) { + initialized = true; + } } return path; } -- cgit v1.2.3 From 75d51b5ee87f3c1d34586c34f73c2100d09e1d04 Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Sat, 20 May 2017 14:45:16 +0200 Subject: Reread the location if we enable the test mode --- common/definitions.cpp | 40 +++++++++++++++++++++++++++++++--------- 1 file changed, 31 insertions(+), 9 deletions(-) (limited to 'common/definitions.cpp') diff --git a/common/definitions.cpp b/common/definitions.cpp index 7f4fbbe..17977bc 100644 --- a/common/definitions.cpp +++ b/common/definitions.cpp @@ -23,6 +23,17 @@ #include #include +static bool rereadDataLocation = true; +static bool rereadConfigLocation = true; +static bool rereadTemporaryFileLocation = true; + +void Sink::clearLocationCache() +{ + rereadDataLocation = true; + rereadConfigLocation = true; + rereadTemporaryFileLocation = true; +} + QString Sink::storageLocation() { return dataLocation() + "/storage"; @@ -30,26 +41,37 @@ QString Sink::storageLocation() QString Sink::dataLocation() { - static auto location = QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation) + "/sink"; + static QString location; + if (rereadDataLocation) { + location = QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation) + "/sink"; + rereadDataLocation = false; + } return location; } QString Sink::configLocation() { - static auto location = QStandardPaths::writableLocation(QStandardPaths::GenericConfigLocation) + "/sink"; + static QString location; + if (rereadConfigLocation) { + location = QStandardPaths::writableLocation(QStandardPaths::GenericConfigLocation) + "/sink"; + rereadConfigLocation = false; + } return location; } QString Sink::temporaryFileLocation() { - static auto path = dataLocation() + "/temporaryFiles"; - static bool initialized = false; - if (!initialized) { - if (QDir{}.mkpath(path)) { - initialized = true; - } + static QString location; + static bool dirCreated = false; + if (rereadTemporaryFileLocation) { + location = dataLocation() + "/temporaryFiles"; + dirCreated = QDir{}.mkpath(location); + rereadTemporaryFileLocation = false; } - return path; + if (!dirCreated && QDir{}.mkpath(location)) { + dirCreated = true; + } + return location; } QString Sink::resourceStorageLocation(const QByteArray &resourceInstanceIdentifier) -- cgit v1.2.3