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>
This commit is contained in:
Thomas Hartmann
2011-07-13 14:50:49 +02:00
parent 98a4f9ae71
commit 982f1552df

View File

@@ -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())