From f2ba91f0188b39d3ad48ee29b6fb21a71cd0fc0b Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Fri, 3 May 2024 12:10:58 +0300 Subject: [PATCH] QmlDesigner: Fix url property path resolving Converting file:// urls to relative paths assumed that the file:// url would always point to a file that is in same or child folder of the qml document, which broke for urls that pointed under generated components folder. Fixes: QDS-12029 Change-Id: I352ba01650ebf6c1c5fedef9323bf27b44491736 Reviewed-by: Mahmoud Badri Reviewed-by: Thomas Hartmann Reviewed-by: Shrief Gabr Reviewed-by: Qt CI Patch Build Bot (cherry picked from commit 6cec311c5d33aa718b5101d3a33fedb8859f67b2) --- .../qml2puppet/qml2puppet/instances/objectnodeinstance.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/tools/qml2puppet/qml2puppet/instances/objectnodeinstance.cpp b/src/tools/qml2puppet/qml2puppet/instances/objectnodeinstance.cpp index a1c727f215b..453a30395f1 100644 --- a/src/tools/qml2puppet/qml2puppet/instances/objectnodeinstance.cpp +++ b/src/tools/qml2puppet/qml2puppet/instances/objectnodeinstance.cpp @@ -7,6 +7,7 @@ #include #include +#include #include #include #include @@ -627,8 +628,8 @@ QVariant ObjectNodeInstance::property(const PropertyName &name) const return QVariant(); if (url.scheme() == "file") { - int basePathLength = nodeInstanceServer()->fileUrl().toLocalFile().lastIndexOf('/'); - return QUrl(url.toLocalFile().mid(basePathLength + 1)); + QFileInfo fi{nodeInstanceServer()->fileUrl().toLocalFile()}; + return QUrl{fi.absoluteDir().relativeFilePath(url.toLocalFile())}; } }