Details
-
Bug
-
Resolution: Unresolved
-
P3: Somewhat important
-
None
-
5.4.2, 5.5.0 Beta
-
None
Description
QState (and therefore also QStateMachine) want the initial state to be a direct decendant of itself. For example:
QState a;
QState b(&a);
QState c(&b);
a.setInitialState(&c); // WARNING: state 0x123 is not a child of this state (0x456)
There is noting preventing a "deep" state as the initial state. The state machine will then enter both b and c whenever a is entered. The check should be changed to see if the initial state has the current state as an ancestor, and not as a direct parent.