diff options
Diffstat (limited to 'PySide/QtGui')
-rw-r--r-- | PySide/QtGui/typesystem_gui_common.xml | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/PySide/QtGui/typesystem_gui_common.xml b/PySide/QtGui/typesystem_gui_common.xml index 5eaedc81c..01cd45dc5 100644 --- a/PySide/QtGui/typesystem_gui_common.xml +++ b/PySide/QtGui/typesystem_gui_common.xml @@ -504,7 +504,33 @@ <modify-function signature="outputFormats()" remove="all"/> <!-- ### End of obsolete section --> <!-- See bug 759 --> - <modify-function signature="setData(const char*,uint)" remove="all"/> + <modify-function signature="data() const"> + <modify-argument index="return"> + <replace-type modified-type="PyObject"/> + </modify-argument> + <inject-code> + %PYARG_0 = PyBuffer_FromMemory(const_cast<char*>(%CPPSELF.data()), %CPPSELF.size()); + </inject-code> + </modify-function> + <modify-function signature="setData(const char*,uint)"> + <modify-argument index="1"> + <replace-type modified-type="PyBuffer"/> + <conversion-rule class="target"> + PyObject *%out = PyBuffer_FromMemory(const_cast<char*>(%in), size); + </conversion-rule> + <conversion-rule class="native"> + const char *%out; + Py_ssize_t buffer_len; + PyObject_AsCharBuffer(arg, &%out, &buffer_len); + </conversion-rule> + </modify-argument> + <modify-argument index="2"> + <remove-argument/> + <conversion-rule class="native"> + uint %out = buffer_len; + </conversion-rule> + </modify-argument> + </modify-function> </value-type> <value-type name="QRegion" > <enum-type name="RegionType"/> |