diff options
author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2018-07-04 11:06:24 +0200 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2018-07-10 08:13:11 +0000 |
commit | 955105b7904bc1417797fe1e200ec13aa9d82ff3 (patch) | |
tree | 290cb6b385bde260b027034756dbb85c28fd6637 | |
parent | edcb8efb8bdbfa820f0580965d9a134a703d00b6 (diff) |
ProjectExplorer: Fix handling of the QTC_USER_FILE_PATH variable
Add a quick check whether the variable is set and return nullopt
in that case. Flip the check in the below code.
Change-Id: I655662f2940946150165107a66c003a3a4bc025d
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
-rw-r--r-- | src/plugins/projectexplorer/userfileaccessor.cpp | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/src/plugins/projectexplorer/userfileaccessor.cpp b/src/plugins/projectexplorer/userfileaccessor.cpp index 17ab86214e..8b40e798c3 100644 --- a/src/plugins/projectexplorer/userfileaccessor.cpp +++ b/src/plugins/projectexplorer/userfileaccessor.cpp @@ -342,10 +342,9 @@ static QString generateSuffix(const QString &suffix) static inline Utils::optional<QString> defineExternalUserFileDir() { static const char userFilePathVariable[] = "QTC_USER_FILE_PATH"; - static QString userFilePath = QFile::decodeName(qgetenv(userFilePathVariable)); - if (userFilePath.isEmpty()) - return QString(); - const QFileInfo fi(userFilePath); + if (Q_LIKELY(!qEnvironmentVariableIsSet(userFilePathVariable))) + return nullopt; + const QFileInfo fi(QFile::decodeName(qgetenv(userFilePathVariable))); const QString path = fi.absoluteFilePath(); if (fi.isDir() || fi.isSymLink()) return path; @@ -395,7 +394,7 @@ static FileName externalUserFilePath(const Utils::FileName &projectFilePath, con FileName result; static const optional<QString> externalUserFileDir = defineExternalUserFileDir(); - if (!externalUserFileDir) { + if (externalUserFileDir) { // Recreate the relative project file hierarchy under the shared directory. // PersistentSettingsWriter::write() takes care of creating the path. result = FileName::fromString(externalUserFileDir.value()); |