summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* don't create transition to null stateKent Hansen2009-05-081-2/+5
|
* don't add signal transition if target is null or signal doesn't existKent Hansen2009-05-071-0/+9
|
* Make it impossible to have root state as source or target of transition or ↵Eskil Abrahamsen Blomfeldt2009-05-073-4/+26
| | | | | | | | | | | as error state Since the root state has no ancestors, it cannot be source or target in transitions since there will be no LCA for the transition, which is required for the algorithm of enterStates and exitStates. In SCXML the root state cannot be target or source of a transition. By the same logic, it cannot be an error state. The root state will always have a valid machine, since it's added to a machine immediately, which makes this code possible.
* Merge branch 'kinetic-animations' into kinetic-statemachineKent Hansen2009-05-073-3/+18
|\
| * Addeed a warning if one is trying to animate a property that's not partThierry Bastian2009-05-071-0/+2
| | | | | | | | | | | | of the object Task-number: 251763
| * Provide a way in private API to have a consistent timer for animations.Thierry Bastian2009-05-072-3/+16
| | | | | | | | | | | | | | | | This allows for better testing because from now on we can rely on the results to be always the same and not rely on timer accuracy any more. Task-number: 251764 Reviewed-by: leo
* | add QStateMachine::isRunning()Kent Hansen2009-05-072-0/+13
| |
* | store top-level animation in dedicated variableKent Hansen2009-05-071-3/+4
| | | | | | | | The animation itself is used by subsequent code, so we mustn't change it.
* | doc: Add documentation for NoCommonAncestorForTransitionError enumEskil Abrahamsen Blomfeldt2009-05-071-0/+5
| |
* | Rename NoDefaultStateInHistoryState -> NoDefaultStateInHistoryStateError for ↵Eskil Abrahamsen Blomfeldt2009-05-072-5/+5
| | | | | | | | | | | | consistency The other error values have Error in the name for namespacing purposes.
* | Fix infinite loop when source and target of transition are in different treesEskil Abrahamsen Blomfeldt2009-05-072-15/+34
| | | | | | | | | | | | | | | | | | | | | | The SCXML algorithm depends on the guarantee that there is always an LCA regardless of the state list. The case where the targets are in a different tree than the source (e.g. if you have not given the target state a parent) is a bug. The fix is to set an error when this happens in exitStates() and exit states as if the pending error states were the target states. In enterStates we will detect the error and skip the step of selecting states to enter, and instead just enter the pending error states. This breaks transitions to and from the root state, which is not supported by the SCXML algorithm.
* | Make sure machine enters error state if history state has no default stateEskil Abrahamsen Blomfeldt2009-05-071-10/+10
|/ | | | | | | | Keep searching the parent hierarchy for error states even if a state in the hierarchy cannot be cast to QState. Also make currentErrorState==0 an assert, since there should always be an error state (we default to the special initialErrorState if we are unable to find anything else), otherwise the machine might get into an undefined state (e.g. configuration is empty)
* Remove superfluous codeEskil Abrahamsen Blomfeldt2009-05-061-7/+0
| | | | | | | We have gone back to the old definition of implicit start values where the a new default start value is sniffed every time the animation is restarted, so we do not need to emulate this behavior ourselves anymore. Behavior should be identical.
* Fix bogus default start value when interrupting an animation that has anEskil Abrahamsen Blomfeldt2009-05-061-5/+7
| | | | | | | | implicit end value. We need to stop the animation prior to setting the end value to an invalid variant, otherwise the current value of the property will be updated based on the new end value and randomness will occur.
* doc improvementsKent Hansen2009-05-054-23/+51
|
* get rid of warningsKent Hansen2009-05-052-1/+3
|
* Merge branch 'kinetic-animations' into kinetic-statemachineKent Hansen2009-05-052-100/+153
|\
| * Doc: Work on QAbstractAnimation class descriptionGeir Vattekar2009-05-051-46/+49
| |
| * Doc: Git merge conflict in QVariantAnimationGeir Vattekar2009-05-051-7/+0
| |
| * Doc: Updated QVariantAnimation class descriptionGeir Vattekar2009-05-052-47/+114
| |
| * Small refactor of QVariantAnimation::updateCurrentValueThierry Bastian2009-04-291-17/+7
| | | | | | | | | | | | we only test the inequality of the new value compared to the previous one in case we have something conected to currentValueChanged signal. The comparison is quite heavy in QVariant. So avoiding it a good thing.
* | 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.