forked from qt-creator/qt-creator
qmltypes: Handle extension property
Previously Qt Creator ignored the extension property in qmltypes leading to auto-complete being unavailable for some properties of extended types among other things. Change-Id: I1bc13b3daf9bbd0a835e9a25f52b9589ad942e75 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
This commit is contained in:
@@ -358,6 +358,14 @@ void CppComponentValue::processMembers(MemberProcessor *processor) const
|
||||
attachedType->processMembers(processor);
|
||||
}
|
||||
|
||||
// look at extension types
|
||||
const QString &extensionTypeName = m_metaObject->extensionTypeName();
|
||||
if (!extensionTypeName.isEmpty()) {
|
||||
const CppComponentValue *extensionType = valueOwner()->cppQmlTypes().objectByCppName(extensionTypeName);
|
||||
if (extensionType && extensionType != this) // ### only weak protection against infinite loops
|
||||
extensionType->processMembers(processor);
|
||||
}
|
||||
|
||||
ObjectValue::processMembers(processor);
|
||||
}
|
||||
|
||||
|
||||
@@ -228,6 +228,8 @@ void TypeDescriptionReader::readComponent(UiObjectDefinition *ast)
|
||||
readMetaObjectRevisions(script, fmo);
|
||||
} else if (name == QLatin1String("attachedType")) {
|
||||
fmo->setAttachedTypeName(readStringBinding(script));
|
||||
} else if (name == QLatin1String("extension")) {
|
||||
fmo->setExtensionTypeName(readStringBinding(script));
|
||||
} else if (name == QLatin1String("isSingleton")) {
|
||||
fmo->setIsSingleton(readBoolBinding(script));
|
||||
} else if (name == QLatin1String("isCreatable")) {
|
||||
|
||||
Reference in New Issue
Block a user