summaryrefslogtreecommitdiffstats
path: root/src/scxml
diff options
context:
space:
mode:
Diffstat (limited to 'src/scxml')
-rw-r--r--src/scxml/qscxmlstatemachine.cpp4
-rw-r--r--src/scxml/qscxmlstatemachine.h1
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();