summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKent Hansen <kent.hansen@nokia.com>2012-07-04 21:05:51 +0200
committerQt by Nokia <qt-info@nokia.com>2012-07-10 06:20:39 +0200
commitaa7180ca9228c0b2da5fd5fa49835f62a7e39134 (patch)
tree894733c4af48297223827d91ae82d8335f118f72
parent2f18e7276298451a48593e7e5bb71a9e9deaffcf (diff)
statemachine: Small refactoring of animation selection code
QStateMachinePrivate::applyProperties() is an epically long function. Move the code for selecting animations to a separate function, in preparation of a larger refactoring. Change-Id: Ic5846db97dd0cb0d6ad01740f413b233d2a66975 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
-rw-r--r--src/corelib/statemachine/qstatemachine.cpp34
-rw-r--r--src/corelib/statemachine/qstatemachine_p.h1
2 files changed, 21 insertions, 14 deletions
diff --git a/src/corelib/statemachine/qstatemachine.cpp b/src/corelib/statemachine/qstatemachine.cpp
index 2453ae970d..e53d86a134 100644
--- a/src/corelib/statemachine/qstatemachine.cpp
+++ b/src/corelib/statemachine/qstatemachine.cpp
@@ -757,20 +757,7 @@ void QStateMachinePrivate::applyProperties(const QList<QAbstractTransition*> &tr
}
// Find the animations to use for the state change.
- QList<QAbstractAnimation*> selectedAnimations;
- if (animated) {
- for (int i = 0; i < transitionList.size(); ++i) {
- QAbstractTransition *transition = transitionList.at(i);
-
- selectedAnimations << transition->animations();
- selectedAnimations << defaultAnimationsForSource.values(transition->sourceState());
-
- QList<QAbstractState *> targetStates = transition->targetStates();
- for (int j=0; j<targetStates.size(); ++j)
- selectedAnimations << defaultAnimationsForTarget.values(targetStates.at(j));
- }
- selectedAnimations << defaultAnimations;
- }
+ QList<QAbstractAnimation *> selectedAnimations = selectAnimations(transitionList);
// Initialize animations from property assignments.
for (int i = 0; i < selectedAnimations.size(); ++i) {
@@ -1153,6 +1140,25 @@ void QStateMachinePrivate::_q_animationFinished()
}
}
+QList<QAbstractAnimation *> QStateMachinePrivate::selectAnimations(const QList<QAbstractTransition *> &transitionList) const
+{
+ QList<QAbstractAnimation *> selectedAnimations;
+ if (animated) {
+ for (int i = 0; i < transitionList.size(); ++i) {
+ QAbstractTransition *transition = transitionList.at(i);
+
+ selectedAnimations << transition->animations();
+ selectedAnimations << defaultAnimationsForSource.values(transition->sourceState());
+
+ QList<QAbstractState *> targetStates = transition->targetStates();
+ for (int j=0; j<targetStates.size(); ++j)
+ selectedAnimations << defaultAnimationsForTarget.values(targetStates.at(j));
+ }
+ selectedAnimations << defaultAnimations;
+ }
+ return selectedAnimations;
+}
+
#endif // !QT_NO_ANIMATION
namespace {
diff --git a/src/corelib/statemachine/qstatemachine_p.h b/src/corelib/statemachine/qstatemachine_p.h
index 6159107dc0..b9716483a6 100644
--- a/src/corelib/statemachine/qstatemachine_p.h
+++ b/src/corelib/statemachine/qstatemachine_p.h
@@ -228,6 +228,7 @@ public:
QMultiHash<QAbstractState *, QAbstractAnimation *> defaultAnimationsForSource;
QMultiHash<QAbstractState *, QAbstractAnimation *> defaultAnimationsForTarget;
+ QList<QAbstractAnimation *> selectAnimations(const QList<QAbstractTransition *> &transitionList) const;
#endif // QT_NO_ANIMATION
QSignalEventGenerator *signalEventGenerator;