From fe9e90cd7fd54084438815f93616e7edaa19f7cb Mon Sep 17 00:00:00 2001 From: Cristian Maureira-Fredes Date: Mon, 18 Feb 2019 17:32:59 +0100 Subject: Add common QPrintSupport typesystem for QWebEngine Moved around the files so we have a general QPrintSupport typesystem that we can include in other modules that need it, like QWebEngine. Change-Id: Ic277c37e6b0c08b370102d1bef18cd1375239169 Task-number: PYSIDE-946 Reviewed-by: Qt CI Bot Reviewed-by: Christian Tismer --- .../pyside2/PySide2/QtPrintSupport/CMakeLists.txt | 6 +- .../QtPrintSupport/typesystem_printsupport.xml | 118 --------------------- .../QtPrintSupport/typesystem_printsupport.xml.in | 46 ++++++++ .../typesystem_printsupport_common.xml | 117 ++++++++++++++++++++ .../PySide2/QtWebEngineWidgets/CMakeLists.txt | 4 +- .../typesystem_webenginewidgets.xml | 1 + 6 files changed, 172 insertions(+), 120 deletions(-) delete mode 100644 sources/pyside2/PySide2/QtPrintSupport/typesystem_printsupport.xml create mode 100644 sources/pyside2/PySide2/QtPrintSupport/typesystem_printsupport.xml.in create mode 100644 sources/pyside2/PySide2/QtPrintSupport/typesystem_printsupport_common.xml (limited to 'sources/pyside2/PySide2') diff --git a/sources/pyside2/PySide2/QtPrintSupport/CMakeLists.txt b/sources/pyside2/PySide2/QtPrintSupport/CMakeLists.txt index 3482c68fe..74d3dfb88 100644 --- a/sources/pyside2/PySide2/QtPrintSupport/CMakeLists.txt +++ b/sources/pyside2/PySide2/QtPrintSupport/CMakeLists.txt @@ -13,6 +13,9 @@ ${QtPrintSupport_GEN_DIR}/qprintpreviewwidget_wrapper.cpp ${QtPrintSupport_GEN_DIR}/qtprintsupport_module_wrapper.cpp ) +configure_file("${QtPrintSupport_SOURCE_DIR}/typesystem_printsupport.xml.in" + "${QtPrintSupport_BINARY_DIR}/typesystem_printsupport.xml" @ONLY) + set(QtPrintSupport_include_dirs ${QtPrintSupport_SOURCE_DIR} ${QtPrintSupport_BINARY_DIR} ${Qt5Core_INCLUDE_DIRS} @@ -36,4 +39,5 @@ create_pyside_module(NAME QtPrintSupport LIBRARIES QtPrintSupport_libraries DEPS QtPrintSupport_deps TYPESYSTEM_PATH QtPrintSupport_SOURCE_DIR - SOURCES QtPrintSupport_SRC) + SOURCES QtPrintSupport_SRC + TYPESYSTEM_NAME ${QtPrintSupport_BINARY_DIR}/typesystem_printsupport.xml) diff --git a/sources/pyside2/PySide2/QtPrintSupport/typesystem_printsupport.xml b/sources/pyside2/PySide2/QtPrintSupport/typesystem_printsupport.xml deleted file mode 100644 index f85aadc79..000000000 --- a/sources/pyside2/PySide2/QtPrintSupport/typesystem_printsupport.xml +++ /dev/null @@ -1,118 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/sources/pyside2/PySide2/QtPrintSupport/typesystem_printsupport.xml.in b/sources/pyside2/PySide2/QtPrintSupport/typesystem_printsupport.xml.in new file mode 100644 index 000000000..7949b2daa --- /dev/null +++ b/sources/pyside2/PySide2/QtPrintSupport/typesystem_printsupport.xml.in @@ -0,0 +1,46 @@ + + + + + + + diff --git a/sources/pyside2/PySide2/QtPrintSupport/typesystem_printsupport_common.xml b/sources/pyside2/PySide2/QtPrintSupport/typesystem_printsupport_common.xml new file mode 100644 index 000000000..5ec49c030 --- /dev/null +++ b/sources/pyside2/PySide2/QtPrintSupport/typesystem_printsupport_common.xml @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sources/pyside2/PySide2/QtWebEngineWidgets/CMakeLists.txt b/sources/pyside2/PySide2/QtWebEngineWidgets/CMakeLists.txt index 555be9c41..214ebc56b 100644 --- a/sources/pyside2/PySide2/QtWebEngineWidgets/CMakeLists.txt +++ b/sources/pyside2/PySide2/QtWebEngineWidgets/CMakeLists.txt @@ -34,6 +34,7 @@ set(QtWebEngineWidgets_include_dirs ${QtNetwork_GEN_DIR} ${QtWebChannel_GEN_DIR} ${QtWebEngineCore_GEN_DIR} + ${QtPrintSupport_GEN_DIR} ) set(QtWebEngineWidgets_libraries pyside2 ${Qt5WebEngineWidgets_LIBRARIES} @@ -42,8 +43,9 @@ set(QtWebEngineWidgets_libraries pyside2 ${Qt5Widgets_LIBRARIES} ${Qt5Gui_LIBRARIES} ${Qt5Core_LIBRARIES} + ${Qt5PrintSupport_LIBRARIES} ) -set(QtWebEngineWidgets_deps QtGui QtWidgets QtNetwork QtWebChannel) +set(QtWebEngineWidgets_deps QtGui QtWidgets QtNetwork QtWebChannel QtPrintSupport) create_pyside_module(NAME QtWebEngineWidgets INCLUDE_DIRS QtWebEngineWidgets_include_dirs LIBRARIES QtWebEngineWidgets_libraries diff --git a/sources/pyside2/PySide2/QtWebEngineWidgets/typesystem_webenginewidgets.xml b/sources/pyside2/PySide2/QtWebEngineWidgets/typesystem_webenginewidgets.xml index e51303c42..cd4cd8a91 100644 --- a/sources/pyside2/PySide2/QtWebEngineWidgets/typesystem_webenginewidgets.xml +++ b/sources/pyside2/PySide2/QtWebEngineWidgets/typesystem_webenginewidgets.xml @@ -46,6 +46,7 @@ + -- cgit v1.2.3 From 78b2438037504ae80eaf6b01d49df9ddb660656a Mon Sep 17 00:00:00 2001 From: Cristian Maureira-Fredes Date: Mon, 18 Feb 2019 16:37:37 +0100 Subject: Set proper parent when overloading QUiLoader In a couple of methods of QUiLoader, we had a parent override leaving the methods without the proper parent. setParent(pyArgs[0], pyResult) # Correct setParent(self, pyResult) # Wrong override Defining the ownership to the target class corrects this issue and just leaves the "Correct" approach. Fixes: PYSIDE-938 Change-Id: Id20d74756e14c58caba2ab4c65484d15da88df16 Reviewed-by: Friedemann Kleint --- sources/pyside2/PySide2/QtUiTools/typesystem_uitools.xml | 3 +++ 1 file changed, 3 insertions(+) (limited to 'sources/pyside2/PySide2') diff --git a/sources/pyside2/PySide2/QtUiTools/typesystem_uitools.xml b/sources/pyside2/PySide2/QtUiTools/typesystem_uitools.xml index 8086da01e..2cbe490aa 100644 --- a/sources/pyside2/PySide2/QtUiTools/typesystem_uitools.xml +++ b/sources/pyside2/PySide2/QtUiTools/typesystem_uitools.xml @@ -90,18 +90,21 @@ + + + -- cgit v1.2.3 From 5dcebb60c75b03cec2db63ecc618740a78d7f084 Mon Sep 17 00:00:00 2001 From: Cristian Maureira-Fredes Date: Mon, 18 Feb 2019 13:04:42 +0100 Subject: Add setPageSize new signature to QPageSize The generated code only takes an enum from the meta class (QPagedPaintDevice) as valid argument of the function `setPageSize` (QPagedPaintDevice::PageSize), but it should also accept a QPageSize argument. Change-Id: Ia31a69a5e52e781844ce6a7e4ff6e5e95d17563d Fixes: PYSIDE-940 Reviewed-by: Friedemann Kleint --- .../typesystem_printsupport_common.xml | 6 +++ sources/pyside2/PySide2/glue/qtprintsupport.cpp | 43 ++++++++++++++++++++++ 2 files changed, 49 insertions(+) create mode 100644 sources/pyside2/PySide2/glue/qtprintsupport.cpp (limited to 'sources/pyside2/PySide2') diff --git a/sources/pyside2/PySide2/QtPrintSupport/typesystem_printsupport_common.xml b/sources/pyside2/PySide2/QtPrintSupport/typesystem_printsupport_common.xml index 5ec49c030..5026997c1 100644 --- a/sources/pyside2/PySide2/QtPrintSupport/typesystem_printsupport_common.xml +++ b/sources/pyside2/PySide2/QtPrintSupport/typesystem_printsupport_common.xml @@ -104,6 +104,12 @@ + + + + diff --git a/sources/pyside2/PySide2/glue/qtprintsupport.cpp b/sources/pyside2/PySide2/glue/qtprintsupport.cpp new file mode 100644 index 000000000..300a498c0 --- /dev/null +++ b/sources/pyside2/PySide2/glue/qtprintsupport.cpp @@ -0,0 +1,43 @@ +/**************************************************************************** +** +** Copyright (C) 2019 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$ +** +****************************************************************************/ + +// @snippet setpagesize +bool out = %CPPSELF.setPageSize(%1); +%PYARG_0 = %CONVERTTOPYTHON[bool](out); +// @snippet setpagesize -- cgit v1.2.3 From c6c1a3e099a8139137d6ef133d1d399ba1ee38bd Mon Sep 17 00:00:00 2001 From: Christian Tismer Date: Mon, 25 Feb 2019 12:35:24 +0100 Subject: Prevent Python 3.5 From Crashing The Build Python 3.5 has a bug that crashes the build. See the description in the issue tracker. The cure is to use a more recent contextlib.py and to avoid a PySide cleanup function that creates the crash. The problem is not solved for Python 3.5, and it is not clear if the testbinding module has a hidden bug, too. But this fix seems to be good enough for the moment. We should decide if we are going to fix Python 3.5 or abandon it altogether. Change-Id: Iacf2237de1f34d2b3cd1d68f1fb5833bdca3fdc2 Fixes: PYSIDE-953 Reviewed-by: Friedemann Kleint --- sources/pyside2/PySide2/support/generate_pyi.py | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'sources/pyside2/PySide2') diff --git a/sources/pyside2/PySide2/support/generate_pyi.py b/sources/pyside2/PySide2/support/generate_pyi.py index a92ee76f0..21ef841fe 100644 --- a/sources/pyside2/PySide2/support/generate_pyi.py +++ b/sources/pyside2/PySide2/support/generate_pyi.py @@ -53,6 +53,13 @@ import re import subprocess import argparse import glob +# PYSIDE-953: Use a newer contextlib for Python 3.5 +skip_creation = False +if sys.version_info[:2] == (3, 5): + try: + import PySide2.support.signature # gets new contextlib + except: + skip_creation = True from contextlib import contextmanager from textwrap import dedent @@ -272,6 +279,9 @@ def single_process(lockdir): def generate_all_pyi(outpath, options): + if skip_creation: + logger.warn("Sorry, we cannot create .pyi files with Python 3.5 while PySide") + logger.warn(" is not installed. Please run it by hand!") ps = os.pathsep if options.sys_path: # make sure to propagate the paths from sys_path to subprocesses -- cgit v1.2.3