diff options
Diffstat (limited to 'src/qscxml.h')
-rw-r--r-- | src/qscxml.h | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/src/qscxml.h b/src/qscxml.h index fc6b590..4cf4365 100644 --- a/src/qscxml.h +++ b/src/qscxml.h @@ -19,7 +19,7 @@ #include <QStringList> #include <QScriptValue> #include <QUrl> - +#include <QScriptProgram> class QScriptEngine; class QScxml; @@ -60,22 +60,23 @@ class QScxmlTransition : public QAbstractTransition { Q_OBJECT Q_PROPERTY(QString conditionExpression READ conditionExpression WRITE setConditionExpression) - Q_PROPERTY(QString eventPrefix READ eventPrefix WRITE setEventPrefix) + Q_PROPERTY(QStringList eventPrefixes READ eventPrefixes WRITE setEventPrefixes) public: QScxmlTransition (QState* state, QScxml* machine); - QString conditionExpression () const { return cond; } - void setConditionExpression (const QString & c) { cond = c; } - QString eventPrefix () const { return ev; } - void setEventPrefix (const QString & e) { ev = e; } + QString conditionExpression () const; + void setConditionExpression (const QString & c); + QStringList eventPrefixes () const { return ev; } + void setEventPrefixes (const QStringList & e) { ev = e; } protected: bool eventTest(QEvent*); void onTransition (QEvent*); private: QScxml* scxml; - QString ev,cond; + QStringList ev; + QScriptProgram prog; }; class QScxmlInvoker : public QObject @@ -147,10 +148,14 @@ class QScxml : public QStateMachine void setBaseUrl (const QUrl &); QUrl baseUrl () const; static QScxml* load (const QString & filename, QObject* o = NULL); + QMap<QString,QVariant> data() const; + QStringList knownEventNames() const; public Q_SLOTS: void postNamedEvent(const QString &); void executeScript (const QString &); + void executeScript (const QScriptProgram &); + void setData(const QString & id, const QVariant & value); private Q_SLOTS: void registerSession(); @@ -159,6 +164,8 @@ class QScxml : public QStateMachine Q_SIGNALS: void eventTriggered(const QString &); + void dataChanged (const QString &, const QVariant &); + void configurationChanged(); private: class QScxmlPrivate* pvt; |