summaryrefslogtreecommitdiffstats
path: root/src/corelib/statemachine
Commit message (Collapse)AuthorAgeFilesLines
* Remove default error stateEskil Abrahamsen Blomfeldt2009-06-233-65/+34
| | | | | | | | | Having an implicit default error state in the graph which the user has not added is unintuitive and ugly. Rather than have a default error state, we stop execution of the machine and print an error message when the machine has run-time errors. If a user wishes to prevent errors from stopping the machine, you can set one or more error states explicitly.
* perform normalization of signatures for signal transitionsKent Hansen2009-06-222-8/+15
| | | | Make state->addTransition(foo, SIGNAL( bar( ) ), ...) work.
* perform all property assignments of initial state that's nestedKent Hansen2009-06-171-2/+2
| | | | | | If the machine's initial state is nested, a set of states will be entered, and we need to do the property assignments of all of them.
* bring back QAbstractTransition::triggered() signalKent Hansen2009-06-174-0/+23
| | | | | | It's been requested by several users. Since we have QAbstractState::{entered,exited}() signals, we should have this one as well.
* prevent subclasses from emitting entered() and exited()Kent Hansen2009-06-171-0/+3
| | | | The state machine decides when these signals are emitted.
* Update license headers in files that are new in 4.6.Jason McDonald2009-06-1725-50/+50
| | | | Reviewed-by: Trust Me
* Merge license header changes from 4.5Volker Hilsheimer2009-06-161-2/+2
|
* remove q->layout() and q->parentWidget() code where unnecessaryThierry Bastian2009-06-112-6/+3
|
* add QT_NO_STATEMACHINE define so state machine can be compiled outKent Hansen2009-06-0418-0/+80
| | | | Reviewed-by: Thierry Bastian
* fix signal signature bug in debug outputKent Hansen2009-06-031-2/+2
| | | | | The signal code (first character of const char *signal) is stripped internally, so the debug output code should not skip any characters.
* don't require use of SIGNAL macro in calls to addTransition()Kent Hansen2009-06-031-2/+3
| | | | | Just as with the QSignalTransition::signal property, this makes it possible to use the function from language bindings (e.g. QtScript).
* fix qdoc warningKent Hansen2009-06-031-1/+1
| | | | No need to link to the class in its own doc page.
* prepend private/ for included private headersMartin Jones2009-06-015-5/+5
|
* QStateMachine: better way to get the sender signalIndexOlivier Goffart2009-05-281-18/+7
| | | | | | | | | | | | The QObject internals have changed, and the mutex that need to be locked to access the senders list is not the same anymore, and not accessible form qstatemachine.cpp But we do not need to loop over the senders list anyway because this is done in sender() We also do not need to lock in order to access the currentSender Reviewed-by: Eskil
* Use Qt::UniqueConnection instead of disconnect/connectOlivier Goffart2009-05-281-2/+1
| | | | | | | Also fix an issue in QTreeView where a signal could be connected several times Reviewed-by: Thierry
* Compile qstatemachine autotestOlivier Goffart2009-05-281-1/+1
|
* Removed some export to symbols that don't need itThierry Bastian2009-05-254-22/+6
| | | | ...hopefully
* Added QT_NO_ANIMATION to qfeaturesThierry Bastian2009-05-251-4/+9
| | | | | Now you can opt it out to save disk space (for embedded). Also tested it and fixed code in state machine.
* Fixed 'crazy' warnings about using a string instead of a characterThierry Bastian2009-05-251-12/+12
| | | | | | | Wherever I found that we were using a string instead of a single char I fixed the code. Reviewed-by: olivier
* make sure signal transition is correctly unregistered/re-registeredKent Hansen2009-05-222-14/+18
| | | | | | When the signal or senderObject is changed while the state is active, the transition needs to be unregistered _before_ either property is changed, only _then_ can it be re-registered.
* make sure event transition is correctly unregistered/re-registeredKent Hansen2009-05-222-14/+18
| | | | | | When the eventType or eventObject is changed while the state is active, the transition needs to be unregistered _before_ either property is changed, only _then_ can it be re-registered.
* Merge branch 'master' of git@scm.dev.nokia.troll.no:qt/qt into ↵Thierry Bastian2009-05-221-1/+1
| | | | | | | | | | | | | kinetic-animations Conflicts: src/corelib/kernel/kernel.pri src/corelib/kernel/qvariant_p.h src/corelib/tools/tools.pri src/gui/graphicsview/qgraphicsitem.cpp src/gui/graphicsview/qgraphicsitem.h src/gui/graphicsview/qgraphicswidget.h src/gui/gui.pro
* kill unused private functionsKent Hansen2009-05-226-18/+0
|
* doc: Update signature of eventTest() in documentationEskil Abrahamsen Blomfeldt2009-05-151-1/+1
| | | | eventTest() is now non-const.
* Make QAbstractTransition::eventTest() non-constEskil Abrahamsen Blomfeldt2009-05-149-10/+10
| | | | | We decided to remove the const of the eventTest() since some transitions have dynamic conditions and need to update when eventTest() is called.
* correctly handle multiple event transitions for same (object,event)Kent Hansen2009-05-132-7/+14
| | | | | | The event filter was not removed at the right time. We now store the number of active event transitions for a particular (object,event) and only remove the filtering when the count drops to zero.
* Merge branch 'kinetic-animations' into kinetic-statemachineKent Hansen2009-05-131-55/+85
|\
| * Merge branch 'kinetic-animations' of git@scm.dev.nokia.troll.no:qt/kinetic ↵Geir Vattekar2009-05-133-15/+23
| |\ | | | | | | | | | into kinetic-animations
| * | Doc: Work on QStateMachine class descriptionGeir Vattekar2009-05-131-55/+85
| | | | | | | | | | | | Reviewed-by: Kent Hansen
* | | kill the QT_STATEMACHINE_SOLUTION defineKent Hansen2009-05-1318-228/+16
| |/ |/| | | | | We won't release another Qt Solution, so the define is no longer needed.
* | correctly handle multiple signal transitions for same (object,signal)Kent Hansen2009-05-123-15/+23
|/ | | | | | The signal was not disconnected at the right time. We now store the number of active signal transitions for a particular (object,signal) and only disconnect when the count drops to zero.
* Fixes crash when calling QState::setErrorState() with null pointerEskil Abrahamsen Blomfeldt2009-05-121-1/+1
| | | | When the state is null, it isn't the root state.
* gracefully handle deletion of transition's target stateKent Hansen2009-05-083-4/+17
|
* get rid of warningsKent Hansen2009-05-081-2/+0
|
* make sure connections and event filters are removed when state machine haltsKent Hansen2009-05-082-0/+17
|
* 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.
* 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
|
* add event as argument to onEntry(), onExit() and onTransition()Kent Hansen2009-05-0518-62/+72
| | | | | | | | | 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
|