summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@qt.io>2017-06-07 12:07:11 +0200
committerLiang Qi <liang.qi@qt.io>2017-06-07 12:08:39 +0200
commit5b89e61c39fb253dae46a8aa48d341a3fd37b4b4 (patch)
tree5cb87c847af5c330046b36301a3bf5b290d5f24b
parentb490e1b782ac28a82d7902f926f6e041ede179ca (diff)
parent27c4c643bae356d5bbdb58e44ec4b7932f277886 (diff)
Merge remote-tracking branch 'origin/5.9' into dev
Conflicts: .qmake.conf Change-Id: I5fa1c321a36fb70023ac7d99879c34c5ceaf8bb3
-rw-r--r--dist/changes-5.9.025
-rw-r--r--examples/scxml/calculator-widgets/doc/images/calculator.pngbin6054 -> 6272 bytes
-rw-r--r--examples/scxml/mediaplayer-common/doc/images/mediaplayer.pngbin7706 -> 5951 bytes
-rw-r--r--examples/scxml/sudoku/doc/images/sudoku.pngbin18609 -> 23599 bytes
-rw-r--r--src/imports/scxmlstatemachine/plugin.cpp8
-rw-r--r--src/scxml/qscxmlecmascriptdatamodel.cpp2
-rw-r--r--src/scxml/qscxmlexecutablecontent.cpp20
7 files changed, 45 insertions, 10 deletions
diff --git a/dist/changes-5.9.0 b/dist/changes-5.9.0
new file mode 100644
index 0000000..c314b00
--- /dev/null
+++ b/dist/changes-5.9.0
@@ -0,0 +1,25 @@
+Qt 5.9 introduces many new features and improvements as well as bugfixes
+over the 5.8.x series. For more details, refer to the online documentation
+included in this distribution. The documentation is also available online:
+
+http://doc.qt.io/qt-5/index.html
+
+The Qt version 5.9 series is binary compatible with the 5.8.x series.
+Applications compiled for 5.8 will continue to run with 5.9.
+
+Some of the changes listed in this file include issue tracking numbers
+corresponding to tasks in the Qt Bug Tracker:
+
+https://bugreports.qt.io/
+
+Each of these identifiers can be entered in the bug tracker to obtain more
+information about a particular change.
+
+Important Changes
+-----------------
+
+- Accessor and signal methods for states can now be generated by qscmxlc.
+ Passing the argument "--statemethods" to qscxmlc will trigger this.
+
+- The qmake/qscxmlc integration will now pass any arguments given in the qmake
+ variable "QSCXMLC_ARGUMENTS" to qscxmlc.
diff --git a/examples/scxml/calculator-widgets/doc/images/calculator.png b/examples/scxml/calculator-widgets/doc/images/calculator.png
index 443242a..0834d0a 100644
--- a/examples/scxml/calculator-widgets/doc/images/calculator.png
+++ b/examples/scxml/calculator-widgets/doc/images/calculator.png
Binary files differ
diff --git a/examples/scxml/mediaplayer-common/doc/images/mediaplayer.png b/examples/scxml/mediaplayer-common/doc/images/mediaplayer.png
index 9c32b78..b4c051e 100644
--- a/examples/scxml/mediaplayer-common/doc/images/mediaplayer.png
+++ b/examples/scxml/mediaplayer-common/doc/images/mediaplayer.png
Binary files differ
diff --git a/examples/scxml/sudoku/doc/images/sudoku.png b/examples/scxml/sudoku/doc/images/sudoku.png
index ef6d113..5a4a94f 100644
--- a/examples/scxml/sudoku/doc/images/sudoku.png
+++ b/examples/scxml/sudoku/doc/images/sudoku.png
Binary files differ
diff --git a/src/imports/scxmlstatemachine/plugin.cpp b/src/imports/scxmlstatemachine/plugin.cpp
index b662491..f1cb413 100644
--- a/src/imports/scxmlstatemachine/plugin.cpp
+++ b/src/imports/scxmlstatemachine/plugin.cpp
@@ -46,6 +46,13 @@
#include <qqmlextensionplugin.h>
#include <qqml.h>
+static void initResources()
+{
+#ifdef QT_STATIC
+ Q_INIT_RESOURCE(qmake_QtScxml);
+#endif
+}
+
QT_BEGIN_NAMESPACE
class QScxmlStateMachinePlugin : public QQmlExtensionPlugin
@@ -54,6 +61,7 @@ class QScxmlStateMachinePlugin : public QQmlExtensionPlugin
Q_PLUGIN_METADATA(IID QQmlExtensionInterface_iid)
public:
+ QScxmlStateMachinePlugin(QObject *parent = 0) : QQmlExtensionPlugin(parent) { initResources(); }
void registerTypes(const char *uri)
{
// @uri QtScxml
diff --git a/src/scxml/qscxmlecmascriptdatamodel.cpp b/src/scxml/qscxmlecmascriptdatamodel.cpp
index a12bb30..2bbf134 100644
--- a/src/scxml/qscxmlecmascriptdatamodel.cpp
+++ b/src/scxml/qscxmlecmascriptdatamodel.cpp
@@ -289,7 +289,7 @@ private: // Uses private API
return;
}
- s->makeIdentifier(scope.engine);
+ s->makeIdentifier();
QV4::ScopedValue v(scope, QJSValuePrivate::convertedToValue(engine, value));
o->defineReadonlyProperty(s, v);
if (engine->hasException)
diff --git a/src/scxml/qscxmlexecutablecontent.cpp b/src/scxml/qscxmlexecutablecontent.cpp
index 682ea47..2401aa6 100644
--- a/src/scxml/qscxmlexecutablecontent.cpp
+++ b/src/scxml/qscxmlexecutablecontent.cpp
@@ -418,15 +418,17 @@ const InstructionId *QScxmlExecutionEngine::step(const InstructionId *ip, bool *
qCDebug(qscxmlLog) << stateMachine << "Executing log step";
const Log *log = reinterpret_cast<const Log *>(instr);
ip += log->size();
- QString str = dataModel->evaluateToString(log->expr, ok);
- if (*ok) {
- const QString label = tableData->string(log->label);
- qCDebug(scxmlLog) << label << ":" << str;
- QMetaObject::invokeMethod(stateMachine,
- "log",
- Qt::QueuedConnection,
- Q_ARG(QString, label),
- Q_ARG(QString, str));
+ if (log->expr != NoEvaluator) {
+ const QString str = dataModel->evaluateToString(log->expr, ok);
+ if (*ok) {
+ const QString label = tableData->string(log->label);
+ qCDebug(scxmlLog) << label << ":" << str;
+ QMetaObject::invokeMethod(stateMachine,
+ "log",
+ Qt::QueuedConnection,
+ Q_ARG(QString, label),
+ Q_ARG(QString, str));
+ }
}
return ip;
}