summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorKevin Funk <kevin.funk@kdab.com>2016-11-17 23:02:26 +0100
committerJan Arne Petersen <jan.petersen@kdab.com>2016-11-22 15:22:55 +0000
commite8bee4bd6f6f6373806704fef7b9618372f2130c (patch)
tree0fd1f0554b1da9b23a82e60cd06251ddb197f151 /src
parentb187f0bf115847c09cee70c74c2d4fdfc6a292d8 (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.cpp13
-rw-r--r--src/scxml/qscxmlstatemachineinfo_p.h1
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;