summaryrefslogtreecommitdiffstats
path: root/src/qscxml.h
diff options
context:
space:
mode:
authorNo'am Rosenthal <noam.rosenthal@nokia.com>2009-11-26 14:37:34 -0800
committerNo'am Rosenthal <noam.rosenthal@nokia.com>2009-11-26 14:37:34 -0800
commit7a19605fcc176c03563016836f208c88c1971987 (patch)
tree9fcba3b2934876281fc17ab784adf0f43d2c794e /src/qscxml.h
parentf39fc65768abd12577664cf086ab6255a2f17d01 (diff)
many fixes and optimizations to SCXML
Diffstat (limited to 'src/qscxml.h')
-rw-r--r--src/qscxml.h21
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;