From 76bf971cb9545793d56bc7805622a4d5d4871711 Mon Sep 17 00:00:00 2001 From: Thomas Hartmann <Thomas.Hartmann@digia.com> Date: Tue, 29 Jan 2013 12:58:30 +0100 Subject: [PATCH] QmlDesigner.PropertyEditor: fix resource urls When checking for existence we have to convert the url back. Change-Id: I74536ca88d95b0013239d5ba63db99568e41ab00 Reviewed-by: Thomas Hartmann <Thomas.Hartmann@digia.com> --- .../components/propertyeditor/propertyeditor.cpp | 14 ++++++++++++-- .../components/propertyeditor/propertyeditor.h | 1 + 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/plugins/qmldesigner/components/propertyeditor/propertyeditor.cpp b/src/plugins/qmldesigner/components/propertyeditor/propertyeditor.cpp index 1feb76c64df..74825d684dd 100644 --- a/src/plugins/qmldesigner/components/propertyeditor/propertyeditor.cpp +++ b/src/plugins/qmldesigner/components/propertyeditor/propertyeditor.cpp @@ -754,14 +754,14 @@ void PropertyEditor::resetView() hierarchy << m_selectedNode.metaInfo().superClasses(); foreach (const NodeMetaInfo &info, hierarchy) { - if (QFileInfo(qmlSpecificsFile.toLocalFile()).exists()) + if (QFileInfo(fileFromUrl(qmlSpecificsFile)).exists()) break; qmlSpecificsFile = fileToUrl(locateQmlFile(info, fixTypeNameForPanes(info.typeName()) + "Specifics.qml")); diffClassName = info.typeName(); } } - if (!QFileInfo(qmlSpecificsFile.toLocalFile()).exists()) + if (!QFileInfo(fileFromUrl(qmlSpecificsFile)).exists()) diffClassName = specificsClassName; QString specificQmlData; @@ -1050,6 +1050,16 @@ QUrl PropertyEditor::fileToUrl(const QString &filePath) const { return fileUrl; } +QString PropertyEditor::fileFromUrl(const QUrl &url) const +{ + if (url.scheme() == QLatin1String("qrc")) { + const QString &path = url.path(); + return QLatin1String(":") + path; + } + + return url.toLocalFile(); +} + QUrl PropertyEditor::qmlForNode(const ModelNode &modelNode, QString &className) const { if (modelNode.isValid()) { diff --git a/src/plugins/qmldesigner/components/propertyeditor/propertyeditor.h b/src/plugins/qmldesigner/components/propertyeditor/propertyeditor.h index 50968c0e856..8e30ed28e35 100644 --- a/src/plugins/qmldesigner/components/propertyeditor/propertyeditor.h +++ b/src/plugins/qmldesigner/components/propertyeditor/propertyeditor.h @@ -128,6 +128,7 @@ private slots: private: //functions QString qmlFileName(const NodeMetaInfo &nodeInfo) const; QUrl fileToUrl(const QString &filePath) const; + QString fileFromUrl(const QUrl &url) const; QUrl qmlForNode(const ModelNode &modelNode, QString &className) const; QString locateQmlFile(const NodeMetaInfo &info, const QString &relativePath) const; void select(const ModelNode& node); -- GitLab