forked from qt-creator/qt-creator
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:
@@ -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())
|
||||
|
||||
Reference in New Issue
Block a user