diff options
author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2017-04-21 11:18:38 +0200 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2017-04-24 09:36:27 +0000 |
commit | e212817ebacab0ead54dcb76f83ac59cda8295df (patch) | |
tree | 725bdfd90ba6f7fe32201d8ddb64c52508878276 | |
parent | adeecf5706215dc3a150a281af3a9bf2ac28e1da (diff) |
Add QtMultimediaWidgets
Add module and a simple test that shows the widgets.
Task-number: PYSIDE-349
Change-Id: I0abecaa7dad03fbb1910ac049a5aed250ed80d78
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
-rw-r--r-- | PySide2/CMakeLists.txt | 3 | ||||
-rw-r--r-- | PySide2/QtMultimedia/CMakeLists.txt | 4 | ||||
-rw-r--r-- | PySide2/QtMultimedia/typesystem_multimedia.xml | 5 | ||||
-rw-r--r-- | PySide2/QtMultimediaWidgets/CMakeLists.txt | 52 | ||||
-rw-r--r-- | PySide2/QtMultimediaWidgets/typesystem_multimediawidgets.xml | 52 | ||||
-rw-r--r-- | PySide2/global.h.in | 4 | ||||
-rw-r--r-- | tests/CMakeLists.txt | 1 | ||||
-rw-r--r-- | tests/QtMultimediaWidgets/CMakeLists.txt | 1 | ||||
-rw-r--r-- | tests/QtMultimediaWidgets/qmultimediawidgets.py | 59 |
9 files changed, 181 insertions, 0 deletions
diff --git a/PySide2/CMakeLists.txt b/PySide2/CMakeLists.txt index 28f591d9..db602c0e 100644 --- a/PySide2/CMakeLists.txt +++ b/PySide2/CMakeLists.txt @@ -22,6 +22,7 @@ find_package(Qt5Script) find_package(Qt5ScriptTools) find_package(Qt5Help) find_package(Qt5Multimedia) +find_package(Qt5MultimediaWidgets) find_package(Qt5Qml) find_package(Qt5Quick) find_package(Qt5QuickWidgets) @@ -134,6 +135,7 @@ CHECK_PACKAGE_FOUND(Qt5Script opt) CHECK_PACKAGE_FOUND(Qt5ScriptTools opt) CHECK_PACKAGE_FOUND(Qt5Help opt) CHECK_PACKAGE_FOUND(Qt5Multimedia opt) +CHECK_PACKAGE_FOUND(Qt5MultimediaWidgets opt) CHECK_PACKAGE_FOUND(Qt5Qml opt) CHECK_PACKAGE_FOUND(Qt5Quick opt) CHECK_PACKAGE_FOUND(Qt5QuickWidgets opt) @@ -195,6 +197,7 @@ else() ENDIF() HAS_QT_MODULE(Qt5Help_FOUND QtHelp) HAS_QT_MODULE(Qt5Multimedia_FOUND QtMultimedia) +HAS_QT_MODULE(Qt5MultimediaWidgets_FOUND QtMultimediaWidgets) HAS_QT_MODULE(Qt5Qml_FOUND QtQml) HAS_QT_MODULE(Qt5Quick_FOUND QtQuick) HAS_QT_MODULE(Qt5QuickWidgets_FOUND QtQuickWidgets) diff --git a/PySide2/QtMultimedia/CMakeLists.txt b/PySide2/QtMultimedia/CMakeLists.txt index 5bbb00f2..51b5a042 100644 --- a/PySide2/QtMultimedia/CMakeLists.txt +++ b/PySide2/QtMultimedia/CMakeLists.txt @@ -13,6 +13,10 @@ ${QtMultimedia_GEN_DIR}/qaudioformat_wrapper.cpp ${QtMultimedia_GEN_DIR}/qaudioinput_wrapper.cpp ${QtMultimedia_GEN_DIR}/qaudiooutput_wrapper.cpp ${QtMultimedia_GEN_DIR}/qvideoframe_wrapper.cpp +${QtMultimedia_GEN_DIR}/qmediabindableinterface_wrapper.cpp +${QtMultimedia_GEN_DIR}/qmediacontrol_wrapper.cpp +${QtMultimedia_GEN_DIR}/qmediaobject_wrapper.cpp + # module is always needed ${QtMultimedia_GEN_DIR}/qtmultimedia_module_wrapper.cpp ) diff --git a/PySide2/QtMultimedia/typesystem_multimedia.xml b/PySide2/QtMultimedia/typesystem_multimedia.xml index e14c0b97..faf52961 100644 --- a/PySide2/QtMultimedia/typesystem_multimedia.xml +++ b/PySide2/QtMultimedia/typesystem_multimedia.xml @@ -146,4 +146,9 @@ </modify-function> </object-type> + <!-- For QtMultimediaWidgets --> + <object-type name="QMediaBindableInterface"/> + <object-type name="QMediaControl"/> + <object-type name="QMediaObject"/> + </typesystem> diff --git a/PySide2/QtMultimediaWidgets/CMakeLists.txt b/PySide2/QtMultimediaWidgets/CMakeLists.txt new file mode 100644 index 00000000..1368fc3a --- /dev/null +++ b/PySide2/QtMultimediaWidgets/CMakeLists.txt @@ -0,0 +1,52 @@ +project(QtMultimediaWidgets) + +set(QtMultimediaWidgets_SRC +${QtMultimediaWidgets_GEN_DIR}/qcameraviewfinder_wrapper.cpp +${QtMultimediaWidgets_GEN_DIR}/qgraphicsvideoitem_wrapper.cpp +${QtMultimediaWidgets_GEN_DIR}/qvideowidget_wrapper.cpp +${QtMultimediaWidgets_GEN_DIR}/qvideowidgetcontrol_wrapper.cpp +# module is always needed +${QtMultimediaWidgets_GEN_DIR}/qtmultimediawidgets_module_wrapper.cpp +) + +make_path(QtMultimediaWidgets_typesystem_path + ${QtCore_SOURCE_DIR} ${QtGui_SOURCE_DIR} ${QtNetwork_SOURCE_DIR} ${QtWidgets_SOURCE_DIR} ${QtMultimedia_SOURCE_DIR} + ${QtCore_BINARY_DIR} ${QtGui_BINARY_DIR} ${QtNetwork_BINARY_DIR} ${QtWidgets_BINARY_DIR} ${QtMultimedia_BINARY_DIR} + ${QtMultimediaWidgets_SOURCE_DIR}) + +set(QtMultimediaWidgets_include_dirs ${QtMultimediaWidgets_SOURCE_DIR} + ${QtMultimediaWidgets_BINARY_DIR} + ${Qt5Core_INCLUDE_DIRS} + ${Qt5Gui_INCLUDE_DIRS} + ${Qt5Network_INCLUDE_DIRS} + ${Qt5Widgets_INCLUDE_DIRS} + ${Qt5Multimedia_INCLUDE_DIRS} + ${Qt5MultimediaWidgets_INCLUDE_DIRS} + ${SHIBOKEN_INCLUDE_DIR} + ${libpyside_SOURCE_DIR} + ${SHIBOKEN_PYTHON_INCLUDE_DIR} + ${QtCore_GEN_DIR} + ${QtGui_GEN_DIR} + ${QtNetwork_GEN_DIR} + ${QtWidgets_GEN_DIR} + ${QtMultimedia_GEN_DIR}) + +set(QtMultimediaWidgets_libraries pyside2 + ${SHIBOKEN_PYTHON_LIBRARIES} + ${SHIBOKEN_LIBRARY} + ${Qt5Multimedia_LIBRARIES} + ${Qt5MultimediaWidgets_LIBRARIES} + ${Qt5Core_LIBRARIES} + ${Qt5Gui_LIBRARIES} + ${Qt5Network_LIBRARIES} + ${Qt5Widgets_LIBRARIES}) + +set(QtMultimediaWidgets_deps QtCore QtGui QtNetwork QtWidgets QtMultimedia) + +create_pyside_module(QtMultimediaWidgets + QtMultimediaWidgets_include_dirs + QtMultimediaWidgets_libraries + QtMultimediaWidgets_deps + QtMultimediaWidgets_typesystem_path + QtMultimediaWidgets_SRC + "") diff --git a/PySide2/QtMultimediaWidgets/typesystem_multimediawidgets.xml b/PySide2/QtMultimediaWidgets/typesystem_multimediawidgets.xml new file mode 100644 index 00000000..7de4c73d --- /dev/null +++ b/PySide2/QtMultimediaWidgets/typesystem_multimediawidgets.xml @@ -0,0 +1,52 @@ +<?xml version="1.0"?> +<!-- +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of PySide2. +** +** $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.QtMultimediaWidgets"> + <load-typesystem name="typesystem_core.xml" generate="no" /> + <load-typesystem name="typesystem_gui.xml" generate="no" /> + <load-typesystem name="typesystem_multimedia.xml" generate="no" /> + <load-typesystem name="typesystem_widgets.xml" generate="no" /> + + <object-type name="QCameraViewfinder"/> + <object-type name="QGraphicsVideoItem"/> + <object-type name="QVideoWidget"/> + <object-type name="QVideoWidgetControl"/> +</typesystem> diff --git a/PySide2/global.h.in b/PySide2/global.h.in index e03ed345..c8628521 100644 --- a/PySide2/global.h.in +++ b/PySide2/global.h.in @@ -451,6 +451,10 @@ QT_END_NAMESPACE # include <QtWebEngineWidgets/QtWebEngineWidgets> #endif +#if @Qt5MultimediaWidgets_FOUND@ +# include <QtMultimediaWidgets/QtMultimediaWidgets> +#endif + #if @Qt5WebChannel_FOUND@ # include <QtWebChannel/QtWebChannel> #endif diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 1a47f21d..a86f7feb 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -69,6 +69,7 @@ else() TEST_QT_MODULE(Qt5Script_FOUND QtScript) TEST_QT_MODULE(Qt5ScriptTools_FOUND QtScriptTools) TEST_QT_MODULE(Qt5Multimedia_FOUND QtMultimedia) + TEST_QT_MODULE(Qt5MultimediaWidgets_FOUND QtMultimediaWidgets) TEST_QT_MODULE(Qt5Qml_FOUND QtQml) #TEST_QT_MODULE(Qt5Quick_FOUND QtQuick) #TEST_QT_MODULE(Qt5QuickWidgets_FOUND QtQuickWidgets) diff --git a/tests/QtMultimediaWidgets/CMakeLists.txt b/tests/QtMultimediaWidgets/CMakeLists.txt new file mode 100644 index 00000000..2fc655f8 --- /dev/null +++ b/tests/QtMultimediaWidgets/CMakeLists.txt @@ -0,0 +1 @@ +PYSIDE_TEST(qmultimediawidgets.py) diff --git a/tests/QtMultimediaWidgets/qmultimediawidgets.py b/tests/QtMultimediaWidgets/qmultimediawidgets.py new file mode 100644 index 00000000..734dca9e --- /dev/null +++ b/tests/QtMultimediaWidgets/qmultimediawidgets.py @@ -0,0 +1,59 @@ +############################################################################# +## +## Copyright (C) 2017 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$ +## +############################################################################# + +'''Test cases for QtMultimediaWidgets''' + +import unittest + +from helper import UsesQApplication +from PySide2.QtMultimediaWidgets import QGraphicsVideoItem, QVideoWidget +from PySide2.QtWidgets import QGraphicsScene, QGraphicsView, QVBoxLayout, QWidget +from PySide2.QtCore import QTimer + +class MyWidget(QWidget): + def __init__(self): + QWidget.__init__(self) + + layout = QVBoxLayout(self) + layout.addWidget(QVideoWidget()) + + graphicsScene = QGraphicsScene() + graphicsView = QGraphicsView(graphicsScene) + graphicsScene.addItem(QGraphicsVideoItem()) + layout.addWidget(graphicsView) + +class QMultimediaWidgetsTest(UsesQApplication): + def testMultimediaWidgets(self): + w = MyWidget() + w.show() + + timer = QTimer.singleShot(100, self.app.quit) + self.app.exec_() + +if __name__ == '__main__': + unittest.main() |