diff options
author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2018-05-26 09:40:35 +0200 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2018-05-26 09:43:03 +0200 |
commit | a1a8cf65b7426d9466f6340cfeb162f2d0787de2 (patch) | |
tree | 31b1230930cf3ca8cf8c33ae73b5e4e4f57d3b88 /sources | |
parent | 3f8c8702ea295f39357e7c66f46e5138f56bcc9f (diff) | |
parent | e0a8f2dfb759ef4eff542d0a317a9370d4eddc52 (diff) |
Merge remote-tracking branch 'origin/5.9' into 5.11
Change-Id: I0c5b60263ed642a9b6f6b5d6a1492a11f278bfd5
Diffstat (limited to 'sources')
-rw-r--r-- | sources/pyside2/CMakeLists.txt | 2 | ||||
-rw-r--r-- | sources/pyside2/PySide2/QtScxml/CMakeLists.txt | 60 | ||||
-rw-r--r-- | sources/pyside2/PySide2/QtScxml/typesystem_scxml.xml | 71 | ||||
-rw-r--r-- | sources/pyside2/PySide2/support/signature/PSF-3.6.2.txt | 43 | ||||
-rw-r--r-- | sources/pyside2/PySide2/support/signature/qt_attribution.json | 5 | ||||
-rw-r--r-- | sources/pyside2/doc/_templates/index.html | 120 | ||||
-rw-r--r-- | sources/pyside2/doc/conf.py.in | 2 | ||||
-rw-r--r-- | sources/pyside2/doc/index.rst | 3 | ||||
-rw-r--r-- | sources/pyside2/doc/qtmodules/pyside-qtscxml.qdocconf.in | 3 | ||||
-rw-r--r-- | sources/pyside2/tests/QtScxml/CMakeLists.txt | 1 | ||||
-rw-r--r-- | sources/pyside2/tests/QtScxml/test_dynamic.py | 53 | ||||
-rw-r--r-- | sources/pyside2/tests/QtScxml/trafficlight.scxml | 89 | ||||
-rw-r--r-- | sources/shiboken2/CMakeLists.txt | 4 |
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) " |