aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2017-04-21 11:18:38 +0200
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2017-04-24 09:36:27 +0000
commite212817ebacab0ead54dcb76f83ac59cda8295df (patch)
tree725bdfd90ba6f7fe32201d8ddb64c52508878276
parentadeecf5706215dc3a150a281af3a9bf2ac28e1da (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.txt3
-rw-r--r--PySide2/QtMultimedia/CMakeLists.txt4
-rw-r--r--PySide2/QtMultimedia/typesystem_multimedia.xml5
-rw-r--r--PySide2/QtMultimediaWidgets/CMakeLists.txt52
-rw-r--r--PySide2/QtMultimediaWidgets/typesystem_multimediawidgets.xml52
-rw-r--r--PySide2/global.h.in4
-rw-r--r--tests/CMakeLists.txt1
-rw-r--r--tests/QtMultimediaWidgets/CMakeLists.txt1
-rw-r--r--tests/QtMultimediaWidgets/qmultimediawidgets.py59
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()