summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* add event as argument to onEntry(), onExit() and onTransition()Kent Hansen2009-05-0526-72/+82
| | | | | | | | | Accessing the event can be useful. E.g., onEntry() can do some common event processing regardless of which transition caused the state to be entered; onTransition() can be used in combination with eventTest(), where eventTest() would first check that the input matches some criteria, and then the actual processing of that input would be done in onTransition.
* ignore QState::assignProperty() calls where the target object is 0Kent Hansen2009-05-041-0/+4
|
* When restoring properties in descendants of a state which assigns it a value,Eskil Abrahamsen Blomfeldt2009-04-301-2/+5
| | | | | | | | the property should be restored to the value assigned by the ancestor state. When restoreProperties is on, assigning a value in a state means it will have that value as long as the state is active, unless an active state deeper in the hierarchy assigns it a different value. This is basically a stack of "initial" values, but implemented using the parent hierarchy of the state instead.
* The intuitive interpretation of RestoreProperties is that a value isEskil Abrahamsen Blomfeldt2009-04-301-0/+11
| | | | | | | | | potentially restored once the state that set it is exited. So if you have a parent state P which sets 'foo' and then several child states of P, the property should not be restored as long as P is active, regardless of which transitions are taken inside P and what properties are being assigned there. Before, we would restore the property when we entered a state that did not assign it, ignoring what properties where being assigned in the parent.
* Merge branch 'kinetic-animations' into kinetic-statemachineKent Hansen2009-04-291-3/+3
|\
| * remove multiplication by 1 in easing curvesThierry Bastian2009-04-291-3/+3
| |
* | kill QStateMachine::animationsFinished(), introduce QState::polished()Kent Hansen2009-04-295-111/+162
| |
* | SCXML defines an atomic state as a <state> with no children or <final>. However,Eskil Abrahamsen Blomfeldt2009-04-291-3/+2
|/ | | | | | | | | | in SCXML it makes no sense for a <parallel> tag to be atomic, hence have no children, whereas in a dynamic state machine you might set an atomic state as parallel because this should govern the behavior if the state gets children later. We decided that the most intuitive definition is that a state is atomic if it has no children, regardless of whether it has the parallel child mode. With the old definition, transitions from empty parallel states will never be taken, as illustrated by the test.
* update stale docKent Hansen2009-04-291-1/+1
|
* kill QStateMachine::states() and QState::transitions()Kent Hansen2009-04-294-23/+0
| | | | Result of API review. Don't need them (for now).
* docKent Hansen2009-04-291-1/+7
|
* kill source/target-specific animationsKent Hansen2009-04-292-74/+0
| | | | | Result of API review. We don't have use cases for them yet. We can add them back if valid use cases do turn up.
* kill dead function declarationKent Hansen2009-04-291-1/+0
|
* rename QBoundEvent to QWrappedEvent and make it publicKent Hansen2009-04-299-75/+98
| | | | Result of API review.
* add missing QT_END_HEADERKent Hansen2009-04-291-0/+2
|
* replace QState::Type with QState::childMode propertyKent Hansen2009-04-294-19/+61
| | | | Result of API review.
* Merge the two queries for entry states to support having history states asEskil Abrahamsen Blomfeldt2009-04-291-71/+78
| | | | the initial state. Done by No'am, integrated by me.
* rename a few properties and methodsKent Hansen2009-04-296-14/+14
| | | | Result of API review.
* modifiers --> modifiersMaskKent Hansen2009-04-298-24/+98
| | | | | | Result of API review. A == comparison of the modifiers is not useful. The common case is you want to test if one or more modifiers are set, i.e. a mask check.
* compileKent Hansen2009-04-291-0/+1
|
* kill unnecessary qmake variable modsKent Hansen2009-04-291-3/+0
|
* make history state constructibleKent Hansen2009-04-296-55/+74
| | | | | | | | | | | Decided in API review. The intention of QHistoryState not being constructible was so that people wouldn't subclass it and reimplement onEntry()/onExit(), thinking that those functions would actually get called (which they won't). However, we recently added the entered() signal to QAbstractState, so people are going to connect to it and ask why they never get the signal for a QHistoryState. We might as well make QHistoryState constructible and just document that it doesn't make sense to subclass it.
* say hello (again) to QAbstract{State,Transition}::machine()Kent Hansen2009-04-294-2/+29
| | | | It's useful and it's simple for us to expose, so let's.
* add animationsEnabled propertyKent Hansen2009-04-293-8/+47
|
* move assignProperty() to QStateKent Hansen2009-04-298-51/+54
| | | | Doesn't belong in the abstract base class.
* kill StateFinished from docsKent Hansen2009-04-291-1/+0
|
* kill StateFinished event type since it doesn't exist anymoreKent Hansen2009-04-281-2/+1
|
* replace QStateFinished{Event,Transition} by QState::finished() signalKent Hansen2009-04-279-421/+21
| | | | | Not worth it having two public classes when the same can be achieved by having a signal.
* make the entry/exit order well-defined for all combinations of statesKent Hansen2009-04-271-4/+18
| | | | | | Comparing pointers meant that the order could be different each run. Now the entry/exit order will be consistent, even for states that are in disjoint parts of the hierarchy.
* Merge branch 'kinetic-statemachine' into kinetic-animationsKent Hansen2009-04-2429-1633/+292
|\ | | | | | | | | Conflicts: examples/animation/piemenu/qgraphicspiemenu_p.h
| * Remove API for setting specific restore policies on states. We have no clearEskil Abrahamsen Blomfeldt2009-04-236-94/+44
| | | | | | | | | | | | use case for this, so it has been removed. If the requirement arises we can add it back in later. Since it no longer makes sense to have it in QAbstractState, the RestorePolicy enum has been moved to QStateMachine.
| * kill the stateactions apiKent Hansen2009-04-2229-1533/+112
| | | | | | | | | | | | | | | | | | | | | | | | It just didn't give us that much. Typically you just reimplement onEntry/onExit/onTransition when you want to do something. We go back to the signals-and-slots approach: states have entered() and exited() signals that you can connect to. It's still possible to have an action-based API, but then you build it on top of the core API, which is OK. Replacing 4 public classes (and one layer in the hierarchy) with 2 signals feels good.
| * Add API for adding default animations to the state machine. This is especiallyEskil Abrahamsen Blomfeldt2009-04-213-4/+132
| | | | | | | | | | | | | | useful when using the RestoreProperties policy, because this is intended to allow you to build a state machine without having each state consider all the possible properties that may be set by some state at some point. Default animations provide the same convenience for animated properties.
| * doc: Document return value of QState::addTransition(QAbstractTransition*)Eskil Abrahamsen Blomfeldt2009-04-211-1/+2
| |
| * Have QState::addTransition(QAbstractTransition*) return the transition objectEskil Abrahamsen Blomfeldt2009-04-212-5/+6
| | | | | | | | | | | | | | | | | | when it is added. Reduces the number of temporary variables you have to declare in your code since you can do things like: state->addTransition(new Transition())->addAnimation(new Animation()); Could also be used for error checking.
* | Fix a bug in the ease{In,Out}Bounce easing functions + small cleanup.Jan-Arve Sæther2009-04-231-17/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The bug was in easeOutBounce_helper(), where the last else-block adjusted t wrong. It should adjust t so that the peak is at t == 0, but it adjusted it too little. The old code did t -= (2.25f/2.75f), but it should have been 21/22. The rest of the changes in that function is just simple mathematical rewrites (use a more readable fraction), and removed the b argument, since that was always 0. Finally, fixing the original bug also revealed a bug in the first line of easeOutBounce_helper(), where we always returned 1.0 for t == 1.0. That was wrong since it did not respect c.
* | Remove trailing whitespaceJan-Arve Sæther2009-04-231-32/+32
| |
* | Fixes QPropertyAnimation's default start value update conditionLeonardo Sobral Cunha2009-04-222-20/+16
| | | | | | | | | | | | | | The default start value is updated when the animation changes from Stopped to Running state. Reviewed-by: Jan-Arve
* | Fixes for solution package.Jan-Arve Sæther2009-04-221-2/+3
| |
* | Expose QVariantAnimationPrivate::getInterpolator in the private headerLeonardo Sobral Cunha2009-04-212-2/+4
| | | | | | | | These interpolator functions might be useful for other internal classes.
* | QPropertyAnimation reevaluates the default start value after each runLeonardo Sobral Cunha2009-04-211-2/+4
|/ | | | | | | | When the start value is not explicitly defined, the property animation will set the default start to be the current property value when updating the animation's state to Running. Reviewed-by: Jan-Arve
* Merge branch 'kinetic-animations' into kinetic-statemachineKent Hansen2009-04-211-1/+2
|\
| * Fixes bug when adding the same child animation twice to the same groupLeonardo Sobral Cunha2009-04-211-1/+2
| | | | | | | | | | | | | | | | The child animation was removed twice from the group because in QAnimationGroup::insertAnimationAt the insertion in the list was done before removing the animation. Reviewed-by: Jan-Arve
* | Merge branch 'kinetic-animations' into kinetic-statemachineKent Hansen2009-04-2115-600/+117
|\ \ | |/
| * don't assert if the signal is not validKent Hansen2009-04-211-1/+2
| |
| * remove QItemAnimation and add the interpolator for QColorThierry Bastian2009-04-206-511/+28
| |
| * iterationCount becomes loopCount againThierry Bastian2009-04-209-89/+89
| |
* | rename QTransition -> QActionTransitionKent Hansen2009-04-2113-87/+88
| |
* | don't assert if the signal is not validKent Hansen2009-04-211-1/+2
| |
* | initialize "for-future-expansion"-pointerKent Hansen2009-04-201-1/+1
|/