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);