summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJuha Vuolle <juha.vuolle@insta.fi>2021-02-02 10:28:54 +0200
committerJuha Vuolle <juha.vuolle@insta.fi>2021-02-03 10:44:06 +0200
commit2de6d216b402295e3c3ae0b0a2935080835c5743 (patch)
treeef3bb39fead4a6e4cfd36823eb52415d739a6464
parent4fe43e74a2eebdc40529cd0478d19a79a71a4508 (diff)
Make StateMachine QML plugin optional
This change adds a small regular library that handles the StateMachine QML element registration. The current QML plugin now links against this new library, and the QML plugin is optional. Few collateral changes: - Remove a warning about deprecated QString constructor usage - Reduce unnecessary dependencies to private libraries - Mark former QML plugin headers clearly as private Task-number: QTBUG-89832 Change-Id: I26dd76f4355819d2436b45564409c98b99e2463e Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Karsten Heimrich <karsten.heimrich@qt.io>
-rw-r--r--src/CMakeLists.txt1
-rw-r--r--src/imports/statemachine/CMakeLists.txt17
-rw-r--r--src/imports/statemachine/plugin.cpp15
-rw-r--r--src/imports/statemachine/qmldir4
-rw-r--r--src/imports/statemachine/statemachine.pro27
-rw-r--r--src/statemachineqml/CMakeLists.txt28
-rw-r--r--src/statemachineqml/childrenprivate_p.h (renamed from src/imports/statemachine/childrenprivate.h)11
-rw-r--r--src/statemachineqml/doc/images/statemachine-button-history.png (renamed from src/imports/statemachine/doc/images/statemachine-button-history.png)bin8074 -> 8074 bytes
-rw-r--r--src/statemachineqml/doc/images/statemachine-button-nested.png (renamed from src/imports/statemachine/doc/images/statemachine-button-nested.png)bin7051 -> 7051 bytes
-rw-r--r--src/statemachineqml/doc/images/statemachine-button.png (renamed from src/imports/statemachine/doc/images/statemachine-button.png)bin4233 -> 4233 bytes
-rw-r--r--src/statemachineqml/doc/images/statemachine-finished.png (renamed from src/imports/statemachine/doc/images/statemachine-finished.png)bin5518 -> 5518 bytes
-rw-r--r--src/statemachineqml/doc/images/statemachine-nonparallel.png (renamed from src/imports/statemachine/doc/images/statemachine-nonparallel.png)bin5350 -> 5350 bytes
-rw-r--r--src/statemachineqml/doc/images/statemachine-parallel.png (renamed from src/imports/statemachine/doc/images/statemachine-parallel.png)bin8631 -> 8631 bytes
-rw-r--r--src/statemachineqml/doc/snippets/qml/statemachine/Button.qml (renamed from src/imports/statemachine/doc/snippets/qml/statemachine/Button.qml)0
-rw-r--r--src/statemachineqml/doc/snippets/qml/statemachine/basicstate.qml (renamed from src/imports/statemachine/doc/snippets/qml/statemachine/basicstate.qml)0
-rw-r--r--src/statemachineqml/doc/snippets/qml/statemachine/finalstate.qml (renamed from src/imports/statemachine/doc/snippets/qml/statemachine/finalstate.qml)0
-rw-r--r--src/statemachineqml/doc/snippets/qml/statemachine/guardcondition.qml (renamed from src/imports/statemachine/doc/snippets/qml/statemachine/guardcondition.qml)0
-rw-r--r--src/statemachineqml/doc/snippets/qml/statemachine/historystate.qml (renamed from src/imports/statemachine/doc/snippets/qml/statemachine/historystate.qml)0
-rw-r--r--src/statemachineqml/doc/snippets/qml/statemachine/signaltransition.qml (renamed from src/imports/statemachine/doc/snippets/qml/statemachine/signaltransition.qml)0
-rw-r--r--src/statemachineqml/doc/snippets/qml/statemachine/signaltransitionsignal.qml (renamed from src/imports/statemachine/doc/snippets/qml/statemachine/signaltransitionsignal.qml)0
-rw-r--r--src/statemachineqml/doc/snippets/qml/statemachine/simplestatemachine.qml (renamed from src/imports/statemachine/doc/snippets/qml/statemachine/simplestatemachine.qml)0
-rw-r--r--src/statemachineqml/doc/snippets/qml/statemachine/statemachine-button-history.qml (renamed from src/imports/statemachine/doc/snippets/qml/statemachine/statemachine-button-history.qml)0
-rw-r--r--src/statemachineqml/doc/snippets/qml/statemachine/statemachine-button-nested-ignore-quit.qml (renamed from src/imports/statemachine/doc/snippets/qml/statemachine/statemachine-button-nested-ignore-quit.qml)0
-rw-r--r--src/statemachineqml/doc/snippets/qml/statemachine/statemachine-button-nested.qml (renamed from src/imports/statemachine/doc/snippets/qml/statemachine/statemachine-button-nested.qml)0
-rw-r--r--src/statemachineqml/doc/snippets/qml/statemachine/statemachine-button.qml (renamed from src/imports/statemachine/doc/snippets/qml/statemachine/statemachine-button.qml)0
-rw-r--r--src/statemachineqml/doc/snippets/qml/statemachine/timeouttransition.qml (renamed from src/imports/statemachine/doc/snippets/qml/statemachine/timeouttransition.qml)0
-rw-r--r--src/statemachineqml/doc/src/statemachine.qdoc (renamed from src/imports/statemachine/doc/src/statemachine.qdoc)0
-rw-r--r--src/statemachineqml/finalstate.cpp (renamed from src/imports/statemachine/finalstate.cpp)2
-rw-r--r--src/statemachineqml/finalstate_p.h (renamed from src/imports/statemachine/finalstate.h)18
-rw-r--r--src/statemachineqml/qstatemachineqmlglobals_p.h74
-rw-r--r--src/statemachineqml/signaltransition.cpp (renamed from src/imports/statemachine/signaltransition.cpp)6
-rw-r--r--src/statemachineqml/signaltransition_p.h (renamed from src/imports/statemachine/signaltransition.h)15
-rw-r--r--src/statemachineqml/state.cpp (renamed from src/imports/statemachine/state.cpp)4
-rw-r--r--src/statemachineqml/state_p.h (renamed from src/imports/statemachine/state.h)16
-rw-r--r--src/statemachineqml/statemachine.cpp (renamed from src/imports/statemachine/statemachine.cpp)7
-rw-r--r--src/statemachineqml/statemachine_p.h (renamed from src/imports/statemachine/statemachine.h)16
-rw-r--r--src/statemachineqml/statemachineforeign_p.h (renamed from src/imports/statemachine/statemachineforeign.h)21
-rw-r--r--src/statemachineqml/timeouttransition.cpp (renamed from src/imports/statemachine/timeouttransition.cpp)4
-rw-r--r--src/statemachineqml/timeouttransition_p.h (renamed from src/imports/statemachine/timeouttransition.h)15
-rw-r--r--sync.profile1
40 files changed, 221 insertions, 81 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index c6335df..f72f7ef 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -3,6 +3,7 @@
add_subdirectory(scxml)
add_subdirectory(statemachine)
if(TARGET Qt::Qml)
+ add_subdirectory(statemachineqml)
add_subdirectory(scxmlqml)
add_subdirectory(imports)
endif()
diff --git a/src/imports/statemachine/CMakeLists.txt b/src/imports/statemachine/CMakeLists.txt
index 5cbe931..e200f27 100644
--- a/src/imports/statemachine/CMakeLists.txt
+++ b/src/imports/statemachine/CMakeLists.txt
@@ -9,21 +9,14 @@ qt_internal_add_qml_module(qtqmlstatemachine
VERSION "${CMAKE_PROJECT_VERSION}"
CLASSNAME QtQmlStateMachinePlugin
SKIP_TYPE_REGISTRATION
- GENERATE_QMLTYPES
- INSTALL_QMLTYPES
+ PLUGIN_OPTIONAL
SOURCES
- childrenprivate.h
- finalstate.cpp finalstate.h
plugin.cpp
- signaltransition.cpp signaltransition.h
- state.cpp state.h
- statemachine.cpp statemachine.h
- statemachineforeign.h
- timeouttransition.cpp timeouttransition.h
PUBLIC_LIBRARIES
- Qt::CorePrivate
- Qt::QmlPrivate
- Qt::StateMachine
+ Qt::Core
+ Qt::Qml
+ LIBRARIES
+ Qt::StateMachineQmlPrivate
)
#### Keys ignored in scope 1:.:.:statemachine.pro:<TRUE>:
diff --git a/src/imports/statemachine/plugin.cpp b/src/imports/statemachine/plugin.cpp
index c370504..1c2e211 100644
--- a/src/imports/statemachine/plugin.cpp
+++ b/src/imports/statemachine/plugin.cpp
@@ -37,18 +37,9 @@
**
****************************************************************************/
-#include "finalstate.h"
-#include "signaltransition.h"
-#include "state.h"
-#include "statemachine.h"
-#include "timeouttransition.h"
-#include "statemachineforeign.h"
-
-#include <QHistoryState>
-#include <QQmlExtensionPlugin>
-#include <qqml.h>
-
-extern void qml_register_types_QtQml_StateMachine();
+#include <QtStateMachineQml/private/qstatemachineqmlglobals_p.h>
+#include <QtQml/qqmlextensionplugin.h>
+#include <QtQml/qqml.h>
QT_BEGIN_NAMESPACE
diff --git a/src/imports/statemachine/qmldir b/src/imports/statemachine/qmldir
deleted file mode 100644
index 8bc3831..0000000
--- a/src/imports/statemachine/qmldir
+++ /dev/null
@@ -1,4 +0,0 @@
-module QtQml.StateMachine
-plugin qtqmlstatemachine
-classname QtQmlStateMachinePlugin
-typeinfo plugins.qmltypes
diff --git a/src/imports/statemachine/statemachine.pro b/src/imports/statemachine/statemachine.pro
deleted file mode 100644
index ed94f46..0000000
--- a/src/imports/statemachine/statemachine.pro
+++ /dev/null
@@ -1,27 +0,0 @@
-CXX_MODULE = qml
-TARGET = qtqmlstatemachine
-TARGETPATH = QtQml/StateMachine
-QML_IMPORT_VERSION = $$QT_VERSION
-
-QT = statemachine core-private qml-private
-
-SOURCES = \
- $$PWD/finalstate.cpp \
- $$PWD/signaltransition.cpp \
- $$PWD/state.cpp \
- $$PWD/statemachine.cpp \
- $$PWD/timeouttransition.cpp \
- $$PWD/plugin.cpp
-
-HEADERS = \
- $$PWD/childrenprivate.h \
- $$PWD/finalstate.h \
- $$PWD/signaltransition.h \
- $$PWD/state.h \
- $$PWD/statemachine.h \
- $$PWD/timeouttransition.h \
- $$PWD/statemachineforeign.h
-
-CONFIG += qmltypes install_qmltypes
-
-load(qml_plugin)
diff --git a/src/statemachineqml/CMakeLists.txt b/src/statemachineqml/CMakeLists.txt
new file mode 100644
index 0000000..e8f52fa
--- /dev/null
+++ b/src/statemachineqml/CMakeLists.txt
@@ -0,0 +1,28 @@
+qt_internal_add_module(StateMachineQml
+ GENERATE_METATYPES
+ SOURCES
+ qstatemachineqmlglobals_p.h
+ finalstate_p.h finalstate.cpp
+ signaltransition_p.h signaltransition.cpp
+ state_p.h state.cpp
+ statemachine_p.h statemachine.cpp
+ timeouttransition_p.h timeouttransition.cpp
+ childrenprivate_p.h
+ statemachineforeign_p.h
+ DEFINES
+ QT_BUILD_STATEMACHINEQML_LIB
+ PUBLIC_LIBRARIES
+ Qt::Core
+ Qt::Qml
+ Qt::StateMachine
+)
+
+set_target_properties(StateMachineQml PROPERTIES
+ QT_QML_MODULE_INSTALL_QMLTYPES TRUE
+ QT_QML_MODULE_VERSION ${CMAKE_PROJECT_VERSION}
+ QT_QML_MODULE_URI QtQml.StateMachine
+ QT_QMLTYPES_FILENAME plugins.qmltypes
+ QT_QML_MODULE_INSTALL_DIR "${INSTALL_QMLDIR}/QtQml/StateMachine"
+)
+
+qt6_qml_type_registration(StateMachineQml)
diff --git a/src/imports/statemachine/childrenprivate.h b/src/statemachineqml/childrenprivate_p.h
index 8eab308..b92637f 100644
--- a/src/imports/statemachine/childrenprivate.h
+++ b/src/statemachineqml/childrenprivate_p.h
@@ -40,6 +40,17 @@
#ifndef QQMLCHILDRENPRIVATE_H
#define QQMLCHILDRENPRIVATE_H
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+//
+
#include <QAbstractState>
#include <QAbstractTransition>
#include <QStateMachine>
diff --git a/src/imports/statemachine/doc/images/statemachine-button-history.png b/src/statemachineqml/doc/images/statemachine-button-history.png
index 0462b3b..0462b3b 100644
--- a/src/imports/statemachine/doc/images/statemachine-button-history.png
+++ b/src/statemachineqml/doc/images/statemachine-button-history.png
Binary files differ
diff --git a/src/imports/statemachine/doc/images/statemachine-button-nested.png b/src/statemachineqml/doc/images/statemachine-button-nested.png
index 762ac14..762ac14 100644
--- a/src/imports/statemachine/doc/images/statemachine-button-nested.png
+++ b/src/statemachineqml/doc/images/statemachine-button-nested.png
Binary files differ
diff --git a/src/imports/statemachine/doc/images/statemachine-button.png b/src/statemachineqml/doc/images/statemachine-button.png
index 10102bd..10102bd 100644
--- a/src/imports/statemachine/doc/images/statemachine-button.png
+++ b/src/statemachineqml/doc/images/statemachine-button.png
Binary files differ
diff --git a/src/imports/statemachine/doc/images/statemachine-finished.png b/src/statemachineqml/doc/images/statemachine-finished.png
index 0ac081d..0ac081d 100644
--- a/src/imports/statemachine/doc/images/statemachine-finished.png
+++ b/src/statemachineqml/doc/images/statemachine-finished.png
Binary files differ
diff --git a/src/imports/statemachine/doc/images/statemachine-nonparallel.png b/src/statemachineqml/doc/images/statemachine-nonparallel.png
index f9850a7..f9850a7 100644
--- a/src/imports/statemachine/doc/images/statemachine-nonparallel.png
+++ b/src/statemachineqml/doc/images/statemachine-nonparallel.png
Binary files differ
diff --git a/src/imports/statemachine/doc/images/statemachine-parallel.png b/src/statemachineqml/doc/images/statemachine-parallel.png
index a65c297..a65c297 100644
--- a/src/imports/statemachine/doc/images/statemachine-parallel.png
+++ b/src/statemachineqml/doc/images/statemachine-parallel.png
Binary files differ
diff --git a/src/imports/statemachine/doc/snippets/qml/statemachine/Button.qml b/src/statemachineqml/doc/snippets/qml/statemachine/Button.qml
index 38d1347..38d1347 100644
--- a/src/imports/statemachine/doc/snippets/qml/statemachine/Button.qml
+++ b/src/statemachineqml/doc/snippets/qml/statemachine/Button.qml
diff --git a/src/imports/statemachine/doc/snippets/qml/statemachine/basicstate.qml b/src/statemachineqml/doc/snippets/qml/statemachine/basicstate.qml
index d8da3f9..d8da3f9 100644
--- a/src/imports/statemachine/doc/snippets/qml/statemachine/basicstate.qml
+++ b/src/statemachineqml/doc/snippets/qml/statemachine/basicstate.qml
diff --git a/src/imports/statemachine/doc/snippets/qml/statemachine/finalstate.qml b/src/statemachineqml/doc/snippets/qml/statemachine/finalstate.qml
index 984daad..984daad 100644
--- a/src/imports/statemachine/doc/snippets/qml/statemachine/finalstate.qml
+++ b/src/statemachineqml/doc/snippets/qml/statemachine/finalstate.qml
diff --git a/src/imports/statemachine/doc/snippets/qml/statemachine/guardcondition.qml b/src/statemachineqml/doc/snippets/qml/statemachine/guardcondition.qml
index f1ec89b..f1ec89b 100644
--- a/src/imports/statemachine/doc/snippets/qml/statemachine/guardcondition.qml
+++ b/src/statemachineqml/doc/snippets/qml/statemachine/guardcondition.qml
diff --git a/src/imports/statemachine/doc/snippets/qml/statemachine/historystate.qml b/src/statemachineqml/doc/snippets/qml/statemachine/historystate.qml
index 28e4e06..28e4e06 100644
--- a/src/imports/statemachine/doc/snippets/qml/statemachine/historystate.qml
+++ b/src/statemachineqml/doc/snippets/qml/statemachine/historystate.qml
diff --git a/src/imports/statemachine/doc/snippets/qml/statemachine/signaltransition.qml b/src/statemachineqml/doc/snippets/qml/statemachine/signaltransition.qml
index 925d728..925d728 100644
--- a/src/imports/statemachine/doc/snippets/qml/statemachine/signaltransition.qml
+++ b/src/statemachineqml/doc/snippets/qml/statemachine/signaltransition.qml
diff --git a/src/imports/statemachine/doc/snippets/qml/statemachine/signaltransitionsignal.qml b/src/statemachineqml/doc/snippets/qml/statemachine/signaltransitionsignal.qml
index d5510cb..d5510cb 100644
--- a/src/imports/statemachine/doc/snippets/qml/statemachine/signaltransitionsignal.qml
+++ b/src/statemachineqml/doc/snippets/qml/statemachine/signaltransitionsignal.qml
diff --git a/src/imports/statemachine/doc/snippets/qml/statemachine/simplestatemachine.qml b/src/statemachineqml/doc/snippets/qml/statemachine/simplestatemachine.qml
index fc1768f..fc1768f 100644
--- a/src/imports/statemachine/doc/snippets/qml/statemachine/simplestatemachine.qml
+++ b/src/statemachineqml/doc/snippets/qml/statemachine/simplestatemachine.qml
diff --git a/src/imports/statemachine/doc/snippets/qml/statemachine/statemachine-button-history.qml b/src/statemachineqml/doc/snippets/qml/statemachine/statemachine-button-history.qml
index b6cd325..b6cd325 100644
--- a/src/imports/statemachine/doc/snippets/qml/statemachine/statemachine-button-history.qml
+++ b/src/statemachineqml/doc/snippets/qml/statemachine/statemachine-button-history.qml
diff --git a/src/imports/statemachine/doc/snippets/qml/statemachine/statemachine-button-nested-ignore-quit.qml b/src/statemachineqml/doc/snippets/qml/statemachine/statemachine-button-nested-ignore-quit.qml
index 77cf253..77cf253 100644
--- a/src/imports/statemachine/doc/snippets/qml/statemachine/statemachine-button-nested-ignore-quit.qml
+++ b/src/statemachineqml/doc/snippets/qml/statemachine/statemachine-button-nested-ignore-quit.qml
diff --git a/src/imports/statemachine/doc/snippets/qml/statemachine/statemachine-button-nested.qml b/src/statemachineqml/doc/snippets/qml/statemachine/statemachine-button-nested.qml
index 19ab693..19ab693 100644
--- a/src/imports/statemachine/doc/snippets/qml/statemachine/statemachine-button-nested.qml
+++ b/src/statemachineqml/doc/snippets/qml/statemachine/statemachine-button-nested.qml
diff --git a/src/imports/statemachine/doc/snippets/qml/statemachine/statemachine-button.qml b/src/statemachineqml/doc/snippets/qml/statemachine/statemachine-button.qml
index 8fcbe61..8fcbe61 100644
--- a/src/imports/statemachine/doc/snippets/qml/statemachine/statemachine-button.qml
+++ b/src/statemachineqml/doc/snippets/qml/statemachine/statemachine-button.qml
diff --git a/src/imports/statemachine/doc/snippets/qml/statemachine/timeouttransition.qml b/src/statemachineqml/doc/snippets/qml/statemachine/timeouttransition.qml
index b629e84..b629e84 100644
--- a/src/imports/statemachine/doc/snippets/qml/statemachine/timeouttransition.qml
+++ b/src/statemachineqml/doc/snippets/qml/statemachine/timeouttransition.qml
diff --git a/src/imports/statemachine/doc/src/statemachine.qdoc b/src/statemachineqml/doc/src/statemachine.qdoc
index 231b85a..231b85a 100644
--- a/src/imports/statemachine/doc/src/statemachine.qdoc
+++ b/src/statemachineqml/doc/src/statemachine.qdoc
diff --git a/src/imports/statemachine/finalstate.cpp b/src/statemachineqml/finalstate.cpp
index 4d4c6b2..dcc59c2 100644
--- a/src/imports/statemachine/finalstate.cpp
+++ b/src/statemachineqml/finalstate.cpp
@@ -37,7 +37,7 @@
**
****************************************************************************/
-#include "finalstate.h"
+#include "finalstate_p.h"
#include <QQmlContext>
#include <QQmlEngine>
diff --git a/src/imports/statemachine/finalstate.h b/src/statemachineqml/finalstate_p.h
index 3b7c451..c43b13e 100644
--- a/src/imports/statemachine/finalstate.h
+++ b/src/statemachineqml/finalstate_p.h
@@ -40,8 +40,20 @@
#ifndef QQMLFINALSTATE_H
#define QQMLFINALSTATE_H
-#include "childrenprivate.h"
-#include "statemachine.h"
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+//
+
+#include "qstatemachineqmlglobals_p.h"
+#include "childrenprivate_p.h"
+#include "statemachine_p.h"
#include <QtStateMachine/QFinalState>
#include <QtQml/QQmlListProperty>
@@ -50,7 +62,7 @@
QT_BEGIN_NAMESPACE
-class FinalState : public QFinalState
+class Q_STATEMACHINEQML_PRIVATE_EXPORT FinalState : public QFinalState
{
Q_OBJECT
Q_PROPERTY(QQmlListProperty<QObject> children READ children NOTIFY childrenChanged)
diff --git a/src/statemachineqml/qstatemachineqmlglobals_p.h b/src/statemachineqml/qstatemachineqmlglobals_p.h
new file mode 100644
index 0000000..ec51c34
--- /dev/null
+++ b/src/statemachineqml/qstatemachineqmlglobals_p.h
@@ -0,0 +1,74 @@
+/****************************************************************************
+**
+** Copyright (C) 2021 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the QtSTATEMACHINE module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or (at your option) the GNU General
+** Public license version 3 or any later version approved by the KDE Free
+** Qt Foundation. The licenses are as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-2.0.html and
+** https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef QSTATEMACHINEQMLGLOBALS_P_H
+#define QSTATEMACHINEQMLGLOBALS_P_H
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+//
+
+#include <QtCore/qglobal.h>
+
+QT_BEGIN_NAMESPACE
+
+#if !defined(QT_STATIC)
+# if defined(QT_BUILD_STATEMACHINEQML_LIB)
+# define Q_STATEMACHINEQML_EXPORT Q_DECL_EXPORT
+# else
+# define Q_STATEMACHINEQML_EXPORT Q_DECL_IMPORT
+# endif
+#else
+# define Q_STATEMACHINEQML_EXPORT
+#endif
+
+#define Q_STATEMACHINEQML_PRIVATE_EXPORT Q_STATEMACHINEQML_EXPORT
+
+QT_END_NAMESPACE
+
+void Q_STATEMACHINEQML_PRIVATE_EXPORT qml_register_types_QtQml_StateMachine();
+
+#endif // QSTATEMACHINEQMLGLOBALS_P_H
diff --git a/src/imports/statemachine/signaltransition.cpp b/src/statemachineqml/signaltransition.cpp
index c600081..df4c038 100644
--- a/src/imports/statemachine/signaltransition.cpp
+++ b/src/statemachineqml/signaltransition.cpp
@@ -37,7 +37,7 @@
**
****************************************************************************/
-#include "signaltransition.h"
+#include "signaltransition_p.h"
#include <QStateMachine>
#include <QMetaProperty>
@@ -77,7 +77,7 @@ bool SignalTransition::eventTest(QEvent *event)
QMetaMethod metaMethod = e->sender()->metaObject()->method(e->signalIndex());
const auto parameterNames = metaMethod.parameterNames();
for (int i = 0; i < count; i++)
- context.setContextProperty(parameterNames[i], QVariant::fromValue(e->arguments().at(i)));
+ context.setContextProperty(QString::fromUtf8(parameterNames[i]), QVariant::fromValue(e->arguments().at(i)));
QQmlExpression expr(m_guard, &context, this);
QVariant result = expr.evaluate();
@@ -346,4 +346,4 @@ void SignalTransitionParser::applyBindings(
\sa signal
*/
-#include "moc_signaltransition.cpp"
+#include "moc_signaltransition_p.cpp"
diff --git a/src/imports/statemachine/signaltransition.h b/src/statemachineqml/signaltransition_p.h
index d1286eb..a736444 100644
--- a/src/imports/statemachine/signaltransition.h
+++ b/src/statemachineqml/signaltransition_p.h
@@ -40,6 +40,19 @@
#ifndef SIGNALTRANSITION_H
#define SIGNALTRANSITION_H
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+//
+
+#include "qstatemachineqmlglobals_p.h"
+
#include <QtStateMachine/QSignalTransition>
#include <QtCore/QVariant>
#include <QtQml/QJSValue>
@@ -52,7 +65,7 @@
QT_BEGIN_NAMESPACE
-class SignalTransition : public QSignalTransition, public QQmlParserStatus
+class Q_STATEMACHINEQML_PRIVATE_EXPORT SignalTransition : public QSignalTransition, public QQmlParserStatus
{
Q_OBJECT
Q_INTERFACES(QQmlParserStatus)
diff --git a/src/imports/statemachine/state.cpp b/src/statemachineqml/state.cpp
index ff0f55f..eafaeb8 100644
--- a/src/imports/statemachine/state.cpp
+++ b/src/statemachineqml/state.cpp
@@ -37,7 +37,7 @@
**
****************************************************************************/
-#include "state.h"
+#include "state_p.h"
#include <QQmlContext>
#include <QQmlEngine>
@@ -237,4 +237,4 @@ QQmlListProperty<QObject> State::children()
\endlist
*/
-#include "moc_state.cpp"
+#include "moc_state_p.cpp"
diff --git a/src/imports/statemachine/state.h b/src/statemachineqml/state_p.h
index e2e75bb..494eb63 100644
--- a/src/imports/statemachine/state.h
+++ b/src/statemachineqml/state_p.h
@@ -40,7 +40,19 @@
#ifndef STATE_H
#define STATE_H
-#include "childrenprivate.h"
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+//
+
+#include "qstatemachineqmlglobals_p.h"
+#include "childrenprivate_p.h"
#include <QtStateMachine/QState>
#include <QtQml/QQmlParserStatus>
@@ -49,7 +61,7 @@
QT_BEGIN_NAMESPACE
-class State : public QState, public QQmlParserStatus
+class Q_STATEMACHINEQML_PRIVATE_EXPORT State : public QState, public QQmlParserStatus
{
Q_OBJECT
Q_INTERFACES(QQmlParserStatus)
diff --git a/src/imports/statemachine/statemachine.cpp b/src/statemachineqml/statemachine.cpp
index de6c842..c5e05fb 100644
--- a/src/imports/statemachine/statemachine.cpp
+++ b/src/statemachineqml/statemachine.cpp
@@ -37,16 +37,13 @@
**
****************************************************************************/
-#include "statemachine.h"
+#include "statemachine_p.h"
#include <QAbstractTransition>
#include <QQmlContext>
#include <QQmlEngine>
#include <QQmlInfo>
-#include <private/qqmlopenmetaobject_p.h>
-#include <private/qqmlengine_p.h>
-
StateMachine::StateMachine(QObject *parent)
: QStateMachine(parent), m_completed(false), m_running(false)
{
@@ -231,4 +228,4 @@ QQmlListProperty<QObject> StateMachine::children()
\sa running, stop(), State::finished
*/
-#include "moc_statemachine.cpp"
+#include "moc_statemachine_p.cpp"
diff --git a/src/imports/statemachine/statemachine.h b/src/statemachineqml/statemachine_p.h
index 1d5fd5d..797543a 100644
--- a/src/imports/statemachine/statemachine.h
+++ b/src/statemachineqml/statemachine_p.h
@@ -40,7 +40,19 @@
#ifndef STATEMACHINE_H
#define STATEMACHINE_H
-#include "childrenprivate.h"
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+//
+
+#include "qstatemachineqmlglobals_p.h"
+#include "childrenprivate_p.h"
#include <QtStateMachine/QStateMachine>
#include <QtQml/QQmlParserStatus>
@@ -49,7 +61,7 @@
QT_BEGIN_NAMESPACE
-class StateMachine : public QStateMachine, public QQmlParserStatus
+class Q_STATEMACHINEQML_PRIVATE_EXPORT StateMachine : public QStateMachine, public QQmlParserStatus
{
Q_OBJECT
Q_INTERFACES(QQmlParserStatus)
diff --git a/src/imports/statemachine/statemachineforeign.h b/src/statemachineqml/statemachineforeign_p.h
index 8456ded..3636290 100644
--- a/src/imports/statemachine/statemachineforeign.h
+++ b/src/statemachineqml/statemachineforeign_p.h
@@ -40,13 +40,26 @@
#ifndef STATEMACHINEFOREIGN_H
#define STATEMACHINEFOREIGN_H
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+//
+
+#include "qstatemachineqmlglobals_p.h"
+
#include <QtQml/qqml.h>
#include <QtStateMachine/qhistorystate.h>
#include <QtStateMachine/qstate.h>
#include <QtStateMachine/qabstractstate.h>
#include <QtStateMachine/qsignaltransition.h>
-struct QHistoryStateForeign
+struct Q_STATEMACHINEQML_PRIVATE_EXPORT QHistoryStateForeign
{
Q_GADGET
QML_FOREIGN(QHistoryState)
@@ -54,7 +67,7 @@ struct QHistoryStateForeign
QML_ADDED_IN_VERSION(1, 0)
};
-struct QStateForeign
+struct Q_STATEMACHINEQML_PRIVATE_EXPORT QStateForeign
{
Q_GADGET
QML_FOREIGN(QState)
@@ -63,7 +76,7 @@ struct QStateForeign
QML_UNCREATABLE("Don't use this, use State instead.")
};
-struct QAbstractStateForeign
+struct Q_STATEMACHINEQML_PRIVATE_EXPORT QAbstractStateForeign
{
Q_GADGET
QML_FOREIGN(QAbstractState)
@@ -72,7 +85,7 @@ struct QAbstractStateForeign
QML_UNCREATABLE("Don't use this, use State instead.")
};
-struct QSignalTransitionForeign
+struct Q_STATEMACHINEQML_PRIVATE_EXPORT QSignalTransitionForeign
{
Q_GADGET
QML_FOREIGN(QSignalTransition)
diff --git a/src/imports/statemachine/timeouttransition.cpp b/src/statemachineqml/timeouttransition.cpp
index b0400b7..4c0c368 100644
--- a/src/imports/statemachine/timeouttransition.cpp
+++ b/src/statemachineqml/timeouttransition.cpp
@@ -37,7 +37,7 @@
**
****************************************************************************/
-#include "timeouttransition.h"
+#include "timeouttransition_p.h"
#include <QQmlInfo>
#include <QTimer>
@@ -111,4 +111,4 @@ void TimeoutTransition::componentComplete()
\brief The timeout interval in milliseconds.
*/
-#include "moc_timeouttransition.cpp"
+#include "moc_timeouttransition_p.cpp"
diff --git a/src/imports/statemachine/timeouttransition.h b/src/statemachineqml/timeouttransition_p.h
index 6fa2dd9..64b838b 100644
--- a/src/imports/statemachine/timeouttransition.h
+++ b/src/statemachineqml/timeouttransition_p.h
@@ -40,6 +40,19 @@
#ifndef TIMEOUTTRANSITION_H
#define TIMEOUTTRANSITION_H
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+//
+
+#include "qstatemachineqmlglobals_p.h"
+
#include <QtStateMachine/QSignalTransition>
#include <QtQml/QQmlParserStatus>
#include <QtQml/qqml.h>
@@ -47,7 +60,7 @@
QT_BEGIN_NAMESPACE
class QTimer;
-class TimeoutTransition : public QSignalTransition, public QQmlParserStatus
+class Q_STATEMACHINEQML_PRIVATE_EXPORT TimeoutTransition : public QSignalTransition, public QQmlParserStatus
{
Q_OBJECT
Q_PROPERTY(int timeout READ timeout WRITE setTimeout NOTIFY timeoutChanged)
diff --git a/sync.profile b/sync.profile
index 557bcc3..f79fdae 100644
--- a/sync.profile
+++ b/sync.profile
@@ -2,6 +2,7 @@
"QtScxml" => "$basedir/src/scxml",
"QtScxmlQml" => "$basedir/src/scxmlqml",
"QtStateMachine" => "$basedir/src/statemachine",
+ "QtStateMachineQml" => "$basedir/src/statemachineqml"
);
%moduleheaders = ( # restrict the module headers to those found in relative path
);