4#include <QtCore/QMetaObject>
13 , _skipPredicate(std::move(skipPredicate))
14 , _setupFunction(std::move(setupFunc))
15 , _skipAction(std::move(skipAction))
26 if (_completionConnection) {
27 disconnect(_completionConnection);
28 _completionConnection = {};
37 if (_skipPredicate && _skipPredicate()) {
38 qCDebug(QGCStateMachineLog) <<
"Skip condition met, skipping" <<
stateName();
53 qCDebug(QGCStateMachineLog) <<
"Condition not met, executing" <<
stateName();
QString stateName() const
std::function< void()> SkipAction
void skipped()
Emitted when skip predicate returns true and the state is skipped.
std::function< bool()> SkipPredicate
void onWaitEntered() override
Called when the state is entered - subclasses should call base implementation.
std::function< void(SkippableAsyncState *state)> SetupFunction
SkippableAsyncState(const QString &stateName, QState *parent, SkipPredicate skipPredicate, SetupFunction setupFunc, SkipAction skipAction=nullptr, int timeoutMsecs=0)
void connectWaitSignal() override
Subclasses override to set up their signal connections.
void disconnectWaitSignal() override
Subclasses override to tear down their signal connections.