Details
-
Bug
-
Resolution: Duplicate
-
P2: Important
-
None
-
5.12.8, 5.15.1
-
None
Description
Due to wrong index resolving for isActive(stateIndex) function in qscxmlstatemachine.cpp (line 2362) state is not activated.
History state is skipped for properties of generated state machine, so property index in isActive call is not equal to state index. Possible solution is to use signal index hash:
bool QScxmlStateMachine::isActive(int stateIndex) const { Q_D(const QScxmlStateMachine); const int index = d->m_stateIndexToSignalIndex.key(stateIndex, -1); return d->m_configuration.contains(index); }
simple sample is attached. Transition to B should activate it. Signals are emitted, state is added to m_configuration, but property check of generated state machine leads to wrong return (active is false)
Attachments
Issue Links
- duplicates
-
QTBUG-80262 SCXML StateMachine state properties get incorrect values if History is used
- Closed