From 516682fc232db273511440d3c7107ab15f08b5ea Mon Sep 17 00:00:00 2001 From: David Rosca Date: Sun, 18 Mar 2018 11:00:27 +0100 Subject: Add QtWebEngineCore module Change-Id: I8e1127e082abe5978a94aa8a080dfb1d8bbd5952 Reviewed-by: Friedemann Kleint --- sources/pyside2/CMakeLists.txt | 2 +- .../pyside2/PySide2/QtWebEngineCore/CMakeLists.txt | 37 ++++++++++++ .../QtWebEngineCore/typesystem_webenginecore.xml | 69 ++++++++++++++++++++++ .../PySide2/QtWebEngineWidgets/CMakeLists.txt | 1 + .../typesystem_webenginewidgets.xml | 1 + .../pyside2/tests/QtWebEngineCore/CMakeLists.txt | 29 +++++++++ .../QtWebEngineCore/web_engine_custom_scheme.py | 64 ++++++++++++++++++++ 7 files changed, 202 insertions(+), 1 deletion(-) create mode 100644 sources/pyside2/PySide2/QtWebEngineCore/CMakeLists.txt create mode 100644 sources/pyside2/PySide2/QtWebEngineCore/typesystem_webenginecore.xml create mode 100644 sources/pyside2/tests/QtWebEngineCore/CMakeLists.txt create mode 100644 sources/pyside2/tests/QtWebEngineCore/web_engine_custom_scheme.py (limited to 'sources/pyside2') diff --git a/sources/pyside2/CMakeLists.txt b/sources/pyside2/CMakeLists.txt index 41c62c67a..243beabcc 100644 --- a/sources/pyside2/CMakeLists.txt +++ b/sources/pyside2/CMakeLists.txt @@ -340,7 +340,7 @@ endif() if(WIN32) list(APPEND ALL_OPTIONAL_MODULES AxContainer) endif() -list(APPEND ALL_OPTIONAL_MODULES WebChannel WebEngineWidgets WebKit WebKitWidgets WebSockets) +list(APPEND ALL_OPTIONAL_MODULES WebChannel WebEngineCore WebEngineWidgets WebKit WebKitWidgets WebSockets) if (Qt5Core_VERSION VERSION_GREATER 5.9.3) # Depending on fixes in Qt3D list(APPEND ALL_OPTIONAL_MODULES 3DCore 3DRender 3DInput 3DLogic 3DAnimation 3DExtras) endif() diff --git a/sources/pyside2/PySide2/QtWebEngineCore/CMakeLists.txt b/sources/pyside2/PySide2/QtWebEngineCore/CMakeLists.txt new file mode 100644 index 000000000..109b9f208 --- /dev/null +++ b/sources/pyside2/PySide2/QtWebEngineCore/CMakeLists.txt @@ -0,0 +1,37 @@ +project(QtWebEngineCore) + +set(QtWebEngineCore_SRC +${QtWebEngineCore_GEN_DIR}/qwebenginecookiestore_wrapper.cpp +${QtWebEngineCore_GEN_DIR}/qwebenginehttprequest_wrapper.cpp +${QtWebEngineCore_GEN_DIR}/qwebengineurlrequestinfo_wrapper.cpp +${QtWebEngineCore_GEN_DIR}/qwebengineurlrequestinterceptor_wrapper.cpp +${QtWebEngineCore_GEN_DIR}/qwebengineurlrequestjob_wrapper.cpp +${QtWebEngineCore_GEN_DIR}/qwebengineurlschemehandler_wrapper.cpp +# module is always needed +${QtWebEngineCore_GEN_DIR}/qtwebenginecore_module_wrapper.cpp +) + +set(QtWebEngineCore_include_dirs + ${QtWebEngineCore_SOURCE_DIR} + ${QtWebEngineCore_BINARY_DIR} + ${Qt5Core_INCLUDE_DIRS} + ${SHIBOKEN_INCLUDE_DIR} + ${libpyside_SOURCE_DIR} + ${SHIBOKEN_PYTHON_INCLUDE_DIR} + ${QtCore_GEN_DIR} + ) +set(QtWebEngineCore_libraries pyside2 + ${SHIBOKEN_PYTHON_LIBRARIES} + ${SHIBOKEN_LIBRARY} + ${Qt5WebEngineCore_LIBRARIES} + ${Qt5Core_LIBRARIES} + ) +set(QtWebEngineCore_deps QtCore) +create_pyside_module(QtWebEngineCore + QtWebEngineCore_include_dirs + QtWebEngineCore_libraries + QtWebEngineCore_deps + QtWebEngineCore_SOURCE_DIR + QtWebEngineCore_SRC + "") + diff --git a/sources/pyside2/PySide2/QtWebEngineCore/typesystem_webenginecore.xml b/sources/pyside2/PySide2/QtWebEngineCore/typesystem_webenginecore.xml new file mode 100644 index 000000000..5fb064ccb --- /dev/null +++ b/sources/pyside2/PySide2/QtWebEngineCore/typesystem_webenginecore.xml @@ -0,0 +1,69 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sources/pyside2/PySide2/QtWebEngineWidgets/CMakeLists.txt b/sources/pyside2/PySide2/QtWebEngineWidgets/CMakeLists.txt index 32d0643c8..f04394de9 100644 --- a/sources/pyside2/PySide2/QtWebEngineWidgets/CMakeLists.txt +++ b/sources/pyside2/PySide2/QtWebEngineWidgets/CMakeLists.txt @@ -33,6 +33,7 @@ set(QtWebEngineWidgets_include_dirs ${QtWebEngineWidgets_GEN_DIR} ${QtNetwork_GEN_DIR} ${QtWebChannel_GEN_DIR} + ${QtWebEngineCore_GEN_DIR} ) set(QtWebEngineWidgets_libraries pyside2 ${SHIBOKEN_PYTHON_LIBRARIES} diff --git a/sources/pyside2/PySide2/QtWebEngineWidgets/typesystem_webenginewidgets.xml b/sources/pyside2/PySide2/QtWebEngineWidgets/typesystem_webenginewidgets.xml index 9462c3e41..43324e557 100644 --- a/sources/pyside2/PySide2/QtWebEngineWidgets/typesystem_webenginewidgets.xml +++ b/sources/pyside2/PySide2/QtWebEngineWidgets/typesystem_webenginewidgets.xml @@ -45,6 +45,7 @@ + diff --git a/sources/pyside2/tests/QtWebEngineCore/CMakeLists.txt b/sources/pyside2/tests/QtWebEngineCore/CMakeLists.txt new file mode 100644 index 000000000..2e361383c --- /dev/null +++ b/sources/pyside2/tests/QtWebEngineCore/CMakeLists.txt @@ -0,0 +1,29 @@ +############################################################################# +## +## Copyright (C) 2018 The Qt Company Ltd. +## Contact: https://www.qt.io/licensing/ +## +## This file is part of the test suite of PySide2. +## +## $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$ +## +############################################################################# + +PYSIDE_TEST(web_engine_custom_scheme.py) diff --git a/sources/pyside2/tests/QtWebEngineCore/web_engine_custom_scheme.py b/sources/pyside2/tests/QtWebEngineCore/web_engine_custom_scheme.py new file mode 100644 index 000000000..b7c57d8e6 --- /dev/null +++ b/sources/pyside2/tests/QtWebEngineCore/web_engine_custom_scheme.py @@ -0,0 +1,64 @@ +############################################################################# +## +## Copyright (C) 2018 The Qt Company Ltd. +## Contact: https://www.qt.io/licensing/ +## +## This file is part of the test suite of PySide2. +## +## $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$ +## +############################################################################# + +from __future__ import print_function + +import unittest + +from PySide2.QtCore import QBuffer, QTimer +from PySide2.QtWidgets import QApplication +from PySide2.QtWebEngineWidgets import QWebEngineView, QWebEngineProfile +from PySide2.QtWebEngineCore import QWebEngineUrlSchemeHandler + +class TestSchemeHandler(QWebEngineUrlSchemeHandler): + def requestStarted(self, request): + if request.requestUrl() == "testpy:hello": + request.redirect("testpy:goodbye") + return + + self.buffer = QBuffer() + self.buffer.setData("Really nice goodbye text.") + self.buffer.aboutToClose.connect(self.buffer.deleteLater) + request.reply("text/plain;charset=utf-8", self.buffer) + +class MainTest(unittest.TestCase): + def test_SchemeHandlerRedirect(self): + app = QApplication([]) + handler = TestSchemeHandler() + profile = QWebEngineProfile.defaultProfile() + profile.installUrlSchemeHandler("testpy", handler) + view = QWebEngineView() + view.loadFinished.connect(app.quit) + QTimer.singleShot(5000, app.quit) + view.show() + view.load("testpy:hello") + app.exec_() + self.assertEqual(view.url(), "testpy:goodbye") + +if __name__ == '__main__': + unittest.main() -- cgit v1.2.3