QGroundControl
Ground Control Station for MAVLink Drones
Loading...
Searching...
No Matches
QGCEventTransition.cc
Go to the documentation of this file.
2#include "QGCState.h"
3
4QGCEventTransition::QGCEventTransition(QObject* object, QEvent::Type eventType, QAbstractState* target)
5 : QEventTransition(object, eventType)
6{
7 setTargetState(target);
8}
9
10QGCEventTransition::QGCEventTransition(QObject* object, QEvent::Type eventType, QAbstractState* target, Guard guard)
11 : QEventTransition(object, eventType)
12 , _guard(std::move(guard))
13{
14 setTargetState(target);
15}
16
18{
19 if (!QEventTransition::eventTest(event)) {
20 return false;
21 }
22
23 if (_guard && !_guard(event)) {
24 qCDebug(QGCStateMachineLog) << "QGCEventTransition blocked by guard";
25 return false;
26 }
27
28 return true;
29}
bool eventTest(QEvent *event) override
QGCEventTransition(QObject *object, QEvent::Type eventType, QAbstractState *target)
std::function< bool(QEvent *)> Guard