summaryrefslogtreecommitdiff
path: root/src/plugins/qmldesigner/designercore/metainfo/nodemetainfo.cpp
diff options
context:
space:
mode:
authorThomas Hartmann <Thomas.Hartmann@nokia.com>2011-07-13 14:50:49 +0200
committerThomas Hartmann <Thomas.Hartmann@nokia.com>2011-07-14 12:04:11 +0200
commit982f1552df2a270fefa49688657937be59ed47d3 (patch)
tree3b1ca960cffbb5427c79ac8ee84476f56615dbb4 /src/plugins/qmldesigner/designercore/metainfo/nodemetainfo.cpp
parent98a4f9ae71a0997874b06fa53d481bec2b6f8dfb (diff)
downloadqt-creator-982f1552df2a270fefa49688657937be59ed47d3.tar.gz
QmlDesigner.metaInfo: fixes a regression
I cannot just take the highest available version. We have to determine the correct version from the import. I added fullQualifiedImportAliasType for convinience. Change-Id: I4cc8049b6224fa168f2530b0dfb41b6f2e515c19 Reviewed-on: http://codereview.qt.nokia.com/1589 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Christian Kamm <christian.d.kamm@nokia.com> Reviewed-by: Thomas Hartmann <Thomas.Hartmann@nokia.com>
Diffstat (limited to 'src/plugins/qmldesigner/designercore/metainfo/nodemetainfo.cpp')
-rw-r--r--src/plugins/qmldesigner/designercore/metainfo/nodemetainfo.cpp24
1 files changed, 19 insertions, 5 deletions
diff --git a/src/plugins/qmldesigner/designercore/metainfo/nodemetainfo.cpp b/src/plugins/qmldesigner/designercore/metainfo/nodemetainfo.cpp
index a8d5ad30dd..5949cd4e90 100644
--- a/src/plugins/qmldesigner/designercore/metainfo/nodemetainfo.cpp
+++ b/src/plugins/qmldesigner/designercore/metainfo/nodemetainfo.cpp
@@ -365,6 +365,7 @@ private:
QString lookupName() const;
QStringList lookupNameComponent() const;
const QmlJS::Interpreter::QmlObjectValue *getNearestQmlObjectValue() const;
+ QString fullQualifiedImportAliasType() const;
QString m_qualfiedTypeName;
int m_majorVersion;
@@ -486,7 +487,16 @@ const QmlJS::Interpreter::QmlObjectValue *NodeMetaInfoPrivate::getQmlObjectValue
const QString package = getUrlFromType(m_qualfiedTypeName);
const QString type = m_qualfiedTypeName.split('.').last();
+
LanguageUtils::ComponentVersion version(9999, 9999);
+ //get the correct version
+ Document::Ptr doc = lookupContext()->document();
+ const Interpreter::Context *context = lookupContext()->context();
+ Interpreter::ImportInfo importInfo = context->imports(doc.data())->info(fullQualifiedImportAliasType(), context);
+
+ if (importInfo.isValid())
+ version = importInfo.version();
+
QList<Interpreter::QmlObjectValue *> qmlObjectValues = lookupContext()->engine()->cppQmlTypes().typesForImport(package, version);
const Interpreter::QmlObjectValue *qmlValue = 0;
foreach (Interpreter::QmlObjectValue *value, qmlObjectValues) {
@@ -832,14 +842,11 @@ QString NodeMetaInfoPrivate::lookupName() const
QStringList NodeMetaInfoPrivate::lookupNameComponent() const
{
- if (m_model && m_model->rewriterView()) {
- QString tempString = model()->rewriterView()->convertTypeToImportAlias(m_qualfiedTypeName);
-
+ QString tempString = fullQualifiedImportAliasType();
return tempString.split('.');
- }
- return QStringList();
}
+
bool NodeMetaInfoPrivate::isValid() const
{
return m_isValid && lookupContext() && document();
@@ -890,6 +897,13 @@ const QmlJS::Interpreter::QmlObjectValue *NodeMetaInfoPrivate::getNearestQmlObje
return getQmlObjectValue();
}
+QString NodeMetaInfoPrivate::fullQualifiedImportAliasType() const
+{
+ if (m_model && m_model->rewriterView())
+ return model()->rewriterView()->convertTypeToImportAlias(m_qualfiedTypeName);
+ return m_qualfiedTypeName;
+}
+
} //namespace Internal
NodeMetaInfo::NodeMetaInfo() : m_privateData(new Internal::NodeMetaInfoPrivate())