diff options
Diffstat (limited to 'PySide/QtGui')
-rw-r--r-- | PySide/QtGui/typesystem_gui_common.xml | 58 |
1 files changed, 56 insertions, 2 deletions
diff --git a/PySide/QtGui/typesystem_gui_common.xml b/PySide/QtGui/typesystem_gui_common.xml index c16a6f5f4..872275a6c 100644 --- a/PySide/QtGui/typesystem_gui_common.xml +++ b/PySide/QtGui/typesystem_gui_common.xml @@ -4293,10 +4293,64 @@ <value-type name="QMatrix4x2"/> <value-type name="QMatrix4x3"/> <value-type name="QMatrix4x4"> - <modify-function signature="QMatrix4x4(qreal, qreal, qreal, qreal, qreal, qreal, qreal, qreal, qreal, qreal, qreal, qreal, qreal, qreal, qreal, qreal)" remove="all"/> + <modify-function signature="QMatrix4x4(const qreal*,int,int)" remove="all"/> + <modify-function signature="copyDataTo(qreal*)const" remove="all"/> + + <modify-function signature="QMatrix4x4(const qreal*)"> + <modify-argument index="1"> + <replace-type modified-type="PyTuple" /> + </modify-argument> + <inject-code class="target" position="beginning"> + if (PyTuple_Size(%PYARG_1) == 16) { + qreal values[16]; + for(int i=0; i < 16; i++) { + PyObject *pv = PyTuple_GetItem(%PYARG_1, i); + values[i] = PyFloat_AsDouble(pv); + } + + %0 = new %TYPE(values[0], values[1], values[2], values[3], + values[4], values[5], values[6], values[7], + values[8], values[9], values[10], values[11], + values[12], values[13], values[14], values[15]); + } + </inject-code> + </modify-function> + + <modify-function signature="data() const"> + <modify-argument index="return"> + <replace-type modified-type="PyTupleObject*"/> + </modify-argument> + <inject-code class="target" position="beginning"> + const qreal* values = %CPPSELF.constData(); + %PYARG_0 = PyTuple_New(16); + for(int i=0; i < 16; i++) { + PyObject *v = PyFloat_FromDouble(values[i]); + PyTuple_SET_ITEM(%PYARG_0, i, v); + } + </inject-code> + </modify-function> + + <modify-function signature="copyDataTo(qreal *) const"> + <modify-argument index="1"> + <remove-argument/> + </modify-argument> + <modify-argument index="return"> + <replace-type modified-type="PyTupleObject*"/> + </modify-argument> + + <inject-code class="target" position="beginning"> + qreal values[16]; + %CPPSELF.copyDataTo(values); + %PYARG_0 = PyTuple_New(16); + for(int i=0; i < 16; i++) { + PyObject *v = PyFloat_FromDouble(values[i]); + PyTuple_SET_ITEM(%PYARG_0, v); + } + </inject-code> + </modify-function> + <modify-function signature="operator()(int, int)" remove="all"/> <modify-function signature="operator()(int, int)const" remove="all"/> - <modify-function signature="data()const" remove="all"/> <modify-function signature="data()" remove="all"/> <modify-function signature="constData()const" remove="all"/> </value-type> |