diff options
author | Fabian Kosmale <fabian.kosmale@qt.io> | 2021-09-15 10:12:21 +0200 |
---|---|---|
committer | Fabian Kosmale <fabian.kosmale@qt.io> | 2021-10-01 14:04:02 +0200 |
commit | de28bc00f514c3ee8d8fd3166973c063766e77fd (patch) | |
tree | dd7e8741f1bdb2c6dc51595dde5844e2d81e9d6b /src/qml/qml/qqmljavascriptexpression.cpp | |
parent | 61128f2578954c576d00c20ce74eafe2eb0ccd77 (diff) |
QQmlBinding::dependencies: Handle QProperty
The method did not consider QProperty properties, as those do not show
up via the active guards mechanism.
At some point, we probably also want to introduce
QQmlAnyBinding::dependencies, as there are now bindings which do not
derive from QQmlBinding.
Pick-to: 6.2
Change-Id: Ib4b227a440e9494c09d92028f9eaa5ad1e87342f
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
Diffstat (limited to 'src/qml/qml/qqmljavascriptexpression.cpp')
-rw-r--r-- | src/qml/qml/qqmljavascriptexpression.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/qml/qml/qqmljavascriptexpression.cpp b/src/qml/qml/qqmljavascriptexpression.cpp index f25fd0795c..b8b34d2071 100644 --- a/src/qml/qml/qqmljavascriptexpression.cpp +++ b/src/qml/qml/qqmljavascriptexpression.cpp @@ -537,6 +537,16 @@ void QPropertyChangeTrigger::trigger(QPropertyObserver *observer, QUntypedProper This->m_expression->expressionChanged(); } +QMetaProperty QPropertyChangeTrigger::property() const +{ + if (!target) + return {}; + auto const mo = target->metaObject(); + if (!mo) + return {}; + return mo->property(propertyIndex); +} + QPropertyChangeTrigger *QQmlJavaScriptExpression::allocatePropertyChangeTrigger(QObject *target, int propertyIndex) { auto trigger = QQmlEnginePrivate::get(engine())->qPropertyTriggerPool.New( this ); |