From 03e76d80a80eef3932d6c6bbad88d28951736cc4 Mon Sep 17 00:00:00 2001
From: Thomas Hartmann <Thomas.Hartmann@digia.com>
Date: Wed, 5 Jun 2013 14:08:00 +0200
Subject: [PATCH] QmlDesigner.PropertyEditor: We fully qualify QML components

When collecting the super classes/types we did not fully
qualify QML components.
(e.g. just Button instead of QtQuick.Controls.Button)

This patch now fully qualifies the QML component.

The missing qualification broke the specifics mechanism in
the property editor (see task).

Task-number: QTCREATORBUG-9222
Change-Id: I61b6b6432493c1c440356547003269767415acb4
Reviewed-by: Marco Bubke <marco.bubke@digia.com>
Reviewed-by: Thomas Hartmann <Thomas.Hartmann@digia.com>
---
 .../designercore/metainfo/nodemetainfo.cpp          | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

diff --git a/src/plugins/qmldesigner/designercore/metainfo/nodemetainfo.cpp b/src/plugins/qmldesigner/designercore/metainfo/nodemetainfo.cpp
index 926b0bb6cd2..8f05ce4b716 100644
--- a/src/plugins/qmldesigner/designercore/metainfo/nodemetainfo.cpp
+++ b/src/plugins/qmldesigner/designercore/metainfo/nodemetainfo.cpp
@@ -1021,8 +1021,19 @@ void NodeMetaInfoPrivate::setupPrototypes()
                 description.className = qmlValue->moduleName().toUtf8() + '.' + description.className;
             m_prototypes.append(description);
         } else {
-            if (context()->lookupType(document(), QStringList() << ov->className()))
+            if (context()->lookupType(document(), QStringList() << ov->className())) {
+                const Imports *allImports = context()->imports(document());
+                ImportInfo importInfo = allImports->info(description.className, context().data());
+
+                if (importInfo.isValid()) {
+                    QString uri = importInfo.name();
+                    uri.replace(QLatin1String(","), QLatin1String("."));
+                    if (!uri.isEmpty())
+                        description.className = QString(uri + QString::fromLatin1(".") + QString::fromLatin1(description.className)).toLatin1();
+                }
+
                 m_prototypes.append(description);
+            }
         }
     }
 }
-- 
GitLab