diff options
author | Thomas Hartmann <Thomas.Hartmann@nokia.com> | 2011-10-21 12:40:39 +0200 |
---|---|---|
committer | Thomas Hartmann <Thomas.Hartmann@nokia.com> | 2011-10-21 12:41:45 +0200 |
commit | 2ae1f0cc02e47c4e3c253f3e5f3e16e39df41831 (patch) | |
tree | 871d30c42a86e70654ab11ec68171ba470fb29fc /src/plugins/qmldesigner/designercore/metainfo/nodemetainfo.cpp | |
parent | 8be83a173acf1ca0fe7fbb808b5dea5a649a45b7 (diff) | |
download | qt-creator-2ae1f0cc02e47c4e3c253f3e5f3e16e39df41831.tar.gz |
QmlDesigner.metaSystem: fix fot Qt Components
In the case of "." imports we loose the package name.
This patches "maps back" to QtQuick by default or maps to <cpp>
if the package name is empty.
Change-Id: Ibe8d782541d109049f3480c7dfd15de69d75da38
Reviewed-by: Christian Kamm <christian.d.kamm@nokia.com>
Diffstat (limited to 'src/plugins/qmldesigner/designercore/metainfo/nodemetainfo.cpp')
-rw-r--r-- | src/plugins/qmldesigner/designercore/metainfo/nodemetainfo.cpp | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/plugins/qmldesigner/designercore/metainfo/nodemetainfo.cpp b/src/plugins/qmldesigner/designercore/metainfo/nodemetainfo.cpp index 388de0c9b7..c53f05c16c 100644 --- a/src/plugins/qmldesigner/designercore/metainfo/nodemetainfo.cpp +++ b/src/plugins/qmldesigner/designercore/metainfo/nodemetainfo.cpp @@ -826,6 +826,7 @@ void NodeMetaInfoPrivate::setupPrototypes() objects = PrototypeIterator(getObjectValue(), context()).all(); else objects = PrototypeIterator(getQmlObjectValue(), context()).all(); + foreach (const ObjectValue *ov, objects) { TypeDescription description; description.className = ov->className(); @@ -834,8 +835,15 @@ void NodeMetaInfoPrivate::setupPrototypes() if (const QmlObjectValue * qmlValue = dynamic_cast<const QmlObjectValue *>(ov)) { description.minorVersion = qmlValue->componentVersion().minorVersion(); description.majorVersion = qmlValue->componentVersion().majorVersion(); - if (!qmlValue->moduleName().isEmpty()) + LanguageUtils::FakeMetaObject::Export qtquickExport = qmlValue->metaObject()->exportInPackage("QtQuick"); + LanguageUtils::FakeMetaObject::Export cppExport = qmlValue->metaObject()->exportInPackage("<cpp>"); + if (qtquickExport.isValid()) { + description.className = qtquickExport.package + '.' + qtquickExport.type; + } else if (qmlValue->moduleName().isEmpty() && cppExport.isValid()) { + description.className = cppExport.package + '.' + cppExport.type; + } else if (!qmlValue->moduleName().isEmpty()) { description.className = qmlValue->moduleName() + '.' + description.className; + } m_prototypes.append(description); } else { if (context()->lookupType(document(), QStringList() << ov->className())) |