aboutsummaryrefslogtreecommitdiffstats
path: root/src/libs/qmljs/qmljsinterpreter.cpp
diff options
context:
space:
mode:
authorMaximilian Goldstein <[email protected]>2021-02-04 17:29:24 +0100
committerMaximilian Goldstein <[email protected]>2021-02-05 08:38:52 +0000
commit5943215d9995956de80b29e0adea903670f0d483 (patch)
tree1c5c73a7784102ddb868ebfc4f92bb81e41ee6bd /src/libs/qmljs/qmljsinterpreter.cpp
parent54e5ff7e05523ca68c6bca1a27cc74f862ffc707 (diff)
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 <[email protected]>
Diffstat (limited to 'src/libs/qmljs/qmljsinterpreter.cpp')
-rw-r--r--src/libs/qmljs/qmljsinterpreter.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/libs/qmljs/qmljsinterpreter.cpp b/src/libs/qmljs/qmljsinterpreter.cpp
index 48df835d264..0efe52d45bc 100644
--- a/src/libs/qmljs/qmljsinterpreter.cpp
+++ b/src/libs/qmljs/qmljsinterpreter.cpp
@@ -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);
}