qt5base-lts/tests/auto/corelib
Erik Verbruggen b2f6406b6f QStateMachine: remove conflicting transitions after selection.
After selecting all (enabled) transitions for a microstep, filter out
any conflicting transition. The actual conflict resulution is done by
ordering the transitions in order of the states that selected them.

For example: if an event would trigger two transitions in a parallel
state where one would exit that state and the other would not, this
filtering prevents the state machine from selecting both states (as this
case is an invalid state of the whole machine).

This also fixes the exit set calculation for parallel states when one of
its substates is exited and subsequently re-entered in the same
transition. Previously, the parallel state was not exited, and
subsequent re-entry was ignored (because it was still active). Now it is
correctly exited and re-entered.

A side-effect of the transition ordering mentioned above is it also
fixes the non-deterministic behavior of which of the conflicting
transitions is taken.

[ChangeLog][QtCore] Fixed an issue where the state machine could end up
in an invalid state when transitions from a parallel state were not
checked for conflicts.
[ChangeLog][QtCore] Fixed a case where a parallel state was not exited
and re-entered when one of its substates was exited and subsequently
re-entered.
[ChangeLog][QtCore] Fixed the non-deterministic behavior of picking a
transition from a set of conflicting transitions.

Task-number: QTBUG-44783
Change-Id: I2ee72b6a2f552077bfa7aa4d369474ab62f4c2f0
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
Reviewed-by: Kevin Funk <kevin.funk@kdab.com>
2015-04-10 12:59:52 +00:00
..
animation Update copyright headers 2015-02-11 06:49:51 +00:00
codecs Fix support for iso8859-16 when compiling with ICU 2015-03-18 07:34:55 +00:00
global Updated BSD licensed file headers 2015-02-15 07:41:17 +00:00
io QSaveFile: Fix permissions on creation 2015-04-08 07:48:17 +00:00
itemmodels Update copyright headers 2015-02-11 06:49:51 +00:00
json Make sure remove() doesn't corrupt the json object 2015-03-18 07:34:59 +00:00
kernel Fix source incompatibility while connecting signals with forward declared arguments 2015-03-18 07:33:19 +00:00
mimetypes Merge remote-tracking branch 'origin/5.4' into 5.5 2015-03-31 10:03:31 +02:00
plugin QUuid: add missing relational operators 2015-04-04 06:40:27 +00:00
statemachine QStateMachine: remove conflicting transitions after selection. 2015-04-10 12:59:52 +00:00
thread Do not search test binary if QProcess is not supported. 2015-03-23 08:38:58 +00:00
tools QVLA: Add operator= for initializer lists 2015-04-04 15:48:13 +00:00
xml Update copyright headers 2015-02-11 06:49:51 +00:00
corelib.pro iOS: Enable building of basic tests 2014-01-22 12:35:17 +01:00