aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarcus Tillmanns <marcus.tillmanns@qt.io>2023-08-09 11:33:16 +0200
committerMarcus Tillmanns <marcus.tillmanns@qt.io>2023-08-09 09:49:57 +0000
commit1ca8487e913a5656ec3a529a032ec35d8ff7a5f8 (patch)
tree702128f011394dc78bf960400d150fe4d59e6b32
parent6528bd3eeda563d7d692c54b2b7035488f5f8974 (diff)
Utils: Fix for invalid docker paths from installer
Some installers wrote "docker:/" into the settings instead of "docker://". This adds a workaround for that. Fixes: QTCREATORBUG-29474 Change-Id: I49a69d6fa9e4fe383257313e534660814c4a011f Reviewed-by: hjk <hjk@qt.io>
-rw-r--r--src/libs/utils/filepath.cpp11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/libs/utils/filepath.cpp b/src/libs/utils/filepath.cpp
index 9059a37ecc..049ae325bd 100644
--- a/src/libs/utils/filepath.cpp
+++ b/src/libs/utils/filepath.cpp
@@ -1269,7 +1269,16 @@ FilePath FilePath::fromSettings(const QVariant &variant)
const QUrl url = variant.toUrl();
return FilePath::fromParts(url.scheme(), url.host(), url.path());
}
- return FilePath::fromUserInput(variant.toString());
+
+ // The installer sometimes fails and adds "docker:/..." instead of "docker://...
+ // So we fix these paths here in those cases.
+ QString data = variant.toString();
+ if (data.length() > 8 && data.startsWith("docker:/") && data[8] != '/') {
+ qWarning() << "Broken path in settings:" << data << ", applying workaround.";
+ data.insert(8, '/');
+ }
+
+ return FilePath::fromUserInput(data);
}
QVariant FilePath::toSettings() const