diff options
author | Jarek Kobus <jaroslaw.kobus@qt.io> | 2016-08-22 16:04:11 +0200 |
---|---|---|
committer | Jarek Kobus <jaroslaw.kobus@qt.io> | 2016-08-23 08:12:10 +0000 |
commit | 78693ba8b671134e058b799005b8f5dd4f3fc1b3 (patch) | |
tree | 18e42427ae7dee3d5e8076e57f7514d02b13cc28 /examples | |
parent | 7baaedf871739beb584c0a0cd7e0af72310a58c4 (diff) |
Get rid of qt mode
Change-Id: Id8cc29a9a27f571f063b1cec51e534a3c762f2c6
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Diffstat (limited to 'examples')
22 files changed, 102 insertions, 84 deletions
diff --git a/examples/scxml/invoke-common/MainView.qml b/examples/scxml/invoke-common/MainView.qml index 4a75487..d7b8ec8 100644 --- a/examples/scxml/invoke-common/MainView.qml +++ b/examples/scxml/invoke-common/MainView.qml @@ -70,7 +70,7 @@ Window { text: "Go Nowhere" width: parent.width height: parent.height / 2 - onClicked: stateMachine.goNowhere() + onClicked: stateMachine.submitEvent("goNowhere") enabled: stateMachine.somewhere } @@ -80,7 +80,7 @@ Window { width: parent.width height: parent.height / 2 y: parent.height / 2 - onClicked: stateMachine.goSomewhere() + onClicked: stateMachine.submitEvent("goSomewhere") enabled: stateMachine.nowhere } } diff --git a/examples/scxml/invoke-common/SubView.qml b/examples/scxml/invoke-common/SubView.qml index 61cc723..2c374d5 100644 --- a/examples/scxml/invoke-common/SubView.qml +++ b/examples/scxml/invoke-common/SubView.qml @@ -58,7 +58,7 @@ Item { text: "Go There" width: parent.width / 2 height: parent.height - onClicked: anywhere.goThere() + onClicked: anywhere.submitEvent("goThere") } Button { @@ -68,6 +68,6 @@ Item { width: parent.width / 2 height: parent.height x: width - onClicked: anywhere.goHere() + onClicked: anywhere.submitEvent("goHere") } } diff --git a/examples/scxml/invoke-common/statemachine.scxml b/examples/scxml/invoke-common/statemachine.scxml index b9defeb..ad04cb3 100644 --- a/examples/scxml/invoke-common/statemachine.scxml +++ b/examples/scxml/invoke-common/statemachine.scxml @@ -50,7 +50,6 @@ ** ****************************************************************************/ --> -<!-- enable-qt-mode: yes --> <scxml xmlns="http://www.w3.org/2005/07/scxml" version="1.0" diff --git a/examples/scxml/invoke-dynamic/doc/src/invoke-dynamic.qdoc b/examples/scxml/invoke-dynamic/doc/src/invoke-dynamic.qdoc index 8c0f570..bff773a 100644 --- a/examples/scxml/invoke-dynamic/doc/src/invoke-dynamic.qdoc +++ b/examples/scxml/invoke-dynamic/doc/src/invoke-dynamic.qdoc @@ -47,7 +47,7 @@ \e Directions of type \e http://www.w3.org/TR/scxml/ to invoke: \quotefromfile invoke-common/statemachine.scxml - \skipto enable-qt-mode + \skipto scxml \printuntil \section1 Dynamically Loading the State Machine diff --git a/examples/scxml/invoke-static/doc/src/invoke-static.qdoc b/examples/scxml/invoke-static/doc/src/invoke-static.qdoc index d58f49c..099b904 100644 --- a/examples/scxml/invoke-static/doc/src/invoke-static.qdoc +++ b/examples/scxml/invoke-static/doc/src/invoke-static.qdoc @@ -47,7 +47,7 @@ \e Directions of type \e http://www.w3.org/TR/scxml/ to invoke: \quotefromfile invoke-common/statemachine.scxml - \skipto enable-qt-mode + \skipto scxml \printuntil \section1 Compiling the State Machine diff --git a/examples/scxml/mediaplayer-common/Mediaplayer.qml b/examples/scxml/mediaplayer-common/Mediaplayer.qml index 4d793fa..1804b55 100644 --- a/examples/scxml/mediaplayer-common/Mediaplayer.qml +++ b/examples/scxml/mediaplayer-common/Mediaplayer.qml @@ -50,7 +50,7 @@ import QtQuick 2.5 import QtQuick.Window 2.2 -import QtScxml 5.7 as Scxml +import QtScxml 5.7 Window { id: root @@ -111,27 +111,30 @@ Window { color: stateMachine.playing ? "green" : "red" } - Scxml.StateMachineLoader { + StateMachineLoader { id: scxmlLoader } - Connections { - target: stateMachine - onPlaybackStarted: { - var media = data.media - theText.text = "Playing '" + media + "'" - theLog.text = theLog.text + "\nplaybackStarted with data: " + JSON.stringify(data) - } - onPlaybackStopped: { - var media = data.media - theText.text = "Stopped '" + media + "'" - theLog.text = theLog.text + "\nplaybackStopped with data: " + JSON.stringify(data) + EventConnection { + stateMachine: root.stateMachine + events: ["playbackStarted", "playbackStopped"] + onOccurred: { + var media = event.data.media + if (event.name === "playbackStarted") { + theText.text = "Playing '" + media + "'" + theLog.text = theLog.text + "\nplaybackStarted with data: " + + JSON.stringify(event.data) + } else if (event.name === "playbackStopped") { + theText.text = "Stopped '" + media + "'" + theLog.text = theLog.text + "\nplaybackStopped with data: " + + JSON.stringify(event.data) + } } } function tap(idx) { var media = theModel.get(idx).media var data = { "media": media } - stateMachine.tap(data) + stateMachine.submitEvent("tap", data) } } diff --git a/examples/scxml/mediaplayer-common/doc/src/mediaplayer-dynamic.qdocinc b/examples/scxml/mediaplayer-common/doc/src/mediaplayer-dynamic.qdocinc deleted file mode 100644 index 94062ad..0000000 --- a/examples/scxml/mediaplayer-common/doc/src/mediaplayer-dynamic.qdocinc +++ /dev/null @@ -1,15 +0,0 @@ - \section1 Dynamically Loading the State Machine - - We link against the Qt SCXML module by adding the following line to the - example \e .pro file: - - \quotefromfile mediaplayer-qml-dynamic/mediaplayer-qml-dynamic.pro - \skipto QT - \printline scxml - - We dynamically create the state machine in - \e mediaplayer-common\Mediaplayer.qml: - - \quotefromfile mediaplayer-common/Mediaplayer.qml - \skipto import QtScxml - \printuntil scxmlLoader.filename diff --git a/examples/scxml/mediaplayer-common/doc/src/mediaplayer-ecmascript-data-model.qdocinc b/examples/scxml/mediaplayer-common/doc/src/mediaplayer-ecmascript-data-model.qdocinc index 31218ef..98b33c7 100644 --- a/examples/scxml/mediaplayer-common/doc/src/mediaplayer-ecmascript-data-model.qdocinc +++ b/examples/scxml/mediaplayer-common/doc/src/mediaplayer-ecmascript-data-model.qdocinc @@ -4,6 +4,6 @@ \c <scxml> element in \e mediaplayer-common/mediaplayer.scxml: \quotefromfile mediaplayer-common/mediaplayer.scxml - \skipto enable-qt-mode + \skipto scxml \printuntil </datamodel> diff --git a/examples/scxml/mediaplayer-common/doc/src/mediaplayer-widgets-connecting-to-states.qdocinc b/examples/scxml/mediaplayer-common/doc/src/mediaplayer-widgets-connecting-to-states.qdocinc new file mode 100644 index 0000000..08a152b --- /dev/null +++ b/examples/scxml/mediaplayer-common/doc/src/mediaplayer-widgets-connecting-to-states.qdocinc @@ -0,0 +1,16 @@ + \section1 Connecting to States + + The media player state machine will send out events when users tap a control + and when playback starts or stops, as specified in the SCXML file: + + \quotefromfile mediaplayer-common/mediaplayer.scxml + \skipto <state + \printuntil !== + \printuntil </state + + To be notified when a state machine sends out an event, we connect to the + corresponding signals: + + \quotefromfile mediaplayer-common/mainwindow.cpp + \skipto connect(ui + \printuntil playbackStopped diff --git a/examples/scxml/mediaplayer-common/mainwindow.cpp b/examples/scxml/mediaplayer-common/mainwindow.cpp index e9a5767..b4d3760 100644 --- a/examples/scxml/mediaplayer-common/mainwindow.cpp +++ b/examples/scxml/mediaplayer-common/mainwindow.cpp @@ -52,10 +52,11 @@ #include "ui_mainwindow.h" #include <QStringListModel> +#include <QScxmlStateMachine> QT_USE_NAMESPACE -MainWindow::MainWindow(QWidget *parent) : +MainWindow::MainWindow(QScxmlStateMachine *stateMachine, QWidget *parent) : QWidget(parent), ui(new Ui::MainWindow) { @@ -66,11 +67,15 @@ MainWindow::MainWindow(QWidget *parent) : << QStringLiteral("song 3"), this); ui->mediaListView->setModel(model); - connect(ui->mediaListView, &QAbstractItemView::clicked, [model,this](const QModelIndex & index){ + connect(ui->mediaListView, &QAbstractItemView::clicked, + [model, stateMachine](const QModelIndex & index) { QVariantMap data; data.insert(QStringLiteral("media"), model->data(index, Qt::EditRole).toString()); - emit tap(data); + stateMachine->submitEvent("tap", data); }); + + stateMachine->connectToEvent("playbackStarted", this, &MainWindow::started); + stateMachine->connectToEvent("playbackStopped", this, &MainWindow::stopped); } MainWindow::~MainWindow() @@ -78,16 +83,16 @@ MainWindow::~MainWindow() delete ui; } -void MainWindow::started(const QVariant &data) +void MainWindow::started(const QScxmlEvent &event) { - QString media = data.toMap().value("media").toString(); + const QString media = event.data().toMap().value("media").toString(); ui->logText->appendPlainText(QStringLiteral("call on slot started with media '%1'").arg(media)); ui->statusLabel->setText(QStringLiteral("Playing %1").arg(media)); } -void MainWindow::stopped(const QVariant &data) +void MainWindow::stopped(const QScxmlEvent &event) { - QString media = data.toMap().value("media").toString(); + const QString media = event.data().toMap().value("media").toString(); ui->logText->appendPlainText(QStringLiteral("call on slot stopped with media '%1'").arg(media)); ui->statusLabel->setText(QStringLiteral("Stopped")); } diff --git a/examples/scxml/mediaplayer-common/mainwindow.h b/examples/scxml/mediaplayer-common/mainwindow.h index e9ed5fe..38bb39f 100644 --- a/examples/scxml/mediaplayer-common/mainwindow.h +++ b/examples/scxml/mediaplayer-common/mainwindow.h @@ -57,6 +57,10 @@ QT_BEGIN_NAMESPACE namespace Ui { class MainWindow; } + +class QScxmlEvent; +class QScxmlStateMachine; + QT_END_NAMESPACE class MainWindow : public QWidget @@ -64,15 +68,12 @@ class MainWindow : public QWidget Q_OBJECT public: - explicit MainWindow(QWidget *parent = 0); + explicit MainWindow(QScxmlStateMachine *stateMachine, QWidget *parent = 0); ~MainWindow(); -signals: - void tap(const QVariant &data); - public slots: - void started(const QVariant &data); - void stopped(const QVariant &data); + void started(const QScxmlEvent &event); + void stopped(const QScxmlEvent &event); private: QT_PREPEND_NAMESPACE(Ui::MainWindow) *ui; diff --git a/examples/scxml/mediaplayer-common/mediaplayer.scxml b/examples/scxml/mediaplayer-common/mediaplayer.scxml index 025245a..ca68039 100644 --- a/examples/scxml/mediaplayer-common/mediaplayer.scxml +++ b/examples/scxml/mediaplayer-common/mediaplayer.scxml @@ -50,7 +50,6 @@ ** ****************************************************************************/ --> -<!-- enable-qt-mode: yes --> <scxml xmlns="http://www.w3.org/2005/07/scxml" version="1.0" @@ -76,13 +75,13 @@ <state id="playing"> <onentry> <assign location="media" expr="_event.data.media"/> - <send type="qt:signal" event="playbackStarted"> + <send event="playbackStarted"> <param name="media" expr="media"/> </send> </onentry> <onexit> - <send type="qt:signal" event="playbackStopped"> + <send event="playbackStopped"> <param name="media" expr="media"/> </send> </onexit> diff --git a/examples/scxml/mediaplayer-qml-cppdatamodel/doc/src/mediaplayer-qml-cppdatamodel.qdoc b/examples/scxml/mediaplayer-qml-cppdatamodel/doc/src/mediaplayer-qml-cppdatamodel.qdoc index 633922a..421e72e 100644 --- a/examples/scxml/mediaplayer-qml-cppdatamodel/doc/src/mediaplayer-qml-cppdatamodel.qdoc +++ b/examples/scxml/mediaplayer-qml-cppdatamodel/doc/src/mediaplayer-qml-cppdatamodel.qdoc @@ -50,7 +50,7 @@ \c <scxml> element in the SCXML file: \quotefromfile mediaplayer-qml-cppdatamodel/mediaplayer-cppdatamodel.scxml - \skipto enable-qt-mode + \skipto scxml \printuntil datamodel The format of the \e datamodel attribute is: diff --git a/examples/scxml/mediaplayer-qml-cppdatamodel/mediaplayer-cppdatamodel.scxml b/examples/scxml/mediaplayer-qml-cppdatamodel/mediaplayer-cppdatamodel.scxml index 3683c19..4ca810e 100644 --- a/examples/scxml/mediaplayer-qml-cppdatamodel/mediaplayer-cppdatamodel.scxml +++ b/examples/scxml/mediaplayer-qml-cppdatamodel/mediaplayer-cppdatamodel.scxml @@ -50,7 +50,6 @@ ** ****************************************************************************/ --> -<!-- enable-qt-mode: yes --> <scxml xmlns="http://www.w3.org/2005/07/scxml" version="1.0" @@ -67,13 +66,13 @@ <script> media = eventData().value(QStringLiteral("media")).toString(); </script> - <send type="qt:signal" event="playbackStarted"> + <send event="playbackStarted"> <param name="media" expr="media"/> </send> </onentry> <onexit> - <send type="qt:signal" event="playbackStopped"> + <send event="playbackStopped"> <param name="media" expr="media"/> </send> </onexit> diff --git a/examples/scxml/mediaplayer-qml-dynamic/doc/src/mediaplayer-qml-dynamic.qdoc b/examples/scxml/mediaplayer-qml-dynamic/doc/src/mediaplayer-qml-dynamic.qdoc index 525974a..4f0cb78 100644 --- a/examples/scxml/mediaplayer-qml-dynamic/doc/src/mediaplayer-qml-dynamic.qdoc +++ b/examples/scxml/mediaplayer-qml-dynamic/doc/src/mediaplayer-qml-dynamic.qdoc @@ -44,5 +44,19 @@ \include mediaplayer-ecmascript-data-model.qdocinc - \include mediaplayer-dynamic.qdocinc + \section1 Dynamically Loading the State Machine + + We link against the Qt SCXML module by adding the following line to the + example \e .pro file: + + \quotefromfile mediaplayer-qml-dynamic/mediaplayer-qml-dynamic.pro + \skipto QT + \printline scxml + + We dynamically create the state machine in + \e mediaplayer-common\Mediaplayer.qml: + + \quotefromfile mediaplayer-common/Mediaplayer.qml + \skipto import QtScxml + \printuntil scxmlLoader.filename */ diff --git a/examples/scxml/mediaplayer-widgets-dynamic/doc/src/mediaplayer-widgets-dynamic.qdoc b/examples/scxml/mediaplayer-widgets-dynamic/doc/src/mediaplayer-widgets-dynamic.qdoc index 6cc41df..59ec84f 100644 --- a/examples/scxml/mediaplayer-widgets-dynamic/doc/src/mediaplayer-widgets-dynamic.qdoc +++ b/examples/scxml/mediaplayer-widgets-dynamic/doc/src/mediaplayer-widgets-dynamic.qdoc @@ -44,5 +44,22 @@ \include mediaplayer-ecmascript-data-model.qdocinc - \include mediaplayer-dynamic.qdocinc + \section1 Dynamically Loading the State Machine + + We link against the Qt SCXML module by adding the following line to the + example \e .pro file: + + \quotefromfile mediaplayer-widgets-dynamic/mediaplayer-widgets-dynamic.pro + \skipto QT + \printuntil scxml + + \quotefromfile mediaplayer-widgets-dynamic/mediaplayer-widgets-dynamic.cpp + + We dynamically create and instantiate the state machine in + \e mediaplayer-wigdets-dynamic/mediaplayer-widgets-dynamic.cpp: + + \skipto mainwindow.h + \printuntil /^\}/ + + \include mediaplayer-widgets-connecting-to-states.qdocinc */ diff --git a/examples/scxml/mediaplayer-widgets-dynamic/mediaplayer-widgets-dynamic.cpp b/examples/scxml/mediaplayer-widgets-dynamic/mediaplayer-widgets-dynamic.cpp index eba0fba..457e4ee 100644 --- a/examples/scxml/mediaplayer-widgets-dynamic/mediaplayer-widgets-dynamic.cpp +++ b/examples/scxml/mediaplayer-widgets-dynamic/mediaplayer-widgets-dynamic.cpp @@ -58,16 +58,9 @@ int main(int argc, char **argv) QApplication app(argc, argv); auto machine = QScxmlStateMachine::fromFile(QStringLiteral(":mediaplayer.scxml")); - MainWindow mainWindow; + MainWindow mainWindow(machine); machine->setParent(&mainWindow); - QObject::connect(&mainWindow, SIGNAL(tap(const QVariant &)), - machine, SLOT(tap(const QVariant &))); - QObject::connect(machine, SIGNAL(playbackStarted(const QVariant &)), - &mainWindow, SLOT(started(const QVariant &))); - QObject::connect(machine, SIGNAL(playbackStopped(const QVariant &)), - &mainWindow, SLOT(stopped(const QVariant &))); - machine->start(); mainWindow.show(); return app.exec(); diff --git a/examples/scxml/mediaplayer-widgets-static/doc/src/mediaplayer-widgets-static.qdoc b/examples/scxml/mediaplayer-widgets-static/doc/src/mediaplayer-widgets-static.qdoc index 9d1ae39..dfa1230 100644 --- a/examples/scxml/mediaplayer-widgets-static/doc/src/mediaplayer-widgets-static.qdoc +++ b/examples/scxml/mediaplayer-widgets-static/doc/src/mediaplayer-widgets-static.qdoc @@ -55,9 +55,5 @@ \skipto mediaplayer.h \printuntil MainWindow mainWindow - To be notified when a state machine sends out an event, we connect to the - corresponding signals. The media player state machine will send out events - when users tap a control and when playback starts or stops: - - \printuntil MainWindow::stopped + \include mediaplayer-widgets-connecting-to-states.qdocinc */ diff --git a/examples/scxml/mediaplayer-widgets-static/mediaplayer-widgets-static.cpp b/examples/scxml/mediaplayer-widgets-static/mediaplayer-widgets-static.cpp index 1668eac..6a049d9 100644 --- a/examples/scxml/mediaplayer-widgets-static/mediaplayer-widgets-static.cpp +++ b/examples/scxml/mediaplayer-widgets-static/mediaplayer-widgets-static.cpp @@ -58,14 +58,7 @@ int main(int argc, char **argv) QApplication app(argc, argv); MediaPlayerStateMachine machine; - MainWindow mainWindow; - - QObject::connect(&mainWindow, &MainWindow::tap, - &machine, &MediaPlayerStateMachine::tap); - QObject::connect(&machine, &MediaPlayerStateMachine::playbackStarted, - &mainWindow, &MainWindow::started); - QObject::connect(&machine, &MediaPlayerStateMachine::playbackStopped, - &mainWindow, &MainWindow::stopped); + MainWindow mainWindow(&machine); machine.start(); mainWindow.show(); diff --git a/examples/scxml/pinball/pinball.scxml b/examples/scxml/pinball/pinball.scxml index 21e3591..022f202 100644 --- a/examples/scxml/pinball/pinball.scxml +++ b/examples/scxml/pinball/pinball.scxml @@ -50,7 +50,6 @@ ** ****************************************************************************/ --> -<!-- enable-qt-mode: no --> <scxml xmlns="http://www.w3.org/2005/07/scxml" version="1.0" name="Pinball" datamodel="ecmascript"> <datamodel> diff --git a/examples/scxml/trafficlight-common/TrafficLight.qml b/examples/scxml/trafficlight-common/TrafficLight.qml index 03eac30..87a36ac 100644 --- a/examples/scxml/trafficlight-common/TrafficLight.qml +++ b/examples/scxml/trafficlight-common/TrafficLight.qml @@ -106,9 +106,9 @@ Window { onClicked: { if (stateMachine.working) - stateMachine.smash() + stateMachine.submitEvent("smash") else - stateMachine.repair() + stateMachine.submitEvent("repair") } } } diff --git a/examples/scxml/trafficlight-common/statemachine.scxml b/examples/scxml/trafficlight-common/statemachine.scxml index 4224e81..3cf023e 100644 --- a/examples/scxml/trafficlight-common/statemachine.scxml +++ b/examples/scxml/trafficlight-common/statemachine.scxml @@ -50,7 +50,6 @@ ** ****************************************************************************/ --> -<!-- enable-qt-mode: yes --> <scxml xmlns="http://www.w3.org/2005/07/scxml" xmlns:qt="http://theqtcompany.com/scxml/2015/06/" |