Go to the documentation of this file.
30 for (
State *child : childStates) {
31 if (
auto *pseudoState = qobject_cast<PseudoState *>(child)) {
33 const Transition *transition = pseudoState->transitions().value(0);
34 return transition ? transition->
targetState() :
nullptr;
46 QString pseudoStateName;
47 QString transitionName;
49 for (
State *child : childStates) {
50 if (
auto *pseudoState = qobject_cast<PseudoState *>(child)) {
52 pseudoStateName = pseudoState->label();
53 const Transition *transition = pseudoState->transitions().value(0);
55 transitionName = transition->
label();
64 if (pseudoStateName.isEmpty()) {
65 pseudoStateName = QStringLiteral(
"initalState_%1_%2").arg(state->
label()).arg(initialState->
label());
68 if (transitionName.isEmpty()) {
69 transitionName = QStringLiteral(
"transitionInitalState_%1_%2").arg(state->
label()).arg(initialState->
label());
76 tr->setLabel(transitionName);
77 tr->setTargetState(initialState);
82 if (!root || root->
label().isEmpty())
85 if (label == root->
label())
89 for (
State *state : childStates) {
100 QObject *current =
const_cast<Element *
>(element);
101 while (current !=
nullptr) {
102 if (
auto *machine = qobject_cast<StateMachine *>(current))
104 current = current->parent();
void setLabel(const QString &label)
QList< State * > childStates() const
KDSME::State * targetState
KDSME_CORE_EXPORT void setInitialState(State *state, State *initialState)
KDSME_CORE_EXPORT State * findInitialState(const State *state)
KDSME_CORE_EXPORT StateMachine * findStateMachine(const Element *element)
KDSME_CORE_EXPORT State * findState(State *root, const QString &label)