aboutsummaryrefslogtreecommitdiffstats
path: root/sources
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2018-05-26 09:40:35 +0200
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2018-05-26 09:43:03 +0200
commita1a8cf65b7426d9466f6340cfeb162f2d0787de2 (patch)
tree31b1230930cf3ca8cf8c33ae73b5e4e4f57d3b88 /sources
parent3f8c8702ea295f39357e7c66f46e5138f56bcc9f (diff)
parente0a8f2dfb759ef4eff542d0a317a9370d4eddc52 (diff)
Merge remote-tracking branch 'origin/5.9' into 5.11
Diffstat (limited to 'sources')
-rw-r--r--sources/pyside2/CMakeLists.txt2
-rw-r--r--sources/pyside2/PySide2/QtScxml/CMakeLists.txt60
-rw-r--r--sources/pyside2/PySide2/QtScxml/typesystem_scxml.xml71
-rw-r--r--sources/pyside2/PySide2/support/signature/PSF-3.6.2.txt43
-rw-r--r--sources/pyside2/PySide2/support/signature/qt_attribution.json5
-rw-r--r--sources/pyside2/doc/_templates/index.html120
-rw-r--r--sources/pyside2/doc/conf.py.in2
-rw-r--r--sources/pyside2/doc/index.rst3
-rw-r--r--sources/pyside2/doc/qtmodules/pyside-qtscxml.qdocconf.in3
-rw-r--r--sources/pyside2/tests/QtScxml/CMakeLists.txt1
-rw-r--r--sources/pyside2/tests/QtScxml/test_dynamic.py53
-rw-r--r--sources/pyside2/tests/QtScxml/trafficlight.scxml89
-rw-r--r--sources/shiboken2/CMakeLists.txt4
13 files changed, 329 insertions, 127 deletions
diff --git a/sources/pyside2/CMakeLists.txt b/sources/pyside2/CMakeLists.txt
index d4150c93b..77382480d 100644
--- a/sources/pyside2/CMakeLists.txt
+++ b/sources/pyside2/CMakeLists.txt
@@ -331,7 +331,7 @@ if(APPLE)
endif()
# Collect all optional modules.
-set(ALL_OPTIONAL_MODULES Xml XmlPatterns Help Multimedia MultimediaWidgets OpenGL Positioning Location Qml Quick QuickWidgets Script ScriptTools Sensors TextToSpeech Charts Svg DataVisualization)
+set(ALL_OPTIONAL_MODULES Xml XmlPatterns Help Multimedia MultimediaWidgets OpenGL Positioning Location Qml Quick QuickWidgets Scxml Script ScriptTools Sensors TextToSpeech Charts Svg DataVisualization)
find_package(Qt5UiTools)
if(Qt5UiTools_FOUND)
list(APPEND ALL_OPTIONAL_MODULES UiTools)
diff --git a/sources/pyside2/PySide2/QtScxml/CMakeLists.txt b/sources/pyside2/PySide2/QtScxml/CMakeLists.txt
new file mode 100644
index 000000000..0a75ffce6
--- /dev/null
+++ b/sources/pyside2/PySide2/QtScxml/CMakeLists.txt
@@ -0,0 +1,60 @@
+project(QtScxml)
+
+set(QtScxml_OPTIONAL_SRC )
+set(QtScxml_DROPPED_ENTRIES )
+
+set(QtScxml_SRC
+${QtScxml_GEN_DIR}/qscxmlcompiler_wrapper.cpp
+${QtScxml_GEN_DIR}/qscxmlcompiler_loader_wrapper.cpp
+${QtScxml_GEN_DIR}/qscxmlevent_wrapper.cpp
+${QtScxml_GEN_DIR}/qscxmldynamicscxmlservicefactory_wrapper.cpp
+${QtScxml_GEN_DIR}/qscxmlinvokableservice_wrapper.cpp
+${QtScxml_GEN_DIR}/qscxmlinvokableservicefactory_wrapper.cpp
+${QtScxml_GEN_DIR}/qscxmlstaticscxmlservicefactory_wrapper.cpp
+${QtScxml_GEN_DIR}/qscxmlstatemachine_wrapper.cpp
+${QtScxml_GEN_DIR}/qscxmltabledata_wrapper.cpp
+${QtScxml_GEN_DIR}/qscxmlerror_wrapper.cpp
+${QtScxml_GEN_DIR}/qscxmlexecutablecontent_wrapper.cpp
+${QtScxml_GEN_DIR}/qscxmlexecutablecontent_assignmentinfo_wrapper.cpp
+${QtScxml_GEN_DIR}/qscxmlexecutablecontent_evaluatorinfo_wrapper.cpp
+${QtScxml_GEN_DIR}/qscxmlexecutablecontent_foreachinfo_wrapper.cpp
+${QtScxml_GEN_DIR}/qscxmlexecutablecontent_invokeinfo_wrapper.cpp
+${QtScxml_GEN_DIR}/qscxmlexecutablecontent_parameterinfo_wrapper.cpp
+# module is always needed
+${QtScxml_GEN_DIR}/qtscxml_module_wrapper.cpp
+)
+
+if (Qt5Scxml_VERSION VERSION_EQUAL 5.12.0 OR Qt5Scxml_VERSION VERSION_GREATER 5.12.0)
+ list(APPEND QtScxml_SRC
+ ${QtScxml_GEN_DIR}/qscxmldatamodel_wrapper.cpp
+ ${QtScxml_GEN_DIR}/qscxmldatamodel_foreachloopbody_wrapper.cpp
+ ${QtScxml_GEN_DIR}/qscxmlecmascriptdatamodel_wrapper.cpp
+ ${QtScxml_GEN_DIR}/qscxmlcppdatamodel_wrapper.cpp
+ ${QtScxml_GEN_DIR}/qscxmlnulldatamodel_wrapper.cpp)
+endif()
+
+set(QtScxml_include_dirs ${QtScxml_SOURCE_DIR}
+ ${QtScxml_BINARY_DIR}
+ ${Qt5Core_INCLUDE_DIRS}
+ ${Qt5Scxml_INCLUDE_DIRS}
+ ${SHIBOKEN_INCLUDE_DIR}
+ ${libpyside_SOURCE_DIR}
+ ${SHIBOKEN_PYTHON_INCLUDE_DIR}
+ ${QtCore_GEN_DIR})
+
+set(QtScxml_libraries pyside2
+ ${SHIBOKEN_PYTHON_LIBRARIES}
+ ${SHIBOKEN_LIBRARY}
+ ${Qt5Scxml_LIBRARIES})
+
+set(QtScxml_deps QtCore)
+
+create_pyside_module(QtScxml
+ QtScxml_include_dirs
+ QtScxml_libraries
+ QtScxml_deps
+ QtScxml_SOURCE_DIR
+ QtScxml_SRC
+ ""
+ ""
+ QtScxml_DROPPED_ENTRIES)
diff --git a/sources/pyside2/PySide2/QtScxml/typesystem_scxml.xml b/sources/pyside2/PySide2/QtScxml/typesystem_scxml.xml
new file mode 100644
index 000000000..67a0cc4b7
--- /dev/null
+++ b/sources/pyside2/PySide2/QtScxml/typesystem_scxml.xml
@@ -0,0 +1,71 @@
+<?xml version="1.0"?>
+<!--
+/****************************************************************************
+**
+** Copyright (C) 2018 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of Qt for Python.
+**
+** $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$
+**
+****************************************************************************/
+-->
+<typesystem package="PySide2.QtScxml">
+ <load-typesystem name="QtCore/typesystem_core.xml" generate="no"/>
+ <object-type name="QScxmlCompiler">
+ <object-type name="Loader"/>
+ </object-type>
+ <object-type name="QScxmlCppDataModel" since="5.12"/>
+ <object-type name="QScxmlEvent">
+ <enum-type name="EventType"/>
+ </object-type>
+ <object-type name="QScxmlDynamicScxmlServiceFactory"/>
+ <object-type name="QScxmlInvokableService"/>
+ <object-type name="QScxmlInvokableServiceFactory"/>
+ <object-type name="QScxmlStaticScxmlServiceFactory"/>
+ <object-type name="QScxmlStateMachine"/>
+ <object-type name="QScxmlTableData"/>
+ <object-type name="QScxmlDataModel" since="5.12">
+ <!-- Needs to have exports fixed -->
+ <interface-type name="ForeachLoopBody" since="5.12"/>
+ </object-type>
+ <object-type name="QScxmlEcmaScriptDataModel" since="5.12"/>
+ <value-type name="QScxmlError"/>
+ <namespace-type name="QScxmlExecutableContent">
+ <value-type name="AssignmentInfo"/>
+ <value-type name="EvaluatorInfo"/>
+ <value-type name="ForeachInfo"/>
+ <value-type name="InvokeInfo"/>
+ <value-type name="ParameterInfo"/>
+ </namespace-type>
+ <object-type name="QScxmlNullDataModel" since="5.12"/>
+</typesystem>
diff --git a/sources/pyside2/PySide2/support/signature/PSF-3.6.2.txt b/sources/pyside2/PySide2/support/signature/PSF-3.6.2.txt
new file mode 100644
index 000000000..bbd5311be
--- /dev/null
+++ b/sources/pyside2/PySide2/support/signature/PSF-3.6.2.txt
@@ -0,0 +1,43 @@
+PSF LICENSE AGREEMENT FOR PYTHON 3.6.2
+
+1. This LICENSE AGREEMENT is between the Python Software Foundation ("PSF"), and
+ the Individual or Organization ("Licensee") accessing and otherwise using Python
+ 3.6.2 software in source or binary form and its associated documentation.
+
+2. Subject to the terms and conditions of this License Agreement, PSF hereby
+ grants Licensee a nonexclusive, royalty-free, world-wide license to reproduce,
+ analyze, test, perform and/or display publicly, prepare derivative works,
+ distribute, and otherwise use Python 3.6.2 alone or in any derivative
+ version, provided, however, that PSF's License Agreement and PSF's notice of
+ copyright, i.e., "Copyright © 2001-2017 Python Software Foundation; All Rights
+ Reserved" are retained in Python 3.6.2 alone or in any derivative version
+ prepared by Licensee.
+
+3. In the event Licensee prepares a derivative work that is based on or
+ incorporates Python 3.6.2 or any part thereof, and wants to make the
+ derivative work available to others as provided herein, then Licensee hereby
+ agrees to include in any such work a brief summary of the changes made to Python
+ 3.6.2.
+
+4. PSF is making Python 3.6.2 available to Licensee on an "AS IS" basis.
+ PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED. BY WAY OF
+ EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND DISCLAIMS ANY REPRESENTATION OR
+ WARRANTY OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE
+ USE OF PYTHON 3.6.2 WILL NOT INFRINGE ANY THIRD PARTY RIGHTS.
+
+5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON 3.6.2
+ FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS A RESULT OF
+ MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON 3.6.2, OR ANY DERIVATIVE
+ THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.
+
+6. This License Agreement will automatically terminate upon a material breach of
+ its terms and conditions.
+
+7. Nothing in this License Agreement shall be deemed to create any relationship
+ of agency, partnership, or joint venture between PSF and Licensee. This License
+ Agreement does not grant permission to use PSF trademarks or trade name in a
+ trademark sense to endorse or promote products or services of Licensee, or any
+ third party.
+
+8. By copying, installing or otherwise using Python 3.6.2, Licensee agrees
+ to be bound by the terms and conditions of this License Agreement.
diff --git a/sources/pyside2/PySide2/support/signature/qt_attribution.json b/sources/pyside2/PySide2/support/signature/qt_attribution.json
index 331b3e814..c1f335d60 100644
--- a/sources/pyside2/PySide2/support/signature/qt_attribution.json
+++ b/sources/pyside2/PySide2/support/signature/qt_attribution.json
@@ -6,7 +6,8 @@
"Description": "Qt for Python is an add-on for Python. The signature packages of PySide uses certain copied and adapted source files (inspect.py, backport_inspect.py, typing27.py, typing36.py). See the folder sources/pyside2/PySide2/support/signature .",
"Homepage": "http://www.python.org/",
"Version": "3.6.5",
- "License": "PSF LICENSE AGREEMENT FOR PYTHON 3.6.5",
- "LicenseFile": "backport_inspect.py",
+ "LicenseId": "Python-2.0",
+ "License": "Python License 2.0",
+ "LicenseFile": "PSF-3.6.2.txt",
"Copyright": "© Copyright 2001-2018, Python Software Foundation."
}
diff --git a/sources/pyside2/doc/_templates/index.html b/sources/pyside2/doc/_templates/index.html
deleted file mode 100644
index 901ddc496..000000000
--- a/sources/pyside2/doc/_templates/index.html
+++ /dev/null
@@ -1,120 +0,0 @@
-{% extends "layout.html" %}
-{% set title = 'Overview' %}
-{% block body %}
-<div class="section">
- <h1>PySide {{ version }} Reference</h1>
-
- <p><a href="http://www.qt.io/">Qt</a> is a complete cross-platform software framework.
- PySide aims to provide Python developers access to the Qt libraries in the most natural way.</p>
-
- <p>PySide is built using the Shiboken binding generator.</p>
-
- <h2>Notes</h2>
-
- <h3>About 0 vs None</h3>
-
- <p>The PySide class reference documentation is automatically generated from the original
- Qt documentation for C++, some parts were tuned to fit the Python world. However, it's not
- possible to rewrite all Qt docs as it would require a really huge effort, so if the
- documentation says you can use 0 on an QObject argument, interpret it as None.</p>
-
- <h3>About keyword arguments</h3>
-
- <p>Only optional arguments can be used as keyword arguments.</p>
-
- <h2>Modules</h2>
-
- <table class="contentstable" align="center" ><tr>
- <td width="50%">
- <p class="biglink"><a class="biglink" href="{{ pathto("PySide2/Qt3DAnimation/index") }}">Qt3DAnimation</a><br/>
- <span class="linkdescr">provides a set of prebuilt elements to help you get started with Qt 3D</span></p>
- <p class="biglink"><a class="biglink" href="{{ pathto("PySide2/Qt3DCore/index") }}">Qt3DCore</a><br/>
- <span class="linkdescr">contains functionality to support near-realtime simulation systems</span></p>
- <p class="biglink"><a class="biglink" href="{{ pathto("PySide2/Qt3DExtras/index") }}">Qt3DExtras</a><br/>
- <span class="linkdescr"> provides a set of prebuilt elements to help you get started with Qt 3D</span></p>
- <p class="biglink"><a class="biglink" href="{{ pathto("PySide2/Qt3DInput/index") }}">Qt3DInput</a><br/>
- <span class="linkdescr"></span>provides classes for handling user input in applications using Qt3D</p>
- <p class="biglink"><a class="biglink" href="{{ pathto("PySide2/Qt3DLogic/index") }}">Qt3DLogic</a><br/>
- <span class="linkdescr">enables synchronizing frames with the Qt 3D backend</span></p>
- <p class="biglink"><a class="biglink" href="{{ pathto("PySide2/Qt3DRender/index") }}">Qt3DRender</a><br/>
- <span class="linkdescr"></span>contains functionality to support 2D and 3D rendering using Qt 3D</p>
- <p class="biglink"><a class="biglink" href="{{ pathto("PySide2/QtAxContainer/index") }}">QtAxContainer</a><br/>
- <span class="linkdescr">provides QAxObject and QAxWidget which act as
- containers for COM objects and ActiveX controls</span></p>
- <p class="biglink"><a class="biglink" href="{{ pathto("PySide2/QtCharts/index") }}">QtCharts</a><br/>
- <span class="linkdescr">provides a set of easy to use chart components</span></p>
- <p class="biglink"><a class="biglink" href="{{ pathto("PySide2/QtConcurrent/index") }}">QtConcurrent</a><br/>
- <span class="linkdescr">provides high-level APIs that make it possible
- to write multi-threaded programs without using low-level threading
- primitives such as mutexes, read-write locks, wait conditions, or semaphores</span></p>
- <p class="biglink"><a class="biglink" href="{{ pathto("PySide2/QtCore/index") }}">QtCore</a><br/>
- <span class="linkdescr">core non-GUI functionality</span></p>
- <p class="biglink"><a class="biglink" href="{{ pathto("PySide2/QtDataVisualization/index") }}">QtDataVisualization</a><br/>
- <span class="linkdescr">provides a way to visualize data in 3D as bar, scatter, and surface graphs</span></p>
- <p class="biglink"><a class="biglink" href="{{ pathto("PySide2/QtGui/index") }}">QtGui</a><br/>
- <span class="linkdescr">extends QtCore with GUI functionality.</span></p>
- <p class="biglink"><a class="biglink" href="{{ pathto("PySide2/QtMacExtras/index") }}">QtMacExtras</a><br/>
- <span class="linkdescr">provides classes and functions specific to
- macOS and iOS operating systems</span></p>
- <p class="biglink"><a class="biglink" href="{{ pathto("PySide2/QtHelp/index") }}">QtHelp</a><br/>
- <span class="linkdescr">provides classes for integrating online documentation in applications</span></p>
- <p class="biglink"><a class="biglink" href="{{ pathto("PySide2/QtMultimedia/index") }}">QtMultimedia</a><br/>
- <span class="linkdescr">provides low-level multimedia functionality</span></p>
- <p class="biglink"><a class="biglink" href="{{ pathto("PySide2/QtMultimediaWidgets/index") }}">QtMultimediaWidgets</a><br/>
- <span class="linkdescr">provides the widget-based multimedia API</span></p>
- <p class="biglink"><a class="biglink" href="{{ pathto("PySide2/QtNetwork/index") }}">QtNetwork</a><br/>
- <span class="linkdescr">offers classes that allow you to write TCP/IP clients and servers</span></p>
- </td>
- <td width="50%">
- <p class="biglink"><a class="biglink" href="{{ pathto("PySide2/QtOpenGL/index") }}">QtOpenGL</a><br/>
- <span class="linkdescr">offers classes that make it easy to use OpenGL in Qt applications</span></p>
- <p class="biglink"><a class="biglink" href="{{ pathto("PySide2/QtPrintSupport/index") }}">QtPrintSupport</a><br/>
- <span class="linkdescr">provides cross-platform support for printing</span></p>
- <p class="biglink"><a class="biglink" href="{{ pathto("PySide2/QtQml/index") }}">QtQml</a><br/>
- <span class="linkdescr">Python API for Qt QML</span></p>
- <p class="biglink"><a class="biglink" href="{{ pathto("PySide2/QtQuick/index") }}">QtQuick</a><br/>
- <span class="linkdescr">provides classes for embedding Qt Quick in Qt applications</span></p>
- <p class="biglink"><a class="biglink" href="{{ pathto("PySide2/QtQuickWidgets/index") }}">QtQuickWidgets</a><br/>
- <span class="linkdescr">provides the QQuickWidget class for embedding Qt Quick in widget-based applications</span></p>
- <p class="biglink"><a class="biglink" href="{{ pathto("PySide2/QtTextToSpeech/index") }}">QtTextToSpeech</a><br/>
- <span class="linkdescr">provides C++ API to access text-to-speech engines</span></p>
- <p class="biglink"><a class="biglink" href="{{ pathto("PySide2/QtSql/index") }}">QtSql</a><br/>
- <span class="linkdescr">helps you provide seamless database integration to your Qt applications</span></p>
- <p class="biglink"><a class="biglink" href="{{ pathto("PySide2/QtSvg/index") }}">QtSvg</a><br/>
- <span class="linkdescr">provides classes for displaying the contents of SVG files</span></p>
- <p class="biglink"><a class="biglink" href="{{ pathto("PySide2/QtTest/index") }}">QtTest</a><br/>
- <span class="linkdescr">provides classes for unit testing Qt applications and libraries</span></p>
- <p class="biglink"><a class="biglink" href="{{ pathto("PySide2/QtUiTools/index") }}">QtUiTools</a><br/>
- <span class="linkdescr">provides classes to handle forms created with Qt Designer</span></p>
- <p class="biglink"><a class="biglink" href="{{ pathto("PySide2/QtWebChannel/index") }}">QtWebChannel</a><br/>
- <span class="linkdescr">enables peer-to-peer communication between a server and a client
- (HTML/JavaScript or QML application)</span></p>
- <p class="biglink"><a class="biglink" href="{{ pathto("PySide2/QtWebSockets/index") }}">QtWebSockets</a><br/>
- <span class="linkdescr"></span>provides interfaces that enable Qt applications
- to act as a server that can process WebSocket requests, or a client that
- can consume data received from the server, or both</p>
- <p class="biglink"><a class="biglink" href="{{ pathto("PySide2/QtWidgets/index") }}">QtWidgets</a><br/>
- <span class="linkdescr">extends Qt GUI with C++ widget functionality.</span></p>
- <p class="biglink"><a class="biglink" href="{{ pathto("PySide2/QtWinExtras/index") }}">QtWinExtras</a><br/>
- <span class="linkdescr">provides classes and functions for using some Windows APIs in a Qt way</span></p>
- <p class="biglink"><a class="biglink" href="{{ pathto("PySide2/QtX11Extras/index") }}">QtX11Extras</a><br/>
- <span class="linkdescr">provides information about the X display configuration</span></p>
- <p class="biglink"><a class="biglink" href="{{ pathto("PySide2/QtXml/index") }}">QtXml</a><br/>
- <span class="linkdescr">provides a stream reader and writer for XML documents</span></p>
- <p class="biglink"><a class="biglink" href="{{ pathto("PySide2/QtXmlPatterns/index") }}">QtXmlPatterns</a><br/>
- <span class="linkdescr">provides support for XPath, XQuery, XSLT and XML Schema validation</span></p>
- </td></tr>
- </table>
-
- <h2>Tutorials and examples</h2>
-
- <p>A collection of <a href="{{ pathto("tutorials/index") }}">tutorials</a> and "walkthrough" guides are provided with PySide to help new users get started with PySide development. These documents were ported from C++ to Python and cover a range of topics, from basic use of widgets to step-by-step <a href="{{ pathto("tutorials/index") }}">tutorials</a> that show how an application is put together.</p>
-
- <h2>Other stuff</h2>
-
- <ul>
- <li class="toctree-l1"><a class="reference internal" href="pysideapi2.html">PySide API 2</a></li>
- <li class="toctree-l1"><a class="reference internal" href="pysideversion.html">Getting PySide and Qt version</a></li>
- </ul>
-</div>
-{% endblock %}
diff --git a/sources/pyside2/doc/conf.py.in b/sources/pyside2/doc/conf.py.in
index e5fc80fb7..26d99c7ed 100644
--- a/sources/pyside2/doc/conf.py.in
+++ b/sources/pyside2/doc/conf.py.in
@@ -167,4 +167,4 @@ html_show_sourcelink = False
# Link to the shiboken2 sphinx project to enable linking
# between the two projects.
-intersphinx_mapping = {'shiboken2': ('@CMAKE_BINARY_DIR@/../shiboken2/doc/html','@CMAKE_BINARY_DIR@/../shiboken2/doc/html/objects.inv')}
+intersphinx_mapping = {'shiboken2': ('../../../shiboken2/doc/html','../../../shiboken2/doc/html/objects.inv')}
diff --git a/sources/pyside2/doc/index.rst b/sources/pyside2/doc/index.rst
index 26bfe998f..efc3ea2fa 100644
--- a/sources/pyside2/doc/index.rst
+++ b/sources/pyside2/doc/index.rst
@@ -94,7 +94,8 @@ Qt Modules
Helps you create viable mapping solutions using the data available from some of the popular location services.
* - `Qt Sensors <PySide2/QtSensors/index.html>`_
Provides access to sensor hardware via QML and Python interfaces and a motion gesture recognition API for devices.
- -
+ - `Qt Scxml <PySide2/QtScxml/index.html>`_
+ Provides classes to create and use state machines from SCXML files.
|project| also comes with the
:doc:`Shiboken2 <shiboken2:contents>` generator that outputs C++ code
diff --git a/sources/pyside2/doc/qtmodules/pyside-qtscxml.qdocconf.in b/sources/pyside2/doc/qtmodules/pyside-qtscxml.qdocconf.in
new file mode 100644
index 000000000..30b61a785
--- /dev/null
+++ b/sources/pyside2/doc/qtmodules/pyside-qtscxml.qdocconf.in
@@ -0,0 +1,3 @@
+include(@QT_SRC_DIR@/../qtscxml/src/scxml/doc/qtscxml.qdocconf)
+includepaths += -I @QT_SRC_DIR@/../qtscxml/src/scxml/doc
+include(../pyside-config.qdocconf)
diff --git a/sources/pyside2/tests/QtScxml/CMakeLists.txt b/sources/pyside2/tests/QtScxml/CMakeLists.txt
new file mode 100644
index 000000000..dde186697
--- /dev/null
+++ b/sources/pyside2/tests/QtScxml/CMakeLists.txt
@@ -0,0 +1 @@
+PYSIDE_TEST(test_dynamic.py)
diff --git a/sources/pyside2/tests/QtScxml/test_dynamic.py b/sources/pyside2/tests/QtScxml/test_dynamic.py
new file mode 100644
index 000000000..1bae534ac
--- /dev/null
+++ b/sources/pyside2/tests/QtScxml/test_dynamic.py
@@ -0,0 +1,53 @@
+#############################################################################
+##
+## Copyright (C) 2018 The Qt Company Ltd.
+## Contact: https://www.qt.io/licensing/
+##
+## This file is part of the test suite of Qt for Python.
+##
+## $QT_BEGIN_LICENSE:GPL-EXCEPT$
+## 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 General Public License Usage
+## Alternatively, this file may be used under the terms of the GNU
+## General Public License version 3 as published by the Free Software
+## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
+## 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-3.0.html.
+##
+## $QT_END_LICENSE$
+##
+#############################################################################
+
+import os
+import unittest
+
+from helper import TimedQApplication
+from PySide2.QtCore import QObject, SIGNAL
+from PySide2.QtScxml import QScxmlStateMachine
+
+class testDynamicStateMachine(TimedQApplication):
+ def setUp(self):
+ super(testDynamicStateMachine, self).setUp()
+ filePath = os.path.join(os.path.dirname(__file__), 'trafficlight.scxml')
+ self.assertTrue(os.path.exists(filePath))
+ self._machine = QScxmlStateMachine.fromFile(filePath)
+ self._machine.reachedStableState.connect(self._reachedStable())
+ self.assertTrue(not self._machine.parseErrors())
+ self.assertTrue(self._machine)
+
+ def _reachedStable(self):
+ self.app.quit()
+
+ def test(self):
+ self._machine.start()
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/sources/pyside2/tests/QtScxml/trafficlight.scxml b/sources/pyside2/tests/QtScxml/trafficlight.scxml
new file mode 100644
index 000000000..1b0fb6e9a
--- /dev/null
+++ b/sources/pyside2/tests/QtScxml/trafficlight.scxml
@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+/****************************************************************************
+**
+** Copyright (C) 2018 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the test suite of Qt for Python.
+**
+** $QT_BEGIN_LICENSE:GPL-EXCEPT$
+** 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 General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3 as published by the Free Software
+** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
+** 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-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+-->
+<scxml
+ xmlns="http://www.w3.org/2005/07/scxml"
+ xmlns:qt="http://theqtcompany.com/scxml/2015/06/"
+ version="1.0"
+ name="TrafficLightStateMachine"
+ initial="working"
+>
+ <state id="working" initial="yellow">
+ <state id="red">
+ <onentry>
+ <send event="startGoingGreen" delay="3s"/>
+ </onentry>
+ <transition event="startGoingGreen" target="redGoingGreen"/>
+ </state>
+
+ <state id="yellow" initial="greenGoingRed">
+ <state id="redGoingGreen">
+ <onentry>
+ <send event="goGreen" delay="1s"/>
+ </onentry>
+ <transition event="goGreen" target="green"/>
+ </state>
+
+ <state id="greenGoingRed">
+ <onentry>
+ <send event="goRed" delay="1s"/>
+ </onentry>
+ <transition event="goRed" target="red"/>
+ </state>
+ </state>
+
+ <state id="green">
+ <onentry>
+ <send event="startGoingRed" delay="3s"/>
+ </onentry>
+ <transition event="startGoingRed" target="greenGoingRed"/>
+ </state>
+
+ <transition event="smash" target="broken"/>
+ </state>
+
+ <state id="broken" initial="blinking">
+ <state id="blinking">
+ <onentry>
+ <send event="unblink" delay="1s"/>
+ </onentry>
+ <transition event="unblink" target="unblinking"/>
+ </state>
+
+ <state id="unblinking">
+ <onentry>
+ <send event="blink" delay="1s"/>
+ </onentry>
+ <transition event="blink" target="blinking"/>
+ </state>
+
+ <transition event="repair" target="working"/>
+ </state>
+</scxml>
diff --git a/sources/shiboken2/CMakeLists.txt b/sources/shiboken2/CMakeLists.txt
index 0a2920e4f..60ab7878f 100644
--- a/sources/shiboken2/CMakeLists.txt
+++ b/sources/shiboken2/CMakeLists.txt
@@ -44,8 +44,8 @@ macro(get_llvm_config)
import os
import sys
sys.path.append(os.path.realpath(os.path.join('${CMAKE_CURRENT_LIST_DIR}', '..', '..')))
- from build_scripts.utils import findLlvmConfig
- llvmConfig = findLlvmConfig()
+ from build_scripts.utils import find_llvm_config
+ llvmConfig = find_llvm_config()
if llvmConfig:
print(llvmConfig)
"