blob: b44b45f22c0858610d6ce914bfcab19fd4fbd0f1 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
#ifndef QMLSCXML_H
#define QMLSCXML_H
#include <QObject>
#include <QSet>
#include "qml.h"
class QAbstractState;
class QmlScxml : public QObject
{
Q_OBJECT
Q_PROPERTY(QUrl source READ source WRITE setSource NOTIFY sourceChanged)
Q_PROPERTY(QObject* states READ states NOTIFY statesChanged)
Q_PROPERTY(QObject* events READ events NOTIFY eventsChanged)
Q_PROPERTY(QObject* data READ data NOTIFY dataChanged)
Q_PROPERTY(QObject* current READ current NOTIFY currentChanged)
Q_PROPERTY(bool running READ isRunning WRITE setRunning NOTIFY runningChanged)
public:
QmlScxml(QObject* o = NULL);
virtual ~QmlScxml();
QObject* states() const;
QObject* events() const;
QObject* data() const;
QObject* current() const;
QUrl source() const;
void setSource(const QUrl &);
bool isRunning() const;
void setRunning(bool);
public slots:
void raise(const QString &);
void stop();
void start();
signals:
void sourceChanged(const QUrl &);
void statesChanged(QObject*);
void eventsChanged(QObject*);
void dataChanged(QObject*);
void currentChanged(QObject*);
void trigger(const QString & e);
void runningChanged();
void finished();
private slots:
void onDataChanged(const QString &, const QVariant &);
void onDataChanged(const QString &);
void checkConfig();
private:
class QmlPropertyMap* m_states;
class QmlPropertyMap* m_events;
class QmlPropertyMap* m_data;
class QmlPropertyMap* m_cur;
QMap<QAbstractState*,QString> m_idForState;
QUrl m_source;
QSet<QAbstractState*> m_oldConfig;
class QScxml* scxml;
};
QML_DECLARE_TYPE(QmlScxml);
#endif // QMLSCXML_H
|