From 1ca8487e913a5656ec3a529a032ec35d8ff7a5f8 Mon Sep 17 00:00:00 2001 From: Marcus Tillmanns Date: Wed, 9 Aug 2023 11:33:16 +0200 Subject: [PATCH] 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 --- src/libs/utils/filepath.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/libs/utils/filepath.cpp b/src/libs/utils/filepath.cpp index 9059a37ecc3..049ae325bd8 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