aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick/util/qquickstategroup.cpp
diff options
context:
space:
mode:
authorUlf Hermann <ulf.hermann@qt.io>2022-04-25 10:20:22 +0200
committerUlf Hermann <ulf.hermann@qt.io>2022-04-25 19:39:48 +0200
commit762938aa5d7546fb097ca3799d97e3b826c7c0c8 (patch)
treef7495997067dbf126f6e8743dfe55d90f7373af6 /src/quick/util/qquickstategroup.cpp
parent759090f59140d0b38c7bd57480ea6cd93d4cf0d3 (diff)
Generalize QQmlAbstractBinding::isValueTypeProxy()
Instead of a bool we can just return an enum of the actual kind. This way all the checks become more readable. Furthermore, we can eliminate a dynamic_cast without sacrificing readability. Change-Id: I8a38687f9b796cd47196a6ab0385624c737e4435 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Diffstat (limited to 'src/quick/util/qquickstategroup.cpp')
-rw-r--r--src/quick/util/qquickstategroup.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/quick/util/qquickstategroup.cpp b/src/quick/util/qquickstategroup.cpp
index 951afd3e46..57491aa7f2 100644
--- a/src/quick/util/qquickstategroup.cpp
+++ b/src/quick/util/qquickstategroup.cpp
@@ -383,7 +383,9 @@ bool QQuickStateGroupPrivate::updateAutoState()
// if there is a binding, the value in when might not be up-to-date at this point
// so we manually re-evaluate the binding
- if (auto binding = dynamic_cast<QQmlBinding *>(potentialWhenBinding.asAbstractBinding())) {
+ QQmlAbstractBinding *abstractBinding = potentialWhenBinding.asAbstractBinding();
+ if (abstractBinding && abstractBinding->kind() == QQmlAbstractBinding::Binding) {
+ QQmlBinding *binding = static_cast<QQmlBinding *>(abstractBinding);
if (binding->hasValidContext())
whenValue = binding->evaluate().toBool();
}