diff options
Diffstat (limited to 'src/scxml')
-rw-r--r-- | src/scxml/qscxmlstatemachine.cpp | 4 | ||||
-rw-r--r-- | src/scxml/qscxmlstatemachine.h | 1 |
2 files changed, 5 insertions, 0 deletions
diff --git a/src/scxml/qscxmlstatemachine.cpp b/src/scxml/qscxmlstatemachine.cpp index 78a8542..3ef07ae 100644 --- a/src/scxml/qscxmlstatemachine.cpp +++ b/src/scxml/qscxmlstatemachine.cpp @@ -667,6 +667,10 @@ void QScxmlInternal::WrappedQStateMachine::beginSelectTransitions(QEvent *event) emit d->stateMachine()->eventOccurred(*scxmlEvent); } + if (scxmlEvent->originType() == QLatin1String("qt:signal")) { + emit d->stateMachine()->externalEventOccurred(*scxmlEvent); + } + if (smp->m_eventFilter && !smp->m_eventFilter->handle(scxmlEvent, d->stateMachine())) { scxmlEvent->makeIgnorable(); scxmlEvent->clear(); diff --git a/src/scxml/qscxmlstatemachine.h b/src/scxml/qscxmlstatemachine.h index 0037fef..5a800d5 100644 --- a/src/scxml/qscxmlstatemachine.h +++ b/src/scxml/qscxmlstatemachine.h @@ -141,6 +141,7 @@ Q_SIGNALS: void dataModelChanged(QScxmlDataModel *model); void initialValuesChanged(const QVariantMap &initialValues); void initializedChanged(bool initialized); + void externalEventOccurred(const QScxmlEvent &event); public Q_SLOTS: void start(); |