summaryrefslogtreecommitdiff
path: root/src/plugins/qmldesigner/designercore/metainfo/nodemetainfo.cpp
diff options
context:
space:
mode:
authorThomas Hartmann <Thomas.Hartmann@nokia.com>2011-10-21 12:40:39 +0200
committerThomas Hartmann <Thomas.Hartmann@nokia.com>2011-10-21 12:41:45 +0200
commit2ae1f0cc02e47c4e3c253f3e5f3e16e39df41831 (patch)
tree871d30c42a86e70654ab11ec68171ba470fb29fc /src/plugins/qmldesigner/designercore/metainfo/nodemetainfo.cpp
parent8be83a173acf1ca0fe7fbb808b5dea5a649a45b7 (diff)
downloadqt-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.cpp10
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()))