summaryrefslogtreecommitdiffstats
path: root/src/scxml/qscxmlecmascriptdatamodel.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/scxml/qscxmlecmascriptdatamodel.cpp')
-rw-r--r--src/scxml/qscxmlecmascriptdatamodel.cpp38
1 files changed, 16 insertions, 22 deletions
diff --git a/src/scxml/qscxmlecmascriptdatamodel.cpp b/src/scxml/qscxmlecmascriptdatamodel.cpp
index 5532a9b..869afec 100644
--- a/src/scxml/qscxmlecmascriptdatamodel.cpp
+++ b/src/scxml/qscxmlecmascriptdatamodel.cpp
@@ -121,25 +121,26 @@ public:
QJSEngine *engine = assertEngine();
dataModel = engine->globalObject();
- qCDebug(qscxmlLog) << stateMachine() << "initializing the datamodel";
+ qCDebug(qscxmlLog) << m_stateMachine << "initializing the datamodel";
setupSystemVariables();
}
void setupSystemVariables()
{
setReadonlyProperty(&dataModel, QStringLiteral("_sessionid"),
- stateMachine()->sessionId());
+ m_stateMachine->sessionId());
- setReadonlyProperty(&dataModel, QStringLiteral("_name"), stateMachine()->name());
+ setReadonlyProperty(&dataModel, QStringLiteral("_name"), m_stateMachine->name());
QJSEngine *engine = assertEngine();
auto scxml = engine->newObject();
- scxml.setProperty(QStringLiteral("location"), QStringLiteral("#_scxml_%1").arg(stateMachine()->sessionId()));
+ scxml.setProperty(QStringLiteral("location"), QStringLiteral("#_scxml_%1")
+ .arg(m_stateMachine->sessionId()));
auto ioProcs = engine->newObject();
setReadonlyProperty(&ioProcs, QStringLiteral("scxml"), scxml);
setReadonlyProperty(&dataModel, QStringLiteral("_ioprocessors"), ioProcs);
- auto platformVars = QScxmlPlatformProperties::create(engine, stateMachine());
+ auto platformVars = QScxmlPlatformProperties::create(engine, m_stateMachine);
dataModel.setProperty(QStringLiteral("_x"), platformVars->jsValue());
dataModel.setProperty(QStringLiteral("In"), engine->evaluate(
@@ -204,12 +205,6 @@ public:
return engine->toScriptValue(data);
}
- QScxmlStateMachine *stateMachine() const
- {
- Q_Q(const QScxmlEcmaScriptDataModel);
- return q->stateMachine();
- }
-
QJSEngine *assertEngine()
{
if (!jsEngine) {
@@ -230,8 +225,7 @@ public:
QString string(StringId id) const
{
- Q_Q(const QScxmlEcmaScriptDataModel);
- return q->tableData()->string(id);
+ return m_stateMachine->tableData()->string(id);
}
bool hasProperty(const QString &name) const
@@ -265,7 +259,7 @@ public:
void submitError(const QString &type, const QString &msg, const QString &sendid = QString())
{
- QScxmlStateMachinePrivate::get(stateMachine())->submitError(type, msg, sendid);
+ QScxmlStateMachinePrivate::get(m_stateMachine)->submitError(type, msg, sendid);
}
public:
@@ -381,7 +375,7 @@ bool QScxmlEcmaScriptDataModel::setup(const QVariantMap &initialDataValues)
bool ok = true;
QJSValue undefined(QJSValue::UndefinedValue); // See B.2.1, and test456.
int count;
- StringId *names = tableData()->dataNames(&count);
+ StringId *names = d->m_stateMachine->tableData()->dataNames(&count);
for (int i = 0; i < count; ++i) {
auto name = d->string(names[i]);
QJSValue v = undefined;
@@ -402,7 +396,7 @@ bool QScxmlEcmaScriptDataModel::setup(const QVariantMap &initialDataValues)
QString QScxmlEcmaScriptDataModel::evaluateToString(EvaluatorId id, bool *ok)
{
Q_D(QScxmlEcmaScriptDataModel);
- const EvaluatorInfo &info = tableData()->evaluatorInfo(id);
+ const EvaluatorInfo &info = d->m_stateMachine->tableData()->evaluatorInfo(id);
return d->evalStr(d->string(info.expr), d->string(info.context), ok);
}
@@ -410,7 +404,7 @@ QString QScxmlEcmaScriptDataModel::evaluateToString(EvaluatorId id, bool *ok)
bool QScxmlEcmaScriptDataModel::evaluateToBool(EvaluatorId id, bool *ok)
{
Q_D(QScxmlEcmaScriptDataModel);
- const EvaluatorInfo &info = tableData()->evaluatorInfo(id);
+ const EvaluatorInfo &info = d->m_stateMachine->tableData()->evaluatorInfo(id);
return d->evalBool(d->string(info.expr), d->string(info.context), ok);
}
@@ -418,7 +412,7 @@ bool QScxmlEcmaScriptDataModel::evaluateToBool(EvaluatorId id, bool *ok)
QVariant QScxmlEcmaScriptDataModel::evaluateToVariant(EvaluatorId id, bool *ok)
{
Q_D(QScxmlEcmaScriptDataModel);
- const EvaluatorInfo &info = tableData()->evaluatorInfo(id);
+ const EvaluatorInfo &info = d->m_stateMachine->tableData()->evaluatorInfo(id);
return d->evalJSValue(d->string(info.expr), d->string(info.context), ok).toVariant();
}
@@ -426,7 +420,7 @@ QVariant QScxmlEcmaScriptDataModel::evaluateToVariant(EvaluatorId id, bool *ok)
void QScxmlEcmaScriptDataModel::evaluateToVoid(EvaluatorId id, bool *ok)
{
Q_D(QScxmlEcmaScriptDataModel);
- const EvaluatorInfo &info = tableData()->evaluatorInfo(id);
+ const EvaluatorInfo &info = d->m_stateMachine->tableData()->evaluatorInfo(id);
d->eval(d->string(info.expr), d->string(info.context), ok);
}
@@ -436,7 +430,7 @@ void QScxmlEcmaScriptDataModel::evaluateAssignment(EvaluatorId id, bool *ok)
Q_D(QScxmlEcmaScriptDataModel);
Q_ASSERT(ok);
- const AssignmentInfo &info = tableData()->assignmentInfo(id);
+ const AssignmentInfo &info = d->m_stateMachine->tableData()->assignmentInfo(id);
QString dest = d->string(info.dest);
@@ -454,7 +448,7 @@ void QScxmlEcmaScriptDataModel::evaluateAssignment(EvaluatorId id, bool *ok)
void QScxmlEcmaScriptDataModel::evaluateInitialization(EvaluatorId id, bool *ok)
{
Q_D(QScxmlEcmaScriptDataModel);
- const AssignmentInfo &info = tableData()->assignmentInfo(id);
+ const AssignmentInfo &info = d->m_stateMachine->tableData()->assignmentInfo(id);
QString dest = d->string(info.dest);
if (d->initialDataNames.contains(dest)) {
*ok = true; // silently ignore the <data> tag
@@ -469,7 +463,7 @@ void QScxmlEcmaScriptDataModel::evaluateForeach(EvaluatorId id, bool *ok, Foreac
Q_D(QScxmlEcmaScriptDataModel);
Q_ASSERT(ok);
Q_ASSERT(body);
- const ForeachInfo &info = tableData()->foreachInfo(id);
+ const ForeachInfo &info = d->m_stateMachine->tableData()->foreachInfo(id);
QJSValue jsArray = d->property(d->string(info.array));
if (!jsArray.isArray()) {