diff --git a/src/plugins/qmldesigner/components/propertyeditor/propertyeditor.cpp b/src/plugins/qmldesigner/components/propertyeditor/propertyeditor.cpp index 1feb76c64dff5a6d8833a3785da011177b7be3e0..74825d684dd4a4994be9a58358ad256398f9a33c 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 50968c0e856dc63e1724e2ef2add5a101814cf1b..8e30ed28e35d41fd8b51a6d385d2ba3e7100d902 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);