summaryrefslogtreecommitdiffstats
path: root/src/scxml/qscxmlparser.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/scxml/qscxmlparser.cpp')
-rw-r--r--src/scxml/qscxmlparser.cpp11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/scxml/qscxmlparser.cpp b/src/scxml/qscxmlparser.cpp
index 6862614..d09f4c7 100644
--- a/src/scxml/qscxmlparser.cpp
+++ b/src/scxml/qscxmlparser.cpp
@@ -1176,6 +1176,15 @@ DocumentModel::Node::~Node()
{
}
+DocumentModel::AbstractState *DocumentModel::Node::asAbstractState()
+{
+ if (State *state = asState())
+ return state;
+ if (HistoryState *history = asHistoryState())
+ return history;
+ return Q_NULLPTR;
+}
+
void DocumentModel::DataElement::accept(DocumentModel::NodeVisitor *visitor)
{
visitor->visit(this);
@@ -1981,7 +1990,7 @@ bool QScxmlParserPrivate::postReadElementData()
DocumentModel::DataElement *data = Q_NULLPTR;
if (auto state = m_currentState->asState()) {
data = state->dataElements.last();
- } else if (auto scxml = m_currentState->asNode()->asScxml()) {
+ } else if (auto scxml = m_currentState->asScxml()) {
data = scxml->dataElements.last();
} else {
Q_UNREACHABLE();