in my example i have 3 states, so i need make something like:
connect(state1, &MyState::transitionToState2Required, state2, &MyState::onTransitionExecuted);
connect(state1, &MyState::transitionToState3Required, state3, &MyState::onTransitionExecuted);
connect(state2, &MyState::transitionToState1Required, state1, &MyState::onTransitionExecuted);
connect(state2, &MyState::transitionToState3Required, state3, &MyState::onTransitionExecuted);
connect(state3, &MyState::transitionToState1Required, state1, &MyState::onTransitionExecuted);
connect(state3, &MyState::transitionToState2Required, state2, &MyState::onTransitionExecuted);
but if i have about 10 states I'll need to create about 100 such connections. may be there is any general mechanism?
as i understand, if make like this:
connect(state1, &MyState::transitionToState2Required, state2, &MyState::beforeTransitionExecuted);
state1->addTransition(state1, &MyState::transitionToState2Required, state2);
slot beforeTransitionExecuted will called before transition and i can save data in target slot?
and if i make:
state1->addTransition(state1, &MyState::transitionToState2Required, state2);
connect(state1, &MyState::transitionToState2Required, state2, &MyState::onTransitionExecuted);
transition will be executed early and only then onTransitionExecuted will be called? so it's better to use first variant?