From 5be738e56a5aee4dbd9eb073c3bede2f2ec18a6f Mon Sep 17 00:00:00 2001 From: Thomas Hartmann <Thomas.Hartmann@digia.com> Date: Tue, 14 May 2013 15:35:38 +0200 Subject: [PATCH] QmlDesigner.ItemLibrary: Allow non qrc source files Source files can also be local files relative to the .metainfo file. Change-Id: I8b5519a1bf42808a1bfa744b7520fc910eb2aeac Reviewed-by: Marco Bubke <marco.bubke@digia.com> --- .../designercore/metainfo/itemlibraryinfo.cpp | 14 +++++++++++++- .../designercore/metainfo/metainforeader.cpp | 2 +- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/plugins/qmldesigner/designercore/metainfo/itemlibraryinfo.cpp b/src/plugins/qmldesigner/designercore/metainfo/itemlibraryinfo.cpp index 4b454125555..023590bd0c4 100644 --- a/src/plugins/qmldesigner/designercore/metainfo/itemlibraryinfo.cpp +++ b/src/plugins/qmldesigner/designercore/metainfo/itemlibraryinfo.cpp @@ -188,10 +188,22 @@ void ItemLibraryEntry::setIconPath(const QString &iconPath) m_data->iconPath = iconPath; } +static QString getSourceForUrl(const QString &fileURl) +{ + Utils::FileReader fileReader; + + if (fileReader.fetch(fileURl)) { + return fileReader.data(); + } else { + return Utils::FileReader::fetchQrc(fileURl); + } +} + void ItemLibraryEntry::setQml(const QString &qml) { m_data->qml = qml; - m_data->qmlSource = Utils::FileReader::fetchQrc(qml); + + m_data->qmlSource = getSourceForUrl(qml); } void ItemLibraryEntry::setRequiredImport(const QString &requiredImport) diff --git a/src/plugins/qmldesigner/designercore/metainfo/metainforeader.cpp b/src/plugins/qmldesigner/designercore/metainfo/metainforeader.cpp index 77fc504bb21..e512185c961 100644 --- a/src/plugins/qmldesigner/designercore/metainfo/metainforeader.cpp +++ b/src/plugins/qmldesigner/designercore/metainfo/metainforeader.cpp @@ -255,7 +255,7 @@ void MetaInfoReader::readPropertyProperty(const QString &name, const QVariant &v void MetaInfoReader::readQmlSourceProperty(const QString &name, const QVariant &value) { if (name == QLatin1String("source")) { - m_currentEntry.setQml(value.toString()); + m_currentEntry.setQml(absoluteFilePathForDocument(value.toString())); } else { addError(tr("Unknown property for QmlSource %1").arg(name), currentSourceLocation()); setParserState(Error); -- GitLab