diff options
author | Tarja Sundqvist <[email protected]> | 2024-11-08 15:36:12 +0200 |
---|---|---|
committer | Tarja Sundqvist <[email protected]> | 2024-11-08 15:36:12 +0200 |
commit | abe4729ea8db32124c36dc33fc32eb629df03043 (patch) | |
tree | 6c02a1174b4abbcec9a127758b2c406975661312 /src/quick/util/qquickstategroup.cpp | |
parent | 7c32569ad27b743b6cb50e2bcb67c9ca1674f238 (diff) | |
parent | 7550f26e156b3bca5f4b6a9711352c2aa0ba8463 (diff) |
Merge tag 'v5.15.16-lts' into tqtc/lts-5.15-opensourcev5.15.16-lts-lgpl
Qt 5.15.16-lts release
Change-Id: I2892ad4097deaec565b10357ca61be10048a7c81
Diffstat (limited to 'src/quick/util/qquickstategroup.cpp')
-rw-r--r-- | src/quick/util/qquickstategroup.cpp | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/quick/util/qquickstategroup.cpp b/src/quick/util/qquickstategroup.cpp index 7cb3138618..e0356a0173 100644 --- a/src/quick/util/qquickstategroup.cpp +++ b/src/quick/util/qquickstategroup.cpp @@ -381,8 +381,16 @@ bool QQuickStateGroupPrivate::updateAutoState() const auto potentialWhenBinding = QQmlPropertyPrivate::binding(whenProp); // if there is a binding, the value in when might not be up-to-date at this point // so we manually reevaluate the binding - if (auto abstractBinding = dynamic_cast<QQmlBinding *>(potentialWhenBinding)) - whenValue = abstractBinding->evaluate().toBool(); + if (auto binding = dynamic_cast<QQmlBinding *>(potentialWhenBinding)) { + if (binding->context() && binding->context()->isValid()) { + QVariant evalResult = binding->evaluate(); + if (evalResult.userType() == qMetaTypeId<QJSValue>()) + whenValue = evalResult.value<QJSValue>().toBool(); + else + whenValue = evalResult.toBool(); + } + } + if (whenValue) { if (stateChangeDebug()) qWarning() << "Setting auto state due to expression"; |