aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2018-05-08 15:50:58 +0200
committerAlexandru Croitor <alexandru.croitor@qt.io>2018-05-14 15:54:48 +0000
commite27cde95bc353b2f34ba3ef86a62c38b7231b6a4 (patch)
tree1c426804da20677b629228047f55083d3a46300c
parent6f894c2667c77e2580e7312d2ebed05efa7d654e (diff)
Add QProxyStyle
Task-number: PYSIDE-487 Change-Id: Ib862be9c0c62be09a34c3a79740d147b9788cb34 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
-rw-r--r--sources/pyside2/PySide2/QtWidgets/CMakeLists.txt1
-rw-r--r--sources/pyside2/PySide2/QtWidgets/typesystem_widgets_common.xml7
-rw-r--r--sources/pyside2/tests/QtWidgets/qstyle_test.py26
3 files changed, 33 insertions, 1 deletions
diff --git a/sources/pyside2/PySide2/QtWidgets/CMakeLists.txt b/sources/pyside2/PySide2/QtWidgets/CMakeLists.txt
index 31f241687..dee79744f 100644
--- a/sources/pyside2/PySide2/QtWidgets/CMakeLists.txt
+++ b/sources/pyside2/PySide2/QtWidgets/CMakeLists.txt
@@ -123,6 +123,7 @@ ${QtWidgets_GEN_DIR}/qplaintextdocumentlayout_wrapper.cpp
${QtWidgets_GEN_DIR}/qplaintextedit_wrapper.cpp
${QtWidgets_GEN_DIR}/qprogressbar_wrapper.cpp
${QtWidgets_GEN_DIR}/qprogressdialog_wrapper.cpp
+${QtWidgets_GEN_DIR}/qproxystyle_wrapper.cpp
${QtWidgets_GEN_DIR}/qpushbutton_wrapper.cpp
${QtWidgets_GEN_DIR}/qradiobutton_wrapper.cpp
${QtWidgets_GEN_DIR}/qrubberband_wrapper.cpp
diff --git a/sources/pyside2/PySide2/QtWidgets/typesystem_widgets_common.xml b/sources/pyside2/PySide2/QtWidgets/typesystem_widgets_common.xml
index 2a837fbc8..52b1c41d5 100644
--- a/sources/pyside2/PySide2/QtWidgets/typesystem_widgets_common.xml
+++ b/sources/pyside2/PySide2/QtWidgets/typesystem_widgets_common.xml
@@ -997,6 +997,13 @@
<object-type name="QProgressBar">
<enum-type name="Direction"/>
</object-type>
+ <object-type name="QProxyStyle">
+ <modify-function signature="QProxyStyle(QStyle*)">
+ <modify-argument index="1">
+ <define-ownership owner="c++"/>
+ </modify-argument>
+ </modify-function>
+ </object-type>
<object-type name="QPushButton" />
<object-type name="QScrollArea">
<modify-function signature="setWidget(QWidget*)">
diff --git a/sources/pyside2/tests/QtWidgets/qstyle_test.py b/sources/pyside2/tests/QtWidgets/qstyle_test.py
index 38b457a82..eb2a73d29 100644
--- a/sources/pyside2/tests/QtWidgets/qstyle_test.py
+++ b/sources/pyside2/tests/QtWidgets/qstyle_test.py
@@ -29,7 +29,20 @@
import unittest
from helper import UsesQApplication
-from PySide2.QtWidgets import QWidget, QLabel, QFontComboBox, QStyleFactory
+from PySide2.QtGui import QWindow
+from PySide2.QtWidgets import (QApplication, QFontComboBox, QLabel, QProxyStyle,
+ QStyleFactory, QWidget)
+
+class ProxyStyle(QProxyStyle):
+
+ def __init__(self, style):
+ QProxyStyle.__init__(self, style)
+ self.polished = 0
+
+ def polish(self, widget):
+ self.polished = self.polished + 1
+ super(ProxyStyle, self).polish(widget)
+
class SetStyleTest(UsesQApplication):
'''Tests setting the same QStyle for all objects in a UI hierarchy.'''
@@ -54,6 +67,17 @@ class SetStyleTest(UsesQApplication):
style = QStyleFactory.create(QStyleFactory.keys()[0])
setStyleHelper(container, style)
+ def testSetProxyStyle(self):
+ label = QLabel("QtWidgets/ProxyStyle test")
+ baseStyle = QStyleFactory.create(QApplication.instance().style().objectName())
+ self.assertTrue(baseStyle)
+ proxyStyle = ProxyStyle(baseStyle)
+ label.setStyle(proxyStyle)
+ label.show()
+ while not label.windowHandle().isExposed():
+ QApplication.instance().processEvents()
+ self.assertTrue(proxyStyle.polished > 0)
+
if __name__ == '__main__':
unittest.main()