diff options
author | Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> | 2018-12-03 16:25:12 +0100 |
---|---|---|
committer | Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> | 2018-12-04 08:57:51 +0000 |
commit | f9d4a28fef8b234b6ef173fc3d21408f67b37472 (patch) | |
tree | 81f90f9ec3a3ea199e2c4763c8160ce03e70b145 /sources/pyside2/PySide2 | |
parent | d50f02b661698243fbeb556bb407c13da9ae4718 (diff) |
Cast PyLongs to WId
QScreen.grabWindow and QWindow.fromWinId have
an WId as an argument.
WId is treated as a PyLong internally,
but with methods that need a WId we need to manually
transform them to long.
Change-Id: I97651704f37ae268455990a13884b92e8f1b643c
Fixes: PYSIDE-863
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Diffstat (limited to 'sources/pyside2/PySide2')
-rw-r--r-- | sources/pyside2/PySide2/QtGui/typesystem_gui_common.xml | 15 | ||||
-rw-r--r-- | sources/pyside2/PySide2/glue/qtgui.cpp | 12 |
2 files changed, 26 insertions, 1 deletions
diff --git a/sources/pyside2/PySide2/QtGui/typesystem_gui_common.xml b/sources/pyside2/PySide2/QtGui/typesystem_gui_common.xml index 16bce9d30..2181ff073 100644 --- a/sources/pyside2/PySide2/QtGui/typesystem_gui_common.xml +++ b/sources/pyside2/PySide2/QtGui/typesystem_gui_common.xml @@ -2515,6 +2515,12 @@ <insert-template name="return_native_eventfilter"/> </inject-code> </modify-function> + <modify-function signature="fromWinId(WId)"> + <modify-argument index="1"> + <replace-type modified-type="long"/> + </modify-argument> + <inject-code file="../glue/qtgui.cpp" snippet="qwindow-fromWinId"/> + </modify-function> </object-type> <object-type name="QGuiApplication"> @@ -2971,7 +2977,14 @@ <modify-function signature="glyphIndexesForChars(const QChar*,int,quint32*,int*)const" remove="all"/> </value-type> <object-type name="QRasterWindow"/> - <object-type name="QScreen"/> + <object-type name="QScreen"> + <modify-function signature="grabWindow(WId,int,int,int,int)"> + <modify-argument index="1"> + <replace-type modified-type="long"/> + </modify-argument> + <inject-code file="../glue/qtgui.cpp" snippet="qscreen-grabWindow"/> + </modify-function> + </object-type> <object-type name="QStyleHints"/> </typesystem> diff --git a/sources/pyside2/PySide2/glue/qtgui.cpp b/sources/pyside2/PySide2/glue/qtgui.cpp index a34bcff43..4ae3eef75 100644 --- a/sources/pyside2/PySide2/glue/qtgui.cpp +++ b/sources/pyside2/PySide2/glue/qtgui.cpp @@ -510,6 +510,18 @@ if (!PyTuple_SetItem(empty, 0, PyList_New(0))) { } // @snippet qguiapplication-2 +// @snippet qscreen-grabWindow +WId id = %1; +%RETURN_TYPE retval = %CPPSELF.%FUNCTION_NAME(id, %2, %3, %4, %5); +%PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](retval); +// @snippet qscreen-grabWindow + +// @snippet qwindow-fromWinId +WId id = %1; +%RETURN_TYPE retval = %CPPSELF.%FUNCTION_NAME(id); +%PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](retval); +// @snippet qwindow-fromWinId + /********************************************************************* * CONVERSIONS ********************************************************************/ |