diff options
author | Kevin Funk <kevin.funk@kdab.com> | 2016-11-17 23:02:26 +0100 |
---|---|---|
committer | Jan Arne Petersen <jan.petersen@kdab.com> | 2016-11-22 15:22:55 +0000 |
commit | e8bee4bd6f6f6373806704fef7b9618372f2130c (patch) | |
tree | 0fd1f0554b1da9b23a82e60cd06251ddb197f151 /src | |
parent | b187f0bf115847c09cee70c74c2d4fdfc6a292d8 (diff) |
Add QScxmlStateMachineInfo::initialTransition()
Also add tests
Change-Id: Ib94bd6c82129e77378caf2c53c3c8d443c6cc334
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Diffstat (limited to 'src')
-rw-r--r-- | src/scxml/qscxmlstatemachineinfo.cpp | 13 | ||||
-rw-r--r-- | src/scxml/qscxmlstatemachineinfo_p.h | 1 |
2 files changed, 14 insertions, 0 deletions
diff --git a/src/scxml/qscxmlstatemachineinfo.cpp b/src/scxml/qscxmlstatemachineinfo.cpp index 154cea1..d81956a 100644 --- a/src/scxml/qscxmlstatemachineinfo.cpp +++ b/src/scxml/qscxmlstatemachineinfo.cpp @@ -175,6 +175,19 @@ QScxmlStateMachineInfo::TransitionType QScxmlStateMachineInfo::transitionType(QS } } +QScxmlStateMachineInfo::TransitionId QScxmlStateMachineInfo::initialTransition(StateId stateId) const +{ + Q_D(const QScxmlStateMachineInfo); + + if (stateId == InvalidStateId) + return d->stateTable()->initialTransition; + + if (stateId < 0 || stateId >= d->stateTable()->stateCount) + return InvalidTransitionId; + + return d->stateTable()->state(stateId).initialTransition; +} + QScxmlStateMachineInfo::StateId QScxmlStateMachineInfo::transitionSource(TransitionId transitionId) const { Q_D(const QScxmlStateMachineInfo); diff --git a/src/scxml/qscxmlstatemachineinfo_p.h b/src/scxml/qscxmlstatemachineinfo_p.h index 04d1967..7a8ca50 100644 --- a/src/scxml/qscxmlstatemachineinfo_p.h +++ b/src/scxml/qscxmlstatemachineinfo_p.h @@ -97,6 +97,7 @@ public: // methods StateId stateParent(StateId stateId) const; StateType stateType(int stateId) const; QVector<StateId> stateChildren(StateId stateId) const; + TransitionId initialTransition(StateId stateId) const; TransitionType transitionType(TransitionId transitionId) const; StateId transitionSource(TransitionId transitionId) const; QVector<StateId> transitionTargets(TransitionId transitionId) const; |