diff options
Diffstat (limited to 'sources/pyside2/PySide2/QtGui/typesystem_gui_common.xml')
-rw-r--r-- | sources/pyside2/PySide2/QtGui/typesystem_gui_common.xml | 1567 |
1 files changed, 406 insertions, 1161 deletions
diff --git a/sources/pyside2/PySide2/QtGui/typesystem_gui_common.xml b/sources/pyside2/PySide2/QtGui/typesystem_gui_common.xml index 70fd1692a..2181ff073 100644 --- a/sources/pyside2/PySide2/QtGui/typesystem_gui_common.xml +++ b/sources/pyside2/PySide2/QtGui/typesystem_gui_common.xml @@ -41,36 +41,27 @@ --> <typesystem package="PySide2.QtGui"> <load-typesystem name="QtCore/typesystem_core.xml" generate="no"/> + <load-typesystem name="templates/core_common.xml" generate="no"/> + <load-typesystem name="templates/gui_common.xml" generate="no"/> - <template name="QFontCharFix"> - int size = Shiboken::String::len(%PYARG_1); - if (size == 1) { - const char *str = Shiboken::String::toCString(%PYARG_1); - QChar ch(str[0]); - %RETURN_TYPE %0 = %CPPSELF.%FUNCTION_NAME(ch); - %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%0); - } else { - PyErr_SetString(PyExc_TypeError, "String must have only one character"); - } - </template> <rejection class="^Q.*$" argument-type="^QPlatform.*$"/> - <function signature="qAlpha(uint)" /> - <function signature="qBlue(uint)" /> - <function signature="qGray(int,int,int)" /> - <function signature="qGray(uint)" /> - <function signature="qGreen(uint)" /> - <function signature="qIsGray(uint)" /> - <function signature="qRed(uint)" /> - <function signature="qRgb(int,int,int)" /> - <function signature="qRgba(int,int,int,int)" /> - <function signature="qFuzzyCompare(QMatrix,QMatrix)" /> - <function signature="qFuzzyCompare(QTransform,QTransform)" /> - <function signature="qFuzzyCompare(QQuaternion,QQuaternion)" /> - <function signature="qFuzzyCompare(QMatrix4x4,QMatrix4x4)" /> - <function signature="qFuzzyCompare(QVector2D,QVector2D)" /> - <function signature="qFuzzyCompare(QVector3D,QVector3D)" /> - <function signature="qFuzzyCompare(QVector4D,QVector4D)" /> + <function signature="qAlpha(uint)"/> + <function signature="qBlue(uint)"/> + <function signature="qGray(int,int,int)"/> + <function signature="qGray(uint)"/> + <function signature="qGreen(uint)"/> + <function signature="qIsGray(uint)"/> + <function signature="qRed(uint)"/> + <function signature="qRgb(int,int,int)"/> + <function signature="qRgba(int,int,int,int)"/> + <function signature="qFuzzyCompare(QMatrix,QMatrix)"/> + <function signature="qFuzzyCompare(QTransform,QTransform)"/> + <function signature="qFuzzyCompare(QQuaternion,QQuaternion)"/> + <function signature="qFuzzyCompare(QMatrix4x4,QMatrix4x4)"/> + <function signature="qFuzzyCompare(QVector2D,QVector2D)"/> + <function signature="qFuzzyCompare(QVector3D,QVector3D)"/> + <function signature="qFuzzyCompare(QVector4D,QVector4D)"/> <rejection class="*" function-name="qobject_interface_iid<QStyleFactoryInterface*>"/> <rejection class="*" function-name="qobject_interface_iid<QAccessibleFactoryInterface*>"/> <rejection class="*" function-name="qobject_interface_iid<QInputContextFactoryInterface*>"/> @@ -97,21 +88,21 @@ <rejection class="*" function-name="d_func"/> <rejection class="*" field-name="d_ptr"/> <rejection class="*" field-name="d"/> - <rejection class="^QOpenGL.*$" argument-type="^GLboolean( const)?\*$"/> + <rejection class="^QOpenGL.*$" argument-type="^(const )?GLboolean ?\*$"/> <rejection class="^QOpenGL.*$" argument-type="^GLchar\*$"/> - <rejection class="^QOpenGL.*$" argument-type="GLchar *const const*"/> + <rejection class="^QOpenGL.*$" argument-type="^(const )?GLchar ?\*(const)?\*$"/> <rejection class="^QOpenGL.*$" argument-type="^char\*$"/> - <rejection class="^QOpenGL.*$" argument-type="^char( const)?\*\*$"/> + <rejection class="^QOpenGL.*$" argument-type="^(const )?char ?\*\*$"/> <rejection class="^QOpenGL.*$" argument-type="GLintptr"/> <rejection class="^QOpenGL.*$" argument-type="GLsizeiptr"/> <rejection class="^QOpenGL.*$" argument-type="GLsync"/> <rejection class="^QOpenGL.*$" argument-type="^GLubyte( const)?\*$"/> - <rejection class="^QOpenGL.*$" argument-type="^QMatrix.x.( const)?\*$"/> + <rejection class="^QOpenGL.*$" argument-type="^(const )?QMatrix.x. ?\*$"/> <rejection class="^QOpenGL.*$" argument-type="qopengl_GLintptr"/> <rejection class="^QOpenGL.*$" argument-type="qopengl_GLsizeiptr"/> <rejection class="^QOpenGL.*$" argument-type="QOpenGLTextureHelper*"/> - <rejection class="^QOpenGL.*$" argument-type="^QVector.D( const)?\*$"/> - <rejection class="^QOpenGL.*$" argument-type="^void( const)?\*\*$"/> + <rejection class="^QOpenGL.*$" argument-type="^(const )?QVector.D ?\*$"/> + <rejection class="^QOpenGL.*$" argument-type="^(const )?void ?\*\*$"/> <!-- Event classes have a lot of non-documented protected fields, those fields @@ -212,13 +203,9 @@ <primitive-type name="WId" target-lang-api-name="PyLong"> <conversion-rule> - <native-to-target> - return PyLong_FromVoidPtr(reinterpret_cast<void *>(%in)); - </native-to-target> + <native-to-target file="../glue/qtgui.cpp" snippet="return-pylong-voidptr"/> <target-to-native> - <add-conversion type="PyLong"> - %out = reinterpret_cast<%OUTTYPE>(PyLong_AsVoidPtr(%in)); - </add-conversion> + <add-conversion type="PyLong" file="../glue/qtgui.cpp" snippet="conversion-pylong"/> </target-to-native> </conversion-rule> </primitive-type> @@ -257,9 +244,9 @@ <add-function signature="__repr__" return-type="PyObject*"> <inject-code class="target" position="beginning"> <insert-template name="repr_code"> - <replace from="%REPR_FORMAT" to="%f, %f, %f, %f, %f, %f, %f, %f, %f" /> + <replace from="%REPR_FORMAT" to="%f, %f, %f, %f, %f, %f, %f, %f, %f"/> <replace from="%REPR_ARGS" - to="%CPPSELF.m11(), %CPPSELF.m12(), %CPPSELF.m13(), %CPPSELF.m21(), %CPPSELF.m22(), %CPPSELF.m23(), %CPPSELF.m31(), %CPPSELF.m32(), %CPPSELF.m33()" /> + to="%CPPSELF.m11(), %CPPSELF.m12(), %CPPSELF.m13(), %CPPSELF.m21(), %CPPSELF.m22(), %CPPSELF.m23(), %CPPSELF.m31(), %CPPSELF.m32(), %CPPSELF.m33()"/> </insert-template> </inject-code> </add-function> @@ -267,16 +254,16 @@ <add-function signature="__reduce__" return-type="PyObject*"> <inject-code class="target" position="beginning"> <insert-template name="reduce_code"> - <replace from="%REDUCE_FORMAT" to="ddddddddd" /> + <replace from="%REDUCE_FORMAT" to="ddddddddd"/> <replace from="%REDUCE_ARGS" - to="%CPPSELF.m11(), %CPPSELF.m12(), %CPPSELF.m13(), %CPPSELF.m21(), %CPPSELF.m22(), %CPPSELF.m23(), %CPPSELF.m31(), %CPPSELF.m32(), %CPPSELF.m33()" /> + to="%CPPSELF.m11(), %CPPSELF.m12(), %CPPSELF.m13(), %CPPSELF.m21(), %CPPSELF.m22(), %CPPSELF.m23(), %CPPSELF.m31(), %CPPSELF.m32(), %CPPSELF.m33()"/> </insert-template> </inject-code> </add-function> <modify-function signature="map(qreal,qreal,qreal*,qreal*)const"> <modify-argument index="0"> - <replace-type modified-type="PyObject" /> + <replace-type modified-type="PyObject"/> </modify-argument> <modify-argument index="3"> <remove-argument/> @@ -286,7 +273,7 @@ </modify-argument> <inject-code class="target" position="beginning"> <insert-template name="fix_args,number*,number*"> - <replace from="$TYPE" to="qreal" /> + <replace from="$TYPE" to="qreal"/> </insert-template> </inject-code> </modify-function> @@ -306,38 +293,14 @@ </inject-code> </modify-function> <add-function signature="quadToQuad(QPolygonF&,QPolygonF&)" return-type="PyObject*" static="true"> - <inject-code> - QTransform _result; - if (QTransform::quadToQuad(%1, %2, _result)) { - %PYARG_0 = %CONVERTTOPYTHON[QTransform](_result); - } else { - Py_INCREF(Py_None); - %PYARG_0 = Py_None; - } - </inject-code> + <inject-code file="../glue/qtgui.cpp" snippet="qtransform-quadtoquad"/> </add-function> <add-function signature="quadToSquare(QPolygonF &)" return-type="PyObject*" static="true"> - <inject-code> - QTransform _result; - if (QTransform::quadToSquare(%1, _result)) { - %PYARG_0 = %CONVERTTOPYTHON[QTransform](_result); - } else { - Py_INCREF(Py_None); - %PYARG_0 = Py_None; - } - </inject-code> + <inject-code file="../glue/qtgui.cpp" snippet="qtransform-quadtosquare"/> </add-function> <add-function signature="squareToQuad(QPolygonF &)" return-type="PyObject*" static="true"> - <inject-code> - QTransform _result; - if (QTransform::squareToQuad(%1, _result)) { - %PYARG_0 = %CONVERTTOPYTHON[QTransform](_result); - } else { - Py_INCREF(Py_None); - %PYARG_0 = Py_None; - } - </inject-code> + <inject-code file="../glue/qtgui.cpp" snippet="qtransform-squaretoquad"/> </add-function> <!-- Disambiguate from Qt3DCore/qtransform.h --> <include file-name="QtGui/qtransform.h" location="global"/> @@ -346,21 +309,17 @@ <value-type name="QStaticText"> <enum-type name="PerformanceHint"/> </value-type> - <value-type name="QTextFragment" /> + <value-type name="QTextFragment"/> <value-type name="QBitmap" > <modify-function signature="fromData(QSize,const uchar*,QImage::Format)"> <modify-argument index="2"> <replace-type modified-type="PyBuffer"/> </modify-argument> - <inject-code> - uchar *buffer = reinterpret_cast<uchar*>(Shiboken::Buffer::getPointer(%PYARG_2)); - QBitmap %0 = QBitmap::fromData(%1, buffer, %3); - %PYARG_0 = %CONVERTTOPYTHON[QBitmap](%0); - </inject-code> + <inject-code file="../glue/qtgui.cpp" snippet="qbitmap-fromdata"/> </modify-function> </value-type> - <value-type name="QTextInlineObject" /> - <value-type name="QTextDocumentFragment" /> + <value-type name="QTextInlineObject"/> + <value-type name="QTextDocumentFragment"/> <value-type name="QTextOption"> <enum-type name="Flag" flags="Flags"/> <enum-type name="TabType"/> @@ -370,19 +329,12 @@ <value-type name="QTextLine" > <enum-type name="CursorPosition"/> <enum-type name="Edge"/> - <modify-function signature="cursorToX(int*,QTextLine::Edge)const" remove="all" /> + <modify-function signature="cursorToX(int*,QTextLine::Edge)const" remove="all"/> <modify-function signature="cursorToX(int,QTextLine::Edge)const"> <modify-argument index="0"> - <replace-type modified-type="PyObject" /> + <replace-type modified-type="PyObject"/> </modify-argument> - <inject-code class="target" position="beginning"> - %BEGIN_ALLOW_THREADS - %RETURN_TYPE %0 = %CPPSELF->::%TYPE::%FUNCTION_NAME(&%1, %2); - %END_ALLOW_THREADS - %PYARG_0 = PyTuple_New(2); - PyTuple_SET_ITEM(%PYARG_0, 0, %CONVERTTOPYTHON[%RETURN_TYPE](%0)); - PyTuple_SET_ITEM(%PYARG_0, 1, %CONVERTTOPYTHON[%ARG1_TYPE](%1)); - </inject-code> + <inject-code class="target" position="beginning" file="../glue/qtgui.cpp" snippet="qtextline-cursortox"/> </modify-function> <modify-function signature="xToCursor(qreal,QTextLine::CursorPosition)const"> <modify-argument index="2"> @@ -390,12 +342,11 @@ </modify-argument> </modify-function> </value-type> - <value-type name="QTextTableFormat" /> - <value-type name="QTextImageFormat" /> + <value-type name="QTextTableFormat"/> + <value-type name="QTextImageFormat"/> <value-type name="QTextFrameFormat" > <enum-type name="BorderStyle"/> <enum-type name="Position"/> - <modify-function signature="isValid()const" access="non-final"/> </value-type> <value-type name="QTextLength"> <enum-type name="Type"/> @@ -403,18 +354,15 @@ <value-type name="QPainterPath"> <enum-type name="ElementType"/> <value-type name="Element"> - <modify-field name="x" write="false"/> - <modify-field name="y" write="false"/> - <modify-field name="type" write="false"/> <include file-name="QPainterPath" location="global"/> </value-type> </value-type> <value-type name="QPalette"> - <enum-type name="ColorGroup" /> - <enum-type name="ColorRole" /> + <enum-type name="ColorGroup"/> + <enum-type name="ColorRole"/> </value-type> <object-type name="QInputMethod"> - <enum-type name="Action" /> + <enum-type name="Action"/> </object-type> <value-type name="QKeySequence"> <enum-type name="SequenceFormat"/> @@ -424,9 +372,9 @@ <add-function signature="__repr__" return-type="PyObject*"> <inject-code class="target" position="beginning"> <insert-template name="repr_code"> - <replace from="%REPR_FORMAT" to="%i, %i, %i, %i" /> + <replace from="%REPR_FORMAT" to="%i, %i, %i, %i"/> <replace from="%REPR_ARGS" - to="(*%CPPSELF)[0], (*%CPPSELF)[1], (*%CPPSELF)[2], (*%CPPSELF)[3]" /> + to="(*%CPPSELF)[0], (*%CPPSELF)[1], (*%CPPSELF)[2], (*%CPPSELF)[3]"/> </insert-template> </inject-code> </add-function> @@ -434,22 +382,15 @@ <add-function signature="__reduce__" return-type="PyObject*"> <inject-code class="target" position="beginning"> <insert-template name="reduce_code"> - <replace from="%REDUCE_FORMAT" to="iiii" /> - <replace from="%REDUCE_ARGS" to="(*%CPPSELF)[0], (*%CPPSELF)[1], (*%CPPSELF)[2], (*%CPPSELF)[3]" /> + <replace from="%REDUCE_FORMAT" to="iiii"/> + <replace from="%REDUCE_ARGS" to="(*%CPPSELF)[0], (*%CPPSELF)[1], (*%CPPSELF)[2], (*%CPPSELF)[3]"/> </insert-template> </inject-code> </add-function> <modify-function signature="operator[](uint)const" remove="all"/> <add-function signature="__getitem__"> - <inject-code class="target" position="beginning"> - if (_i < 0 || _i >= %CPPSELF.count()) { - PyErr_SetString(PyExc_IndexError, "index out of bounds"); - return 0; - } - int item = (*%CPPSELF)[_i]; - return %CONVERTTOPYTHON[int](item); - </inject-code> + <inject-code class="target" position="beginning" file="../glue/qtgui.cpp" snippet="qkeysequence-getitem"/> </add-function> <!-- ### Not necessary due the PySide QVariant conversion rules --> @@ -465,25 +406,22 @@ <modify-argument index="return"> <replace-type modified-type="PyObject"/> </modify-argument> - <inject-code> - %PYARG_0 = Shiboken::Buffer::newObject(%CPPSELF.data(), %CPPSELF.size()); - </inject-code> + <inject-code file="../glue/qtgui.cpp" snippet="qpicture-data"/> </modify-function> <modify-function signature="setData(const char*,uint)"> <modify-argument index="1"> <replace-type modified-type="PyBuffer"/> <conversion-rule class="target"> - PyObject *%out = Shiboken::Buffer::newObject(%in, size); + <insert-template name="const_char_pybuffer"/> </conversion-rule> <conversion-rule class="native"> - Py_ssize_t bufferLen; - char *%out = reinterpret_cast<char*>(Shiboken::Buffer::getPointer(%PYARG_1, &bufferLen)); + <insert-template name="pybuffer_const_char"/> </conversion-rule> </modify-argument> <modify-argument index="2"> <remove-argument/> <conversion-rule class="native"> - uint %out = bufferLen; + <insert-template name="uint_remove"/> </conversion-rule> </modify-argument> </modify-function> @@ -506,13 +444,13 @@ <!-- ### --> <add-function signature="__iter__()" return-type="PyObject*"> <inject-code class="target" position="beginning"> - <insert-template name="__iter__" /> + <insert-template name="__iter__"/> </inject-code> </add-function> <add-function signature="__next__()" return-type="PyObject*"> <inject-code class="target" position="beginning"> <insert-template name="__next__"> - <replace from="%CPPSELF_TYPE" to="QTextBlock::iterator" /> + <replace from="%CPPSELF_TYPE" to="QTextBlock::iterator"/> </insert-template> </inject-code> </add-function> @@ -520,48 +458,34 @@ <add-function signature="__iter__()" return-type="PyObject*"> <inject-code class="target" position="beginning"> <insert-template name="__iter_parent__"> - <replace from="%CPPSELF_TYPE" to="QTextBlock::iterator" /> + <replace from="%CPPSELF_TYPE" to="QTextBlock::iterator"/> </insert-template> </inject-code> </add-function> <modify-function signature="setUserData(QTextBlockUserData*)"> - <inject-code class="target" position="end"> - const QTextDocument *doc = %CPPSELF.document(); - if (doc) { - Shiboken::AutoDecRef pyDocument(%CONVERTTOPYTHON[QTextDocument*](doc)); - Shiboken::Object::setParent(pyDocument, %PYARG_1); - } - </inject-code> + <inject-code class="target" position="end" file="../glue/qtgui.cpp" snippet="qtextblock-setuserdata"/> </modify-function> <modify-function signature="userData()const"> <modify-argument index="return"> <define-ownership class="target" owner="default"/> </modify-argument> - <inject-code class="target" position="end"> - const QTextDocument *doc = %CPPSELF.document(); - if (doc) { - Shiboken::AutoDecRef pyDocument(%CONVERTTOPYTHON[QTextDocument*](doc)); - Shiboken::Object::setParent(pyDocument, %PYARG_0); - } - </inject-code> + <inject-code class="target" position="end" file="../glue/qtgui.cpp" snippet="qtextblock-userdata"/> </modify-function> </value-type> <value-type name="QTextBlockFormat"> <enum-type name="LineHeightTypes" since="4.8" revision="4800"/> </value-type> - <value-type name="QTextTableCellFormat" /> + <value-type name="QTextTableCellFormat"/> <value-type name="QTextCharFormat" > <enum-type name="FontPropertiesInheritanceBehavior"/> <enum-type name="UnderlineStyle"/> <enum-type name="VerticalAlignment"/> - <modify-function signature="isValid()const" access="non-final"/> </value-type> <value-type name="QTextFormat" > <enum-type name="FormatType"/> <enum-type name="ObjectTypes"/> <enum-type name="PageBreakFlag" flags="PageBreakFlags"/> - <enum-type name="Property" /> - <modify-function signature="isValid()const" access="non-final"/> + <enum-type name="Property"/> </value-type> <value-type name="QTextListFormat"> <enum-type name="Style"/> @@ -572,17 +496,10 @@ <include file-name="QTransform" location="global"/> </extra-includes> <add-function signature="__reduce__" return-type="PyObject*"> - <inject-code class="target" position="beginning"> - PyObject *points = PyList_New(%CPPSELF.count()); - for (int i = 0, max = %CPPSELF.count(); i < max; ++i){ - int x, y; - %CPPSELF.point(i, &x, &y); - QPoint pt = QPoint(x, y); - PyList_SET_ITEM(points, i, %CONVERTTOPYTHON[QPoint](pt)); - } + <inject-code class="target" position="beginning" file="../glue/qtgui.cpp" snippet="qpolygon-reduce"> <insert-template name="reduce_code"> - <replace from="%REDUCE_FORMAT" to="N" /> - <replace from="%REDUCE_ARGS" to="points" /> + <replace from="%REDUCE_FORMAT" to="N"/> + <replace from="%REDUCE_ARGS" to="points"/> </insert-template> </inject-code> </add-function> @@ -592,18 +509,10 @@ <!-- ### A QVector parameter, for no defined type, will generate wrong code. --> <modify-function signature="operator+=(QVector<QPoint>)" remove="all"/> <modify-function signature="operator<<(QPoint)"> - <inject-code> - // %FUNCTION_NAME() - *%CPPSELF << %1; - %PYARG_0 = %CONVERTTOPYTHON[QPolygon*](%CPPSELF); - </inject-code> + <inject-code file="../glue/qtgui.cpp" snippet="qpolygon-operatorlowerlower"/> </modify-function> <modify-function signature="operator<<(QVector<QPoint>)"> - <inject-code> - // %FUNCTION_NAME() - *%CPPSELF << %1; - %PYARG_0 = %CONVERTTOPYTHON[QPolygon*](%CPPSELF); - </inject-code> + <inject-code file="../glue/qtgui.cpp" snippet="qpolygon-operatorlowerlower"/> </modify-function> <!-- ### --> </value-type> @@ -631,26 +540,6 @@ </modify-function> </value-type> - <template name="load_xpm"> - Shiboken::AutoDecRef strList(PySequence_Fast(%PYARG_1, "Invalid sequence.")); - int lineCount = PySequence_Fast_GET_SIZE(strList.object()); - for (int line = 0; line < lineCount; ++line) { - if (!Shiboken::String::check(PySequence_Fast_GET_ITEM(strList.object(), line))) { - PyErr_SetString(PyExc_TypeError, "The argument must be a sequence of strings."); - break; - } - } - - const char **xpm = reinterpret_cast<const char**>(malloc(lineCount * sizeof(const char**))); - for (int line = 0; line < lineCount; ++line) - xpm[line] = Shiboken::String::toCString(PySequence_Fast_GET_ITEM(strList.object(), line)); - - %BEGIN_ALLOW_THREADS - %0 = new %TYPE(xpm); - %END_ALLOW_THREADS - - free(xpm); - </template> <value-type name="QPixmap" > <!--<conversion-rule>--> <!--<target-to-native replace="no">--> @@ -664,16 +553,14 @@ <modify-argument index="1"> <rename to="image"/> </modify-argument> - <inject-code class="target" position="beginning"> - %0 = new %TYPE(QPixmap::fromImage(%1)); - </inject-code> + <inject-code class="target" position="beginning" file="../glue/qtgui.cpp" snippet="qpixmap"/> </add-function> - <modify-function signature="QPixmap(const char*[])"> + <modify-function signature="QPixmap(const char*const[])"> <modify-argument index="1"> - <replace-type modified-type="PySequence" /> + <replace-type modified-type="PySequence"/> </modify-argument> <inject-code class="target" position="beginning"> - <insert-template name="load_xpm" /> + <insert-template name="load_xpm"/> </inject-code> </modify-function> @@ -681,16 +568,28 @@ <modify-function signature="operator!()const" remove="all"/> <modify-function signature="loadFromData(const uchar*,uint,const char*,QFlags<Qt::ImageConversionFlag>)"> + <inject-documentation format="target" mode="append"> + This method must be used with an QPixmap object, not the class: + + :: + + # Wrong + pixmap = QPixmap.loadFromData(...) + + # Right + pixmap = QPixmap().loadFromData(...) + + </inject-documentation> <modify-argument index="1"> <replace-type modified-type="PyBytes"/> <conversion-rule class="native"> - const uchar *%out = reinterpret_cast<const uchar*>(PyBytes_AS_STRING(%PYARG_1)); + <insert-template name="pybytes_const_uchar"/> </conversion-rule> </modify-argument> <modify-argument index="2"> <remove-argument/> <conversion-rule class="native"> - uint %out = static_cast<uint>(PyBytes_Size(%PYARG_1)); + <insert-template name="pybytes_uint"/> </conversion-rule> </modify-argument> </modify-function> @@ -705,7 +604,7 @@ <enum-type name="SelectionType"/> <modify-function signature="selectedTableCells(int*,int*,int*,int*)const"> <modify-argument index="0"> - <replace-type modified-type="PyObject" /> + <replace-type modified-type="PyObject"/> </modify-argument> <modify-argument index="1"> <remove-argument/> @@ -721,12 +620,12 @@ </modify-argument> <inject-code class="target" position="beginning"> <insert-template name="fix_number*,number*,number*,number*"> - <replace from="$TYPE" to="int" /> + <replace from="$TYPE" to="int"/> </insert-template> </inject-code> <inject-code class="native" position="end"> <insert-template name="fix_native_return_number*,number*,number*,number*"> - <replace from="$TYPE" to="int" /> + <replace from="$TYPE" to="int"/> </insert-template> </inject-code> </modify-function> @@ -755,9 +654,9 @@ <add-function signature="__repr__" return-type="PyObject*"> <inject-code class="target" position="beginning"> <insert-template name="repr_code"> - <replace from="%REPR_FORMAT" to="%f, %f, %f, %f, %f, %f" /> + <replace from="%REPR_FORMAT" to="%f, %f, %f, %f, %f, %f"/> <replace from="%REPR_ARGS" - to="%CPPSELF.m11(), %CPPSELF.m12(), %CPPSELF.m21(), %CPPSELF.m22(), %CPPSELF.dx(), %CPPSELF.dy()" /> + to="%CPPSELF.m11(), %CPPSELF.m12(), %CPPSELF.m21(), %CPPSELF.m22(), %CPPSELF.dx(), %CPPSELF.dy()"/> </insert-template> </inject-code> </add-function> @@ -765,18 +664,11 @@ <add-function signature="__reduce__" return-type="PyObject*"> <inject-code class="target" position="beginning"> <insert-template name="reduce_code"> - <replace from="%REDUCE_FORMAT" to="dddddd" /> - <replace from="%REDUCE_ARGS" to="%CPPSELF.m11(), %CPPSELF.m12(), %CPPSELF.m21(), %CPPSELF.m22(), %CPPSELF.dx(), %CPPSELF.dy()" /> + <replace from="%REDUCE_FORMAT" to="dddddd"/> + <replace from="%REDUCE_ARGS" to="%CPPSELF.m11(), %CPPSELF.m12(), %CPPSELF.m21(), %CPPSELF.m22(), %CPPSELF.dx(), %CPPSELF.dy()"/> </insert-template> </inject-code> </add-function> - <template name="qmatrix_map"> - %ARG1_TYPE a, b; - %CPPSELF.%FUNCTION_NAME(%1, %2, &a, &b); - %PYARG_0 = PyTuple_New(2); - PyTuple_SET_ITEM(%PYARG_0, 0, %CONVERTTOPYTHON[%ARG1_TYPE](a)); - PyTuple_SET_ITEM(%PYARG_0, 1, %CONVERTTOPYTHON[%ARG1_TYPE](b)); - </template> <modify-function signature="map(int,int,int*,int*)const"> <modify-argument index="3"> <remove-argument /> @@ -785,7 +677,7 @@ <remove-argument /> </modify-argument> <inject-code> - <insert-template name="qmatrix_map" /> + <insert-template name="qmatrix_map"/> </inject-code> </modify-function> <modify-function signature="map(qreal,qreal,qreal*,qreal*)const"> @@ -796,9 +688,15 @@ <remove-argument /> </modify-argument> <inject-code> - <insert-template name="qmatrix_map" /> + <insert-template name="qmatrix_map"/> </inject-code> </modify-function> + <modify-function signature="map(const QPoint&)const"> + <modify-argument index="return"> + <replace-type modified-type="QPoint"/> + </modify-argument> + <inject-code file="../glue/qtgui.cpp" snippet="qmatrix-map-point" /> + </modify-function> <modify-function signature="inverted(bool*)const"> <modify-argument index="1"> <remove-argument/> @@ -812,15 +710,15 @@ </modify-function> </value-type> - <value-type name="QConicalGradient" polymorphic-id-expression="%1->type() == QGradient::ConicalGradient" /> - <value-type name="QFontInfo" /> - <value-type name="QRadialGradient" polymorphic-id-expression="%1->type() == QGradient::RadialGradient" /> + <value-type name="QConicalGradient" polymorphic-id-expression="%1->type() == QGradient::ConicalGradient"/> + <value-type name="QFontInfo"/> + <value-type name="QRadialGradient" polymorphic-id-expression="%1->type() == QGradient::RadialGradient"/> <value-type name="QFont" > <enum-type name="Capitalization"/> <enum-type name="SpacingType"/> <enum-type name="Stretch"/> <enum-type name="Style"/> - <enum-type name="StyleHint" /> + <enum-type name="StyleHint"/> <enum-type name="StyleStrategy"/> <enum-type name="Weight"/> <enum-type name="HintingPreference" since="4.8" revision="4800"/> @@ -843,7 +741,7 @@ <include file-name="QImage" location="global"/> </extra-includes> </function> --> - <primitive-type name="QImageCleanupFunction" /> + <primitive-type name="QImageCleanupFunction"/> <value-type name="QImage"> <enum-type name="Format"/> <enum-type name="InvertMode"/> @@ -852,17 +750,13 @@ <include file-name="QMatrix" location="global"/> </extra-includes> - <template name="qimage_buffer_constructor"> - uchar *ptr = reinterpret_cast<uchar*>(Shiboken::Buffer::getPointer(%PYARG_1)); - %0 = new %TYPE(ptr, %ARGS); - </template> <modify-function signature="QImage(uchar*,int,int,int,QImage::Format,QImageCleanupFunction,void*)"> <modify-argument index="1"> <replace-type modified-type="PyBuffer"/> </modify-argument> <inject-code> <insert-template name="qimage_buffer_constructor"> - <replace from="%ARGS" to="%2, %3, %4, %5" /> + <replace from="%ARGS" to="%2, %3, %4, %5"/> </insert-template> </inject-code> </modify-function> @@ -872,7 +766,7 @@ </modify-argument> <inject-code> <insert-template name="qimage_buffer_constructor"> - <replace from="%ARGS" to="%2, %3, %4" /> + <replace from="%ARGS" to="%2, %3, %4"/> </insert-template> </inject-code> </modify-function> @@ -880,61 +774,52 @@ <add-function signature="QImage(QString&,int,int,int,QImage::Format)"> <inject-code> <insert-template name="qimage_buffer_constructor"> - <replace from="%ARGS" to="%2, %3, %4, %5" /> + <replace from="%ARGS" to="%2, %3, %4, %5"/> </insert-template> </inject-code> </add-function> <add-function signature="QImage(QString&,int,int,QImage::Format)"> <inject-code> <insert-template name="qimage_buffer_constructor"> - <replace from="%ARGS" to="%2, %3, %4" /> + <replace from="%ARGS" to="%2, %3, %4"/> </insert-template> </inject-code> </add-function> <!-- The non-const versions are already used --> <modify-function signature="QImage(const uchar*,int,int,int,QImage::Format,QImageCleanupFunction,void*)" remove="all"/> - <modify-function signature="QImage(const uchar*,int,int,QImage::Format,QImageCleanupFunction,void*)" remove="all" /> + <modify-function signature="QImage(const uchar*,int,int,QImage::Format,QImageCleanupFunction,void*)" remove="all"/> <!-- ### --> - <modify-function signature="QImage(const char*[])"> + <modify-function signature="QImage(const char*const[])"> <modify-argument index="1"> - <replace-type modified-type="PySequence" /> + <replace-type modified-type="PySequence"/> </modify-argument> <inject-code class="target" position="beginning"> - <insert-template name="load_xpm" /> + <insert-template name="load_xpm"/> </inject-code> </modify-function> <!-- ### There is already an fromData with a QByteArray type (that is convertible from Python's str) as the first type. --> <modify-function signature="fromData(const uchar*,int,const char*)" remove="all"/> <!-- ### There is already an loadFromData with a QByteArray type (that is convertible from Python's str) as the first type. --> - <modify-function signature="loadFromData(const uchar*,int,const char*)" remove="all" /> + <modify-function signature="loadFromData(const uchar*,int,const char*)" remove="all"/> <modify-function signature="constBits()const" since="4.7"> - <inject-code> - %PYARG_0 = Shiboken::Buffer::newObject(%CPPSELF.%FUNCTION_NAME(), %CPPSELF.byteCount()); - </inject-code> + <inject-code file="../glue/qtgui.cpp" snippet="qimage-constbits"/> </modify-function> <modify-function signature="bits()"> - <inject-code> - // byteCount() is only available on Qt4.7, so we use bytesPerLine * height - %PYARG_0 = Shiboken::Buffer::newObject(%CPPSELF.%FUNCTION_NAME(), %CPPSELF.bytesPerLine() * %CPPSELF.height(), Shiboken::Buffer::ReadWrite); - </inject-code> + <inject-code file="../glue/qtgui.cpp" snippet="qimage-bits"/> </modify-function> <modify-function signature="constScanLine(int)const" since="4.7"> - <inject-code> - %PYARG_0 = Shiboken::Buffer::newObject(%CPPSELF.%FUNCTION_NAME(%1), %CPPSELF.bytesPerLine()); - </inject-code> + <inject-code file="../glue/qtgui.cpp" snippet="qimage-constscanline"/> <modify-argument index="return"> - <replace-type modified-type="PyObject" /> + <replace-type modified-type="PyObject"/> </modify-argument> </modify-function> <modify-function signature="scanLine(int)"> - <inject-code> - %PYARG_0 = Shiboken::Buffer::newObject(%CPPSELF.%FUNCTION_NAME(%1), %CPPSELF.bytesPerLine(), Shiboken::Buffer::ReadWrite); - </inject-code> + <inject-code file="../glue/qtgui.cpp" snippet="qimage-scanline"/> <modify-argument index="return"> - <replace-type modified-type="PyObject" /> + <replace-type modified-type="PyObject"/> </modify-argument> </modify-function> <!-- @@ -961,8 +846,8 @@ <extra-includes> <include file-name="QStringList" location="global"/> </extra-includes> - <enum-type name="SystemFont" /> - <enum-type name="WritingSystem" /> + <enum-type name="SystemFont"/> + <enum-type name="WritingSystem"/> </value-type> <value-type name="QPen"> <extra-includes> @@ -975,48 +860,6 @@ </extra-includes> </value-type> - <template name="qcolor_repr"> - switch(%CPPSELF.spec()) { - case QColor::Rgb: - { - qreal r, g, b, a; - %CPPSELF.getRgbF(&r, &g, &b, &a); - QString repr = QString().sprintf("PySide2.QtGui.QColor.fromRgbF(%.6f, %.6f, %.6f, %.6f)", r, g, b, a); - %PYARG_0 = Shiboken::String::fromCString(qPrintable(repr)); - break; - } - case QColor::Hsv: - { - qreal h, s, v, a; - %CPPSELF.getHsvF(&h, &s, &v, &a); - QString repr = QString().sprintf("PySide2.QtGui.QColor.fromHsvF(%.6f, %.6f, %.6f, %.6f)", h, s, v, a); - %PYARG_0 = Shiboken::String::fromCString(qPrintable(repr)); - break; - } - case QColor::Cmyk: - { - qreal c, m, y, k, a; - %CPPSELF.getCmykF(&c, &m, &y, &k, &a); - QString repr = QString().sprintf("PySide2.QtGui.QColor.fromCmykF(%.6f, %.6f, %.6f, %.6f, %.6f)", c, m, y, k, a); - %PYARG_0 = Shiboken::String::fromCString(qPrintable(repr)); - break; - } - #if QT_VERSION >= 0x040600 - case QColor::Hsl: - { - qreal h, s, l, a; - %CPPSELF.getHslF(&h, &s, &l, &a); - QString repr = QString().sprintf("PySide2.QtGui.QColor.fromHslF(%.6f, %.6f, %.6f, %.6f)", h, s, l, a); - %PYARG_0 = Shiboken::String::fromCString(qPrintable(repr)); - break; - } - #endif - default: - { - %PYARG_0 = Shiboken::String::fromCString("PySide2.QtGui.QColor()"); - } - } - </template> <value-type name="QColor"> <enum-type name="NameFormat"/> <enum-type name="Spec"/> @@ -1025,117 +868,36 @@ </extra-includes> <add-function signature="__repr__" return-type="PyObject*"> <inject-code class="target" position="beginning"> - <insert-template name="qcolor_repr" /> + <insert-template name="qcolor_repr"/> </inject-code> </add-function> <add-function signature="__str__" return-type="PyObject*"> <inject-code class="target" position="beginning"> - <insert-template name="qcolor_repr" /> + <insert-template name="qcolor_repr"/> </inject-code> </add-function> <add-function signature="__setstate__(PyObject*)" return-type="PyObject"> - <inject-code> - Shiboken::AutoDecRef func(PyObject_GetAttr(%PYSELF, PyTuple_GET_ITEM(%1, 0))); - PyObject *args = PyTuple_GET_ITEM(%1, 1); - %PYARG_0 = PyObject_Call(func, args, NULL); - </inject-code> + <inject-code file="../glue/qtgui.cpp" snippet="qcolor-setstate"/> </add-function> <add-function signature="__reduce__" return-type="PyObject"> - <inject-code class="target" position="beginning"> - switch(%CPPSELF.spec()) { - case QColor::Rgb: - { - qreal r, g, b, a; - %CPPSELF.getRgbF(&r, &g, &b, &a); - %PYARG_0 = Py_BuildValue("(ON(s(ffff)))", Py_TYPE(%PYSELF), PyTuple_New(0), "setRgbF", (float)r, (float)g, (float)b, (float)a); - break; - } - case QColor::Hsv: - { - qreal h, s, v, a; - %CPPSELF.getHsvF(&h, &s, &v, &a); - %PYARG_0 = Py_BuildValue("(ON(s(ffff)))", Py_TYPE(%PYSELF), PyTuple_New(0), "setHsvF", (float)h, (float)s, (float)v, (float)a); - break; - } - case QColor::Cmyk: - { - qreal c, m, y, k, a; - %CPPSELF.getCmykF(&c, &m, &y, &k, &a); - %PYARG_0 = Py_BuildValue("(ON(s(fffff)))", Py_TYPE(%PYSELF), PyTuple_New(0), "setCmykF", (float)c, (float)m, (float)y, (float)k, (float)a); - break; - } - #if QT_VERSION >= 0x040600 - case QColor::Hsl: - { - qreal h, s, l, a; - %CPPSELF.getHslF(&h, &s, &l, &a); - %PYARG_0 = Py_BuildValue("(ON(s(ffff)))", Py_TYPE(%PYSELF), PyTuple_New(0), "setHslF", (float)h, (float)s, (float)l, (float)a); - break; - } - #endif - default: - { - %PYARG_0 = Py_BuildValue("(N(O))", PyObject_Type(%PYSELF), Py_None); - } - } - </inject-code> + <inject-code class="target" position="beginning" file="../glue/qtgui.cpp" snippet="qcolor-reduce"/> </add-function> <add-function signature="toTuple" return-type="PyObject"> - <inject-code class="target" position="beginning"> - switch(%CPPSELF.spec()) { - case QColor::Rgb: - { - int r, g, b, a; - %CPPSELF.getRgb(&r, &g, &b, &a); - %PYARG_0 = Py_BuildValue("iiii", r, g, b, a); - break; - } - case QColor::Hsv: - { - int h, s, v, a; - %CPPSELF.getHsv(&h, &s, &v, &a); - %PYARG_0 = Py_BuildValue("iiii", h, s, v, a); - break; - } - case QColor::Cmyk: - { - int c, m, y, k, a; - %CPPSELF.getCmyk(&c, &m, &y, &k, &a); - %PYARG_0 = Py_BuildValue("iiiii", c, m, y, k, a); - break; - } - case QColor::Hsl: - { - int h, s, l, a; - %CPPSELF.getHsl(&h, &s, &l, &a); - %PYARG_0 = Py_BuildValue("iiii", h, s, l, a); - break; - } - default: - { - %PYARG_0 = 0; - } - } - </inject-code> + <inject-code class="target" position="beginning" file="../glue/qtgui.cpp" snippet="qcolor-totuple"/> </add-function> <!-- ### "QColor(QColor::Spec)" is an internal method. --> <modify-function signature="QColor(QColor::Spec)" remove="all"/> <!-- ### Constructor removed because we already have an overload using QString. --> - <modify-function signature="QColor(const char*)" remove="all" /> + <modify-function signature="QColor(const char*)" remove="all"/> <!-- ### --> <add-function signature="QColor(QVariant)"> - <inject-code class="target" position="beginning"> - if (%1.type() == QVariant::Color) - %0 = new %TYPE(%1.value<QColor>()); - else - PyErr_SetString(PyExc_TypeError, "QVariant must be holding a QColor"); - </inject-code> + <inject-code class="target" position="beginning" file="../glue/qtgui.cpp" snippet="qcolor"/> </add-function> <!-- get* methods. Inject code --> <modify-function signature="getCmyk(int*,int*,int*,int*,int*)"> <modify-argument index="0"> - <replace-type modified-type="PyObject *" /> + <replace-type modified-type="PyObject *"/> </modify-argument> <modify-argument index="1"> <remove-argument/> @@ -1156,13 +918,13 @@ <inject-code class="target" position="beginning"> <insert-template name="fix_number*,number*,number*,number*,number*"> - <replace from="$TYPE" to="int" /> + <replace from="$TYPE" to="int"/> </insert-template> </inject-code> </modify-function> <modify-function signature="getCmykF(qreal*,qreal*,qreal*,qreal*,qreal*)"> <modify-argument index="0"> - <replace-type modified-type="PyObject *" /> + <replace-type modified-type="PyObject *"/> </modify-argument> <modify-argument index="1"> <remove-argument/> @@ -1183,13 +945,13 @@ <inject-code class="target" position="beginning"> <insert-template name="fix_number*,number*,number*,number*,number*"> - <replace from="$TYPE" to="qreal" /> + <replace from="$TYPE" to="qreal"/> </insert-template> </inject-code> </modify-function> <modify-function signature="getHsl(int*,int*,int*,int*)const" since="4.6"> <modify-argument index="0"> - <replace-type modified-type="PyObject *" /> + <replace-type modified-type="PyObject *"/> </modify-argument> <modify-argument index="1"> <remove-argument/> @@ -1206,13 +968,13 @@ </modify-argument> <inject-code class="target" position="beginning"> <insert-template name="fix_number*,number*,number*,number*"> - <replace from="$TYPE" to="int" /> + <replace from="$TYPE" to="int"/> </insert-template> </inject-code> </modify-function> <modify-function signature="getHslF(qreal*,qreal*,qreal*,qreal*)const" since="4.6"> <modify-argument index="0"> - <replace-type modified-type="PyObject *" /> + <replace-type modified-type="PyObject *"/> </modify-argument> <modify-argument index="1"> <remove-argument/> @@ -1229,13 +991,13 @@ </modify-argument> <inject-code class="target" position="beginning"> <insert-template name="fix_number*,number*,number*,number*"> - <replace from="$TYPE" to="qreal" /> + <replace from="$TYPE" to="qreal"/> </insert-template> </inject-code> </modify-function> <modify-function signature="getHsv(int*,int*,int*,int*)const"> <modify-argument index="0"> - <replace-type modified-type="PyObject *" /> + <replace-type modified-type="PyObject *"/> </modify-argument> <modify-argument index="1"> <remove-argument/> @@ -1252,13 +1014,13 @@ </modify-argument> <inject-code class="target" position="beginning"> <insert-template name="fix_number*,number*,number*,number*"> - <replace from="$TYPE" to="int" /> + <replace from="$TYPE" to="int"/> </insert-template> </inject-code> </modify-function> <modify-function signature="getHsvF(qreal*,qreal*,qreal*,qreal*)const"> <modify-argument index="0"> - <replace-type modified-type="PyObject *" /> + <replace-type modified-type="PyObject *"/> </modify-argument> <modify-argument index="1"> <remove-argument/> @@ -1275,13 +1037,13 @@ </modify-argument> <inject-code class="target" position="beginning"> <insert-template name="fix_number*,number*,number*,number*"> - <replace from="$TYPE" to="qreal" /> + <replace from="$TYPE" to="qreal"/> </insert-template> </inject-code> </modify-function> <modify-function signature="getRgb(int*,int*,int*,int*)const"> <modify-argument index="0"> - <replace-type modified-type="PyObject *" /> + <replace-type modified-type="PyObject *"/> </modify-argument> <modify-argument index="1"> <remove-argument/> @@ -1298,13 +1060,13 @@ </modify-argument> <inject-code class="target" position="beginning"> <insert-template name="fix_number*,number*,number*,number*"> - <replace from="$TYPE" to="int" /> + <replace from="$TYPE" to="int"/> </insert-template> </inject-code> </modify-function> <modify-function signature="getRgbF(qreal*,qreal*,qreal*,qreal*)const"> <modify-argument index="0"> - <replace-type modified-type="PyObject *" /> + <replace-type modified-type="PyObject *"/> </modify-argument> <modify-argument index="1"> <remove-argument/> @@ -1321,7 +1083,7 @@ </modify-argument> <inject-code class="target" position="beginning"> <insert-template name="fix_number*,number*,number*,number*"> - <replace from="$TYPE" to="qreal" /> + <replace from="$TYPE" to="qreal"/> </insert-template> </inject-code> </modify-function> @@ -1350,56 +1112,14 @@ <modify-argument index="5"> <replace-type modified-type="PyObject"/> </modify-argument> - <inject-code class="target" position="beginning"> - int *array = nullptr; - bool errorOccurred = false; - - if (numArgs == 5) { - array = Shiboken::sequenceToIntArray(%PYARG_5, true); - if (PyErr_Occurred()) { - if (array) - delete []array; - errorOccurred = true; - } - } - - if (!errorOccurred) { - %RETURN_TYPE retval = %CPPSELF.%FUNCTION_NAME(%1, %2, %3, %4, array); - - if (array) - delete []array; - - %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](retval); - } - </inject-code> + <inject-code class="target" position="beginning" file="../glue/qtgui.cpp" snippet="qfontmetricsf-boundingrect"/> </modify-function> <modify-function signature="size(int,QString,int,int*)const"> <modify-argument index="4"> <replace-type modified-type="PyObject"/> </modify-argument> - <inject-code class="target" position="beginning"> - int *array = nullptr; - bool errorOccurred = false; - - if (numArgs == 4) { - array = Shiboken::sequenceToIntArray(%PYARG_4, true); - if (PyErr_Occurred()) { - if (array) - delete []array; - errorOccurred = true; - } - } - - if (!errorOccurred) { - %RETURN_TYPE retval = %CPPSELF.%FUNCTION_NAME(%1, %2, %3, array); - - if (array) - delete []array; - - %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](retval); - } - </inject-code> + <inject-code class="target" position="beginning" file="../glue/qtgui.cpp" snippet="qfontmetricsf-size"/> </modify-function> </value-type> <value-type name="QFontMetrics" > @@ -1426,107 +1146,44 @@ <modify-argument index="8"> <replace-type modified-type="PyObject"/> </modify-argument> - <inject-code class="target" position="beginning"> - int *array = nullptr; - bool errorOccurred = false; - - if (numArgs == 8) { - array = Shiboken::sequenceToIntArray(%PYARG_8, true); - if (PyErr_Occurred()) { - if (array) - delete []array; - errorOccurred = true; - } - } - - if (!errorOccurred) { - %RETURN_TYPE retval = %CPPSELF.%FUNCTION_NAME(%1, %2, %3, %4, %5, %6, %7, array); - - if (array) - delete []array; - - %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](retval); - } - </inject-code> + <inject-code class="target" position="beginning" file="../glue/qtgui.cpp" snippet="qfontmetrics-boundingrect-1"/> </modify-function> <modify-function signature="boundingRect(QRect,int,QString,int,int*)const"> <modify-argument index="5"> <replace-type modified-type="PyObject"/> </modify-argument> - <inject-code class="target" position="beginning"> - int *array = nullptr; - bool errorOccurred = false; - - if (numArgs == 5) { - array = Shiboken::sequenceToIntArray(%PYARG_5, true); - if (PyErr_Occurred()) { - if (array) - delete []array; - errorOccurred = true; - } - } - - if (!errorOccurred) { - %RETURN_TYPE retval = %CPPSELF.%FUNCTION_NAME(%1, %2, %3, %4, array); - - if (array) - delete []array; - - %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](retval); - } - </inject-code> + <inject-code class="target" position="beginning" file="../glue/qtgui.cpp" snippet="qfontmetrics-boundingrect-2"/> </modify-function> <modify-function signature="size(int,QString,int,int*)const"> <modify-argument index="4"> <replace-type modified-type="PyObject"/> </modify-argument> - <inject-code class="target" position="beginning"> - int *array = nullptr; - bool errorOccurred = false; - - if (numArgs == 4) { - array = Shiboken::sequenceToIntArray(%PYARG_4, true); - if (PyErr_Occurred()) { - if (array) - delete []array; - errorOccurred = true; - } - } - - if (!errorOccurred) { - %RETURN_TYPE retval = %CPPSELF.%FUNCTION_NAME(%1, %2, %3, array); - - if (array) - delete []array; - - %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](retval); - } - - </inject-code> + <inject-code class="target" position="beginning" file="../glue/qtgui.cpp" snippet="qfontmetrics-size"/> </modify-function> </value-type> - <value-type name="QGradient" force-abstract="yes" polymorphic-id-expression="%1->type() == QGradient::NoGradient"> + <value-type name="QGradient" polymorphic-id-expression="%1->type() == QGradient::NoGradient"> <enum-type name="CoordinateMode"/> <enum-type name="InterpolationMode"/> - <enum-type name="Spread" lower-bound="QGradient.PadSpread" upper-bound="QGradient.RepeatSpread"/> + <enum-type name="Preset" since="5.12"/> + <enum-type name="Spread"/> <enum-type name="Type"/> </value-type> - <value-type name="QLinearGradient" polymorphic-id-expression="%1->type() == QGradient::LinearGradient" /> + <value-type name="QLinearGradient" polymorphic-id-expression="%1->type() == QGradient::LinearGradient"/> <object-type name="QPaintDevice"> <enum-type name="PaintDeviceMetric"/> </object-type> <object-type name="QPagedPaintDevice"> - <value-type name="Margins" /> - <enum-type name="PageSize" /> + <value-type name="Margins"/> + <enum-type name="PageSize"/> <enum-type name="PdfVersion" since="5.10"/> </object-type> <object-type name="QAbstractTextDocumentLayout"> <value-type name="PaintContext" > <include file-name="QAbstractTextDocumentLayout" location="global"/> </value-type> - <value-type name="Selection" /> + <value-type name="Selection"/> <modify-function signature="setPaintDevice(QPaintDevice*)"> <modify-argument index="1"> <parent index="this" action="add"/> @@ -1539,15 +1196,15 @@ <modify-argument index="1" invalidate-after-use="yes"/> </modify-function> </object-type> - <object-type name="QPyTextObject" /> + <object-type name="QPyTextObject"/> - <object-type name="QDesktopServices" since="4.2" /> + <object-type name="QDesktopServices" since="4.2"/> <object-type name="QDoubleValidator"> <enum-type name="Notation"/> </object-type> <object-type name="QIconEngine"> - <object-type name="AvailableSizesArgument" /> - <enum-type name="IconEngineHook" /> + <object-type name="AvailableSizesArgument"/> + <enum-type name="IconEngineHook"/> <modify-function signature="paint(QPainter*,QRect,QIcon::Mode,QIcon::State)"> <modify-argument index="1" invalidate-after-use="yes"/> </modify-function> @@ -1569,7 +1226,7 @@ </modify-function> <modify-function signature="write(const QImage&)" allow-thread="yes"/> </object-type> - <object-type name="QIntValidator" /> + <object-type name="QIntValidator"/> <object-type name="QPainterPathStroker" copyable="false"/> <object-type name="QPictureIO"> @@ -1582,19 +1239,11 @@ <object-type name="QPixmapCache"> <value-type name="Key"/> <add-function signature="find(QPixmapCache::Key&)"> - <inject-code> - QPixmap p; - if (%CPPSELF.%FUNCTION_NAME(%1, &p)) { - %PYARG_0 = %CONVERTTOPYTHON[QPixmap](p); - } else { - %PYARG_0 = Py_None; - Py_INCREF(%PYARG_0); - } - </inject-code> + <inject-code file="../glue/qtgui.cpp" snippet="qpixmapcache-find"/> </add-function> </object-type> - <object-type name="QRegExpValidator" /> + <object-type name="QRegExpValidator"/> <object-type name="QStandardItem"> <enum-type name="ItemType"/> @@ -1646,27 +1295,13 @@ </modify-function> <modify-function signature="setChild(int,int,QStandardItem*)"> - <inject-code class="target" position="beginning"> - // Clear parent from the old child - QStandardItem *_i = %CPPSELF->child(%1, %2); - if (_i) { - PyObject *_pyI = %CONVERTTOPYTHON[QStandardItem*](_i); - Shiboken::Object::setParent(0, _pyI); - } - </inject-code> + <inject-code class="target" position="beginning" file="../glue/qtgui.cpp" snippet="qstandarditem-setchild-1"/> <modify-argument index="3"> <parent index="this" action="add"/> </modify-argument> </modify-function> <modify-function signature="setChild(int,QStandardItem*)"> - <inject-code class="target" position="beginning"> - // Clear parent from the old child - QStandardItem *_i = %CPPSELF->child(%1); - if (_i) { - PyObject *_pyI = %CONVERTTOPYTHON[QStandardItem*](_i); - Shiboken::Object::setParent(0, _pyI); - } - </inject-code> + <inject-code class="target" position="beginning" file="../glue/qtgui.cpp" snippet="qstandarditem-setchild-2"/> <modify-argument index="2"> <parent index="this" action="add"/> </modify-argument> @@ -1705,8 +1340,8 @@ </modify-argument> </modify-function> </object-type> - <object-type name="QTextBlockGroup" /> - <object-type name="QTextBlockUserData" /> + <object-type name="QTextBlockGroup"/> + <object-type name="QTextBlockUserData"/> <object-type name="QTextItem"> <enum-type name="RenderFlag" flags="RenderFlags"/> </object-type> @@ -1721,42 +1356,6 @@ </modify-function> </object-type> - <template name="validator_conversionrule"> - QValidator::State %out; - - if (PySequence_Check(%PYARG_0)) { - Shiboken::AutoDecRef seq(PySequence_Fast(%PYARG_0, 0)); - int size = PySequence_Fast_GET_SIZE(seq.object()); - - if (size > 1) { - if (%ISCONVERTIBLE[QString](PySequence_Fast_GET_ITEM(seq.object(), 1))) - %1 = %CONVERTTOCPP[QString](PySequence_Fast_GET_ITEM(seq.object(), 1)); - else - qWarning("%TYPE::%FUNCTION_NAME: Second tuple element is not convertible to unicode."); - } - - if (size > 2) { - if (%ISCONVERTIBLE[int](PySequence_Fast_GET_ITEM(seq.object(), 2))) - %2 = %CONVERTTOCPP[int](PySequence_Fast_GET_ITEM(seq.object(), 2)); - else - qWarning("%TYPE::%FUNCTION_NAME: Second tuple element is not convertible to int."); - } - %PYARG_0 = PySequence_Fast_GET_ITEM(seq.object(), 0); - Py_INCREF(%PYARG_0); // we need to incref, because "%PYARG_0 = ..." will decref the tuple and the tuple will be decrefed again at the end of this scope. - } - - // check retrun value - if (%ISCONVERTIBLE[QValidator::State](%PYARG_0)) { - %out = %CONVERTTOCPP[QValidator::State](%PYARG_0); - } else { - PyErr_Format(PyExc_TypeError, "Invalid return value in function %s, expected %s, got %s.", - "QValidator.validate", - "PySide2.QtGui.QValidator.State, (PySide2.QtGui.QValidator.State,), (PySide2.QtGui.QValidator.State, unicode) or (PySide2.QtGui.QValidator.State, unicode, int)", - Py_TYPE(pyResult)->tp_name); - return QValidator::State(); - } - </template> - <object-type name="QValidator"> <enum-type name="State"/> <modify-function signature="fixup(QString &)const"> @@ -1766,9 +1365,7 @@ <inject-code class="native" position="end"> <insert-template name="return_QString_native"/> </inject-code> - <inject-code class="target" position="end"> - <insert-template name="return_QString"/> - </inject-code> + <inject-code class="target" position="end" file="../glue/qtcore.cpp" snippet="qstring-return"/> </modify-function> <modify-function signature="validate(QString &,int &)const"> <modify-argument index="return"> @@ -1783,25 +1380,26 @@ </modify-function> </object-type> - <object-type name="QActionEvent" polymorphic-id-expression="%1->type() == QEvent::ActionAdded || %1->type() == QEvent::ActionRemoved || %1->type() == QEvent::ActionChanged" /> + <object-type name="QActionEvent" polymorphic-id-expression="%1->type() == QEvent::ActionAdded || %1->type() == QEvent::ActionRemoved || %1->type() == QEvent::ActionChanged"/> <object-type name="QCloseEvent" polymorphic-id-expression="%1->type() == QEvent::Close"/> <object-type name="QContextMenuEvent" polymorphic-id-expression="%1->type() == QEvent::ContextMenu"> <enum-type name="Reason"/> </object-type> + <object-type name="QDragEnterEvent" polymorphic-id-expression="%1->type() == QEvent::DragEnter"/> <object-type name="QDragLeaveEvent" polymorphic-id-expression="%1->type() == QEvent::DragLeave"/> - <object-type name="QDragMoveEvent" polymorphic-id-expression="%1->type() == QEvent::DragMove" /> + <object-type name="QDragMoveEvent" polymorphic-id-expression="%1->type() == QEvent::DragMove"/> <object-type name="QDropEvent" polymorphic-id-expression="%1->type() == QEvent::Drop"> <modify-function signature="source()const"> <modify-argument index="return"> - <define-ownership class="target" owner="default" /> + <define-ownership class="target" owner="default"/> </modify-argument> </modify-function> </object-type> <object-type name="QEnterEvent" copyable="false" polymorphic-id-expression="%1->type() == QEvent::Enter"/> - <object-type name="QExposeEvent" polymorphic-id-expression="%1->type() == QEvent::Expose" /> - <object-type name="QFileOpenEvent" polymorphic-id-expression="%1->type() == QEvent::FileOpen" /> - <object-type name="QFocusEvent" polymorphic-id-expression="%1->type() == QEvent::FocusIn || %1->type() == QEvent::FocusOut" /> + <object-type name="QExposeEvent" polymorphic-id-expression="%1->type() == QEvent::Expose"/> + <object-type name="QFileOpenEvent" polymorphic-id-expression="%1->type() == QEvent::FileOpen"/> + <object-type name="QFocusEvent" polymorphic-id-expression="%1->type() == QEvent::FocusIn || %1->type() == QEvent::FocusOut"/> <object-type name="QHelpEvent" copyable="false" polymorphic-id-expression="%1->type() == QEvent::ToolTip || %1->type() == QEvent::WhatsThis"/> <object-type name="QHideEvent" copyable="false" polymorphic-id-expression="%1->type() == QEvent::Hide"/> <object-type name="QHoverEvent" copyable="false" polymorphic-id-expression="%1->type() == QEvent::HoverEnter || %1->type() == QEvent::HoverLeave || %1->type() == QEvent::HoverMove"/> @@ -1817,7 +1415,7 @@ </object-type> <object-type name="QInputMethodQueryEvent" copyable="false" polymorphic-id-expression="%1->type() == QEvent::InputMethodQuery"/> - <object-type name="QMoveEvent" copyable = "false" polymorphic-id-expression="%1->type() == QEvent::Move" /> + <object-type name="QMoveEvent" copyable = "false" polymorphic-id-expression="%1->type() == QEvent::Move"/> <object-type name="QNativeGestureEvent" copyable="false" polymorphic-id-expression="%1->type() == QEvent::NativeGesture"/> <object-type name="QResizeEvent" copyable = "false" polymorphic-id-expression="%1->type() == QEvent::Resize"/> <object-type name="QShortcutEvent" copyable = "false" polymorphic-id-expression="%1->type() == QEvent::Shortcut"> @@ -1832,18 +1430,13 @@ <object-type name="QWhatsThisClickedEvent" copyable="false" polymorphic-id-expression="%1->type() == QEvent::WhatsThisClicked"/> <object-type name="QWheelEvent" copyable= "false" polymorphic-id-expression="%1->type() == QEvent::Wheel"/> <!-- Qt5.5: suppress this nameless enum --> - <suppress-warning text="enum 'QWheelEvent::DefaultDeltasPerStep' does not have a type entry or is not an enum" /> + <suppress-warning text="enum 'QWheelEvent::DefaultDeltasPerStep' does not have a type entry or is not an enum"/> <object-type name="QWindowStateChangeEvent" copyable="false" polymorphic-id-expression="%1->type() == QEvent::WindowStateChange"/> - <object-type name="QInputEvent" copyable="false"> - <modify-function signature="modifiers()const" access="non-final"/> - </object-type> + <object-type name="QInputEvent" copyable="false"/> <object-type name="QKeyEvent" copyable= "false" polymorphic-id-expression="%1->type() == QEvent::KeyPress || %1->type() == QEvent::KeyRelease || %1->type() == QEvent::ShortcutOverride"> <add-function signature="operator!=(QKeySequence::StandardKey)"> - <inject-code class="target"> - bool ret = !(&%CPPSELF == %1); - %PYARG_0 = %CONVERTTOPYTHON[bool](ret); - </inject-code> + <inject-code class="target" file="../glue/qtgui.cpp" snippet="qkeyevent-operatornotequal"/> </add-function> </object-type> <object-type name="QMouseEvent" copyable= "false" polymorphic-id-expression="%1->type() == QEvent::MouseButtonDblClick || %1->type() == QEvent::MouseButtonPress || %1->type() == QEvent::MouseButtonRelease || %1->type() == QEvent::MouseMove"/> @@ -1867,13 +1460,13 @@ <!-- ### --> <add-function signature="__iter__()" return-type="PyObject*"> <inject-code class="target" position="beginning"> - <insert-template name="__iter__" /> + <insert-template name="__iter__"/> </inject-code> </add-function> <add-function signature="__next__()" return-type="PyObject*"> <inject-code class="target" position="beginning"> <insert-template name="__next__"> - <replace from="%CPPSELF_TYPE" to="QTextFrame::iterator" /> + <replace from="%CPPSELF_TYPE" to="QTextFrame::iterator"/> </insert-template> </inject-code> </add-function> @@ -1881,7 +1474,7 @@ <add-function signature="__iter__()" return-type="PyObject*"> <inject-code class="target" position="beginning"> <insert-template name="__iter_parent__"> - <replace from="%CPPSELF_TYPE" to="QTextFrame::iterator" /> + <replace from="%CPPSELF_TYPE" to="QTextFrame::iterator"/> </insert-template> </inject-code> </add-function> @@ -1891,7 +1484,7 @@ <include file-name="QRect" location="global"/> </extra-includes> <enum-type name="ImageOption"/> - <enum-type name="Transformation" flags="Transformations" since="5.5" /> + <enum-type name="Transformation" flags="Transformations" since="5.5"/> <modify-function signature="setDevice(QIODevice*)"> <modify-argument index="1"> <parent index="this" action="add"/> @@ -1910,7 +1503,7 @@ <enum-type name="ImageReaderError"/> <!-- ### This method does not make sense in Python. Update: perhaps it does, but no one is missing it. --> - <modify-function signature="read(QImage*)" remove="all" /> + <modify-function signature="read(QImage*)" remove="all"/> <modify-function signature="setDevice(QIODevice*)"> <modify-argument index="1"> <parent index="this" action="add"/> @@ -1971,170 +1564,135 @@ </extra-includes> <modify-function signature="takeItem(int,int)"> <modify-argument index="return"> - <parent index="this" action="remove" /> + <parent index="this" action="remove"/> </modify-argument> </modify-function> <modify-function signature="takeHorizontalHeaderItem(int)"> <modify-argument index="return"> - <parent index="this" action="remove" /> + <parent index="this" action="remove"/> </modify-argument> </modify-function> <modify-function signature="takeVerticalHeaderItem(int)"> <modify-argument index="return"> - <parent index="this" action="remove" /> + <parent index="this" action="remove"/> </modify-argument> </modify-function> <modify-function signature="verticalHeaderItem(int)const"> <modify-argument index="return"> - <parent index="this" action="add" /> + <parent index="this" action="add"/> </modify-argument> </modify-function> <modify-function signature="horizontalHeaderItem(int)const"> <modify-argument index="return"> - <parent index="this" action="add" /> + <parent index="this" action="add"/> </modify-argument> </modify-function> <modify-function signature="invisibleRootItem()const"> <modify-argument index="return"> - <parent index="this" action="add" /> + <parent index="this" action="add"/> </modify-argument> </modify-function> <modify-function signature="item(int,int)const"> <modify-argument index="return"> - <parent index="this" action="add" /> + <parent index="this" action="add"/> </modify-argument> </modify-function> <modify-function signature="itemFromIndex(const QModelIndex&)const"> <modify-argument index="return"> - <parent index="this" action="add" /> + <parent index="this" action="add"/> </modify-argument> </modify-function> <modify-function signature="itemPrototype()const"> <modify-argument index="return"> - <parent index="this" action="add" /> + <parent index="this" action="add"/> </modify-argument> </modify-function> <modify-function signature="appendRow(const QList<QStandardItem*>&)"> <modify-argument index="1"> - <parent index="this" action="add" /> + <parent index="this" action="add"/> </modify-argument> </modify-function> <modify-function signature="appendRow(QStandardItem*)"> <modify-argument index="1"> - <parent index="this" action="add" /> + <parent index="this" action="add"/> </modify-argument> </modify-function> <modify-function signature="insertRow(int,QStandardItem*)"> <modify-argument index="2"> - <parent index="this" action="add" /> + <parent index="this" action="add"/> </modify-argument> </modify-function> <modify-function signature="setHorizontalHeaderItem(int,QStandardItem*)"> <modify-argument index="2"> - <parent index="this" action="add" /> + <parent index="this" action="add"/> </modify-argument> </modify-function> <modify-function signature="setItem(int,int,QStandardItem*)"> - <inject-code class="target" position="beginning"> - // Clear parent from the old child - QStandardItem *_i = %CPPSELF->item(%1, %2); - if (_i) { - PyObject *_pyI = %CONVERTTOPYTHON[QStandardItem*](_i); - Shiboken::Object::setParent(0, _pyI); - } - </inject-code> + <inject-code class="target" position="beginning" file="../glue/qtgui.cpp" snippet="qstandarditemmodel-setitem-1"/> <modify-argument index="3"> - <parent index="this" action="add" /> + <parent index="this" action="add"/> </modify-argument> </modify-function> <modify-function signature="setItem(int,QStandardItem*)"> - <inject-code class="target" position="beginning"> - // Clear parent from the old child - QStandardItem *_i = %CPPSELF->item(%1); - if (_i) { - PyObject *_pyI = %CONVERTTOPYTHON[QStandardItem*](_i); - Shiboken::Object::setParent(0, _pyI); - } - </inject-code> + <inject-code class="target" position="beginning" file="../glue/qtgui.cpp" snippet="qstandarditemmodel-setitem-2"/> <modify-argument index="2"> - <parent index="this" action="add" /> + <parent index="this" action="add"/> </modify-argument> </modify-function> <modify-function signature="setItemPrototype(const QStandardItem*)"> <modify-argument index="1"> - <parent index="this" action="add" /> + <parent index="this" action="add"/> </modify-argument> </modify-function> <modify-function signature="setVerticalHeaderItem(int,QStandardItem*)"> - <inject-code class="target" position="beginning"> - // Clear parent from the old child - QStandardItem *_i = %CPPSELF->verticalHeaderItem(%1); - if (_i) { - PyObject *_pyI = %CONVERTTOPYTHON[QStandardItem*](_i); - Shiboken::Object::setParent(0, _pyI); - } - </inject-code> + <inject-code class="target" position="beginning" file="../glue/qtgui.cpp" snippet="qstandarditemmodel-setverticalheaderitem"/> <modify-argument index="2"> - <parent index="this" action="add" /> + <parent index="this" action="add"/> </modify-argument> </modify-function> <modify-function signature="takeColumn(int)"> <modify-argument index="return"> - <parent index="this" action="remove" /> + <parent index="this" action="remove"/> </modify-argument> </modify-function> <modify-function signature="takeRow(int)"> <modify-argument index="return"> - <parent index="this" action="remove" /> + <parent index="this" action="remove"/> </modify-argument> </modify-function> <modify-function signature="findItems(const QString&,QFlags<Qt::MatchFlag>,int)const"> <modify-argument index="return"> - <parent index="this" action="add" /> + <parent index="this" action="add"/> </modify-argument> </modify-function> <modify-function signature="insertColumn(int,const QList<QStandardItem*>&)"> <modify-argument index="2"> - <parent index="this" action="add" /> + <parent index="this" action="add"/> </modify-argument> </modify-function> <modify-function signature="insertRow(int,const QList<QStandardItem*>&)"> <modify-argument index="2"> - <parent index="this" action="add" /> + <parent index="this" action="add"/> </modify-argument> </modify-function> <modify-function signature="appendColumn(const QList<QStandardItem*>&)"> <modify-argument index="1"> - <parent index="this" action="add" /> + <parent index="this" action="add"/> </modify-argument> </modify-function> <modify-function signature="clear()"> - <inject-code class="target" position="beginning"> - Shiboken::BindingManager &bm = Shiboken::BindingManager::instance(); - SbkObject *pyRoot = bm.retrieveWrapper(%CPPSELF.invisibleRootItem()); - if (pyRoot) { - Shiboken::Object::destroy(pyRoot, %CPPSELF.invisibleRootItem()); - } - - for (int r=0, r_max = %CPPSELF.rowCount(); r < r_max; r++) { - QList<QStandardItem *> ri = %CPPSELF.takeRow(0); - - PyObject *pyResult = %CONVERTTOPYTHON[QList<QStandardItem * >](ri); - Shiboken::Object::setParent(Py_None, pyResult); - Py_XDECREF(pyResult); - } - </inject-code> + <inject-code class="target" position="beginning" file="../glue/qtgui.cpp" snippet="qstandarditemmodel-clear"/> </modify-function> </object-type> <object-type name="QClipboard"> @@ -2142,7 +1700,7 @@ <include file-name="QImage" location="global"/> <include file-name="QPixmap" location="global"/> </extra-includes> - <enum-type name="Mode" /> + <enum-type name="Mode"/> <modify-function signature="setMimeData(QMimeData*,QClipboard::Mode)"> <modify-argument index="1"> <!-- TODO: maybe this is not the best solution --> @@ -2156,14 +1714,7 @@ <modify-argument index="return"> <replace-type modified-type="(retval, subtype)"/> </modify-argument> - <inject-code class="target" position="end"> - %BEGIN_ALLOW_THREADS - %RETURN_TYPE retval_ = %CPPSELF.%FUNCTION_NAME(%1, %2); - %END_ALLOW_THREADS - %PYARG_0 = PyTuple_New(2); - PyTuple_SET_ITEM(%PYARG_0, 0, %CONVERTTOPYTHON[%RETURN_TYPE](retval_)); - PyTuple_SET_ITEM(%PYARG_0, 1, %CONVERTTOPYTHON[%ARG1_TYPE](%1)); - </inject-code> + <inject-code class="target" position="end" file="../glue/qtgui.cpp" snippet="qclipboard-text"/> </modify-function> </object-type> <object-type name="QPaintEngineState"> @@ -2210,9 +1761,9 @@ <parent index="this" action="add"/> </modify-argument> </modify-function> - <modify-function signature="print(QPagedPaintDevice*)const" rename="print_" /> + <modify-function signature="print(QPagedPaintDevice*)const" rename="print_"/> </object-type> - <object-type name="QTextDocumentWriter" since="4.5" /> + <object-type name="QTextDocumentWriter" since="4.5"/> <object-type name="QTextTable"> <extra-includes> <include file-name="QTextCursor" location="global"/> @@ -2237,7 +1788,6 @@ </extra-includes> <!-- ### "setPaintDevice(QPaintDevice*)" is an internal method. --> <modify-function signature="setPaintDevice(QPaintDevice*)" remove="all"/> - <modify-field name="state" read="false" write="false"/> </object-type> <object-type name="QPainter"> <extra-includes> @@ -2254,70 +1804,57 @@ <!-- ### "drawText(...)" is an internal method. --> <modify-function signature="drawText(const QPointF&,const QString&,int,int)" remove="all"/> - <template name="qpainter_drawlist"> - %BEGIN_ALLOW_THREADS - %CPPSELF.%FUNCTION_NAME(%1.data(), %1.size()); - %END_ALLOW_THREADS - </template> - <modify-function signature="drawConvexPolygon(const QPoint*,int)" remove="all" /> + <modify-function signature="drawConvexPolygon(const QPoint*,int)" remove="all"/> <add-function signature="drawConvexPolygon(QVector<QPoint>)"> <inject-code> - <insert-template name="qpainter_drawlist" /> + <insert-template name="qpainter_drawlist"/> </inject-code> </add-function> - <modify-function signature="drawConvexPolygon(const QPointF*,int)" remove="all" /> + <modify-function signature="drawConvexPolygon(const QPointF*,int)" remove="all"/> <add-function signature="drawConvexPolygon(QVector<QPointF>)"> <inject-code> - <insert-template name="qpainter_drawlist" /> + <insert-template name="qpainter_drawlist"/> </inject-code> </add-function> <!-- ### Overloads using QVector<T> does the job of these methods --> - <modify-function signature="drawLines(const QLine*,int)" remove="all" /> - <modify-function signature="drawLines(const QLineF*,int)" remove="all" /> - <modify-function signature="drawLines(const QPoint*,int)" remove="all" /> - <modify-function signature="drawLines(const QPointF*,int)" remove="all" /> - <modify-function signature="drawRects(const QRect*,int)" remove="all" /> - <modify-function signature="drawRects(const QRectF*,int)" remove="all" /> + <modify-function signature="drawLines(const QLine*,int)" remove="all"/> + <modify-function signature="drawLines(const QLineF*,int)" remove="all"/> + <modify-function signature="drawLines(const QPoint*,int)" remove="all"/> + <modify-function signature="drawLines(const QPointF*,int)" remove="all"/> + <modify-function signature="drawRects(const QRect*,int)" remove="all"/> + <modify-function signature="drawRects(const QRectF*,int)" remove="all"/> <!-- ### --> - <modify-function signature="drawPoints(const QPoint*,int)" remove="all" /> + <modify-function signature="drawPoints(const QPoint*,int)" remove="all"/> <add-function signature="drawPoints(QVector<QPoint>)"> <inject-code> - <insert-template name="qpainter_drawlist" /> + <insert-template name="qpainter_drawlist"/> </inject-code> </add-function> - <modify-function signature="drawPoints(const QPointF*,int)" remove="all" /> + <modify-function signature="drawPoints(const QPointF*,int)" remove="all"/> <add-function signature="drawPoints(QVector<QPointF>)"> <inject-code> - <insert-template name="qpainter_drawlist" /> + <insert-template name="qpainter_drawlist"/> </inject-code> </add-function> - <modify-function signature="drawPolygon(const QPoint*,int,Qt::FillRule)" remove="all" /> + <modify-function signature="drawPolygon(const QPoint*,int,Qt::FillRule)" remove="all"/> <add-function signature="drawPolygon(QVector<QPoint>,Qt::FillRule)"> - <inject-code> - %BEGIN_ALLOW_THREADS - %CPPSELF.%FUNCTION_NAME(%1.data(), %1.size(), %2); - %END_ALLOW_THREADS - </inject-code> + <inject-code file="../glue/qtgui.cpp" snippet="qpainter-drawpolygon"/> </add-function> - <modify-function signature="drawPolygon(const QPointF*,int,Qt::FillRule)" remove="all" /> + <modify-function signature="drawPolygon(const QPointF*,int,Qt::FillRule)" remove="all"/> <add-function signature="drawPolygon(QVector<QPointF>,Qt::FillRule)"> - <inject-code> - %BEGIN_ALLOW_THREADS - %CPPSELF.%FUNCTION_NAME(%1.data(), %1.size(), %2); - %END_ALLOW_THREADS - </inject-code> + <inject-code file="../glue/qtgui.cpp" snippet="qpainter-drawpolygon"/> </add-function> - <modify-function signature="drawPolyline(const QPoint*,int)" remove="all" /> + <modify-function signature="drawPolyline(const QPoint*,int)" remove="all"/> <add-function signature="drawPolyline(QVector<QPoint>)"> <inject-code> - <insert-template name="qpainter_drawlist" /> + <insert-template name="qpainter_drawlist"/> </inject-code> </add-function> - <modify-function signature="drawPolyline(const QPointF*,int)" remove="all" /> + <modify-function signature="drawPolyline(const QPointF*,int)" remove="all"/> <add-function signature="drawPolyline(QVector<QPointF>)"> <inject-code> - <insert-template name="qpainter_drawlist" /> + <insert-template name="qpainter_drawlist"/> </inject-code> </add-function> <modify-function signature="drawRoundRect(int,int,int,int,int,int)"> @@ -2388,12 +1925,17 @@ </modify-function> </object-type> + <value-type name="QGenericMatrix" generate="no"/> <value-type name="QMatrix2x2" since="4.6"> + <modify-function signature="QMatrix2x2(const float*)"> + <modify-argument index="1"><array/></modify-argument> + </modify-function> + <modify-function signature="copyDataTo(float*) const" remove="all"/> <add-function signature="__repr__" return-type="PyObject*"> <inject-code class="target" position="beginning"> <insert-template name="repr_code_matrix"> - <replace from="%MATRIX_SIZE" to="4" /> - <replace from="%MATRIX_TYPE" to="float" /> + <replace from="%MATRIX_SIZE" to="4"/> + <replace from="%MATRIX_TYPE" to="float"/> </insert-template> </inject-code> </add-function> @@ -2401,87 +1943,37 @@ <add-function signature="__reduce__" return-type="PyObject*"> <inject-code class="target" position="beginning"> <insert-template name="reduce_code_matrix"> - <replace from="%MATRIX_TYPE" to="float" /> - <replace from="%MATRIX_SIZE" to="4" /> + <replace from="%MATRIX_TYPE" to="float"/> + <replace from="%MATRIX_SIZE" to="4"/> </insert-template> </inject-code> </add-function> <add-function signature="QMatrix2x2(PySequence*)"> <inject-code class="target" position="beginning"> <insert-template name="matrix_constructor"> - <replace from="%SIZE" to="4" /> + <replace from="%SIZE" to="4"/> </insert-template> </inject-code> </add-function> <add-function signature="data()" return-type="float"> <inject-code class="target" position="beginning"> <insert-template name="matrix_data_function"> - <replace from="%MATRIX_SIZE" to="4" /> - </insert-template> - </inject-code> - </add-function> - <add-function signature="fill(PyObject*)"> - <inject-code class="target" position="beginning"> - <insert-template name="matrix_fill_function"> - <replace from="%MATRIX_SIZE" to="4" /> + <replace from="%MATRIX_SIZE" to="4"/> </insert-template> </inject-code> </add-function> - <add-function signature="transposed()" return-type="PyObject"> - <inject-code class="target" position="beginning"> - <insert-template name="matrix_transposed_function"> - <replace from="%TRANSPOSED_TYPE" to="QMatrix2x2" /> - </insert-template> - </inject-code> - </add-function> - <add-function signature="operator!=(const QMatrix2x2&)" return-type="bool" /> - - <template name="inplace_add"> - *%CPPSELF += %1; - return %CONVERTTOPYTHON[%RETURN_TYPE](*%CPPSELF); - </template> - <template name="inplace_sub"> - *%CPPSELF -= %1; - return %CONVERTTOPYTHON[%RETURN_TYPE](*%CPPSELF); - </template> - <template name="inplace_mult"> - *%CPPSELF *= %1; - return %CONVERTTOPYTHON[%RETURN_TYPE](*%CPPSELF); - </template> - <template name="inplace_div"> - *%CPPSELF /= %1; - return %CONVERTTOPYTHON[%RETURN_TYPE](*%CPPSELF); - </template> - - <add-function signature="operator*=(float)" return-type="QMatrix2x2" > - <inject-code class="target" position="beginning"> - <insert-template name="inplace_mult"/> - </inject-code> - </add-function> - <add-function signature="operator+=(const QMatrix2x2&)" return-type="QMatrix2x2" > - <inject-code class="target" position="beginning"> - <insert-template name="inplace_add"/> - </inject-code> - </add-function> - <add-function signature="operator-=(const QMatrix2x2&)" return-type="QMatrix2x2" > - <inject-code class="target" position="beginning"> - <insert-template name="inplace_sub"/> - </inject-code> - </add-function> - <add-function signature="operator/=(float)" return-type="QMatrix2x2" > - <inject-code class="target" position="beginning"> - <insert-template name="inplace_div"/> - </inject-code> - </add-function> - <add-function signature="operator==(const QMatrix2x2&)" return-type="bool" /> </value-type> <value-type name="QMatrix2x3" since="4.6"> + <modify-function signature="QMatrix2x3(const float*)"> + <modify-argument index="1"><array/></modify-argument> + </modify-function> + <modify-function signature="copyDataTo(float*) const" remove="all"/> <add-function signature="__repr__" return-type="PyObject*"> <inject-code class="target" position="beginning"> <insert-template name="repr_code_matrix"> - <replace from="%MATRIX_SIZE" to="6" /> - <replace from="%MATRIX_TYPE" to="float" /> + <replace from="%MATRIX_SIZE" to="6"/> + <replace from="%MATRIX_TYPE" to="float"/> </insert-template> </inject-code> </add-function> @@ -2489,69 +1981,37 @@ <add-function signature="__reduce__" return-type="PyObject*"> <inject-code class="target" position="beginning"> <insert-template name="reduce_code_matrix"> - <replace from="%MATRIX_TYPE" to="float" /> - <replace from="%MATRIX_SIZE" to="6" /> + <replace from="%MATRIX_TYPE" to="float"/> + <replace from="%MATRIX_SIZE" to="6"/> </insert-template> </inject-code> </add-function> <add-function signature="QMatrix2x3(PySequence*)"> <inject-code class="target" position="beginning"> <insert-template name="matrix_constructor"> - <replace from="%SIZE" to="6" /> + <replace from="%SIZE" to="6"/> </insert-template> </inject-code> </add-function> <add-function signature="data()" return-type="float"> <inject-code class="target" position="beginning"> <insert-template name="matrix_data_function"> - <replace from="%MATRIX_SIZE" to="6" /> + <replace from="%MATRIX_SIZE" to="6"/> </insert-template> </inject-code> </add-function> - <add-function signature="fill(PyObject*)"> - <inject-code class="target" position="beginning"> - <insert-template name="matrix_fill_function"> - <replace from="%MATRIX_SIZE" to="6" /> - </insert-template> - </inject-code> - </add-function> - <add-function signature="transposed()" return-type="PyObject"> - <inject-code class="target" position="beginning"> - <insert-template name="matrix_transposed_function"> - <replace from="%TRANSPOSED_TYPE" to="QMatrix3x2" /> - </insert-template> - </inject-code> - </add-function> - <add-function signature="operator!=(const QMatrix2x3&)" return-type="bool" /> - <add-function signature="operator*=(float)" return-type="QMatrix2x3" > - <inject-code class="target" position="beginning"> - <insert-template name="inplace_mult"/> - </inject-code> - </add-function> - <add-function signature="operator+=(const QMatrix2x3&)" return-type="QMatrix2x3" > - <inject-code class="target" position="beginning"> - <insert-template name="inplace_add"/> - </inject-code> - </add-function> - <add-function signature="operator-=(const QMatrix2x3&)" return-type="QMatrix2x3" > - <inject-code class="target" position="beginning"> - <insert-template name="inplace_sub"/> - </inject-code> - </add-function> - <add-function signature="operator/=(float)" return-type="QMatrix2x3" > - <inject-code class="target" position="beginning"> - <insert-template name="inplace_div"/> - </inject-code> - </add-function> - <add-function signature="operator==(const QMatrix2x3&)" return-type="bool" /> </value-type> <value-type name="QMatrix2x4" since="4.6"> + <modify-function signature="QMatrix2x4(const float*)"> + <modify-argument index="1"><array/></modify-argument> + </modify-function> + <modify-function signature="copyDataTo(float*) const" remove="all"/> <add-function signature="__repr__" return-type="PyObject*"> <inject-code class="target" position="beginning"> <insert-template name="repr_code_matrix"> - <replace from="%MATRIX_SIZE" to="8" /> - <replace from="%MATRIX_TYPE" to="float" /> + <replace from="%MATRIX_SIZE" to="8"/> + <replace from="%MATRIX_TYPE" to="float"/> </insert-template> </inject-code> </add-function> @@ -2559,69 +2019,37 @@ <add-function signature="__reduce__" return-type="PyObject*"> <inject-code class="target" position="beginning"> <insert-template name="reduce_code_matrix"> - <replace from="%MATRIX_TYPE" to="float" /> - <replace from="%MATRIX_SIZE" to="8" /> + <replace from="%MATRIX_TYPE" to="float"/> + <replace from="%MATRIX_SIZE" to="8"/> </insert-template> </inject-code> </add-function> <add-function signature="QMatrix2x4(PySequence*)"> <inject-code class="target" position="beginning"> <insert-template name="matrix_constructor"> - <replace from="%SIZE" to="8" /> + <replace from="%SIZE" to="8"/> </insert-template> </inject-code> </add-function> <add-function signature="data()" return-type="float"> <inject-code class="target" position="beginning"> <insert-template name="matrix_data_function"> - <replace from="%MATRIX_SIZE" to="8" /> + <replace from="%MATRIX_SIZE" to="8"/> </insert-template> </inject-code> </add-function> - <add-function signature="fill(PyObject*)"> - <inject-code class="target" position="beginning"> - <insert-template name="matrix_fill_function"> - <replace from="%MATRIX_SIZE" to="8" /> - </insert-template> - </inject-code> - </add-function> - <add-function signature="transposed()" return-type="PyObject"> - <inject-code class="target" position="beginning"> - <insert-template name="matrix_transposed_function"> - <replace from="%TRANSPOSED_TYPE" to="QMatrix4x2" /> - </insert-template> - </inject-code> - </add-function> - <add-function signature="operator!=(const QMatrix2x4&)" return-type="bool" /> - <add-function signature="operator*=(float)" return-type="QMatrix2x4" > - <inject-code class="target" position="beginning"> - <insert-template name="inplace_mult"/> - </inject-code> - </add-function> - <add-function signature="operator+=(const QMatrix2x4&)" return-type="QMatrix2x4" > - <inject-code class="target" position="beginning"> - <insert-template name="inplace_add"/> - </inject-code> - </add-function> - <add-function signature="operator-=(const QMatrix2x4&)" return-type="QMatrix2x4" > - <inject-code class="target" position="beginning"> - <insert-template name="inplace_sub"/> - </inject-code> - </add-function> - <add-function signature="operator/=(float)" return-type="QMatrix2x4" > - <inject-code class="target" position="beginning"> - <insert-template name="inplace_div"/> - </inject-code> - </add-function> - <add-function signature="operator==(const QMatrix2x4&)" return-type="bool" /> </value-type> <value-type name="QMatrix3x2" since="4.6"> + <modify-function signature="QMatrix3x2(const float*)"> + <modify-argument index="1"><array/></modify-argument> + </modify-function> + <modify-function signature="copyDataTo(float*) const" remove="all"/> <add-function signature="__repr__" return-type="PyObject*"> <inject-code class="target" position="beginning"> <insert-template name="repr_code_matrix"> - <replace from="%MATRIX_SIZE" to="6" /> - <replace from="%MATRIX_TYPE" to="float" /> + <replace from="%MATRIX_SIZE" to="6"/> + <replace from="%MATRIX_TYPE" to="float"/> </insert-template> </inject-code> </add-function> @@ -2629,69 +2057,37 @@ <add-function signature="__reduce__" return-type="PyObject*"> <inject-code class="target" position="beginning"> <insert-template name="reduce_code_matrix"> - <replace from="%MATRIX_TYPE" to="float" /> - <replace from="%MATRIX_SIZE" to="6" /> + <replace from="%MATRIX_TYPE" to="float"/> + <replace from="%MATRIX_SIZE" to="6"/> </insert-template> </inject-code> </add-function> <add-function signature="QMatrix3x2(PySequence*)"> <inject-code class="target" position="beginning"> <insert-template name="matrix_constructor"> - <replace from="%SIZE" to="6" /> + <replace from="%SIZE" to="6"/> </insert-template> </inject-code> </add-function> <add-function signature="data()" return-type="float"> <inject-code class="target" position="beginning"> <insert-template name="matrix_data_function"> - <replace from="%MATRIX_SIZE" to="6" /> + <replace from="%MATRIX_SIZE" to="6"/> </insert-template> </inject-code> </add-function> - <add-function signature="fill(PyObject*)"> - <inject-code class="target" position="beginning"> - <insert-template name="matrix_fill_function"> - <replace from="%MATRIX_SIZE" to="6" /> - </insert-template> - </inject-code> - </add-function> - <add-function signature="transposed()" return-type="PyObject"> - <inject-code class="target" position="beginning"> - <insert-template name="matrix_transposed_function"> - <replace from="%TRANSPOSED_TYPE" to="QMatrix2x3" /> - </insert-template> - </inject-code> - </add-function> - <add-function signature="operator!=(const QMatrix3x2&)" return-type="bool" /> - <add-function signature="operator*=(float)" return-type="QMatrix3x2" > - <inject-code class="target" position="beginning"> - <insert-template name="inplace_mult"/> - </inject-code> - </add-function> - <add-function signature="operator+=(const QMatrix3x2&)" return-type="QMatrix3x2" > - <inject-code class="target" position="beginning"> - <insert-template name="inplace_add"/> - </inject-code> - </add-function> - <add-function signature="operator-=(const QMatrix3x2&)" return-type="QMatrix3x2" > - <inject-code class="target" position="beginning"> - <insert-template name="inplace_sub"/> - </inject-code> - </add-function> - <add-function signature="operator/=(float)" return-type="QMatrix3x2" > - <inject-code class="target" position="beginning"> - <insert-template name="inplace_div"/> - </inject-code> - </add-function> - <add-function signature="operator==(const QMatrix3x2&)" return-type="bool" /> </value-type> <value-type name="QMatrix3x3" since="4.6"> + <modify-function signature="QMatrix3x3(const float*)"> + <modify-argument index="1"><array/></modify-argument> + </modify-function> + <modify-function signature="copyDataTo(float*) const" remove="all"/> <add-function signature="__repr__" return-type="PyObject*"> <inject-code class="target" position="beginning"> <insert-template name="repr_code_matrix"> - <replace from="%MATRIX_SIZE" to="9" /> - <replace from="%MATRIX_TYPE" to="float" /> + <replace from="%MATRIX_SIZE" to="9"/> + <replace from="%MATRIX_TYPE" to="float"/> </insert-template> </inject-code> </add-function> @@ -2699,69 +2095,37 @@ <add-function signature="__reduce__" return-type="PyObject*"> <inject-code class="target" position="beginning"> <insert-template name="reduce_code_matrix"> - <replace from="%MATRIX_TYPE" to="float" /> - <replace from="%MATRIX_SIZE" to="9" /> + <replace from="%MATRIX_TYPE" to="float"/> + <replace from="%MATRIX_SIZE" to="9"/> </insert-template> </inject-code> </add-function> <add-function signature="QMatrix3x3(PySequence*)"> <inject-code class="target" position="beginning"> <insert-template name="matrix_constructor"> - <replace from="%SIZE" to="9" /> + <replace from="%SIZE" to="9"/> </insert-template> </inject-code> </add-function> <add-function signature="data()" return-type="float"> <inject-code class="target" position="beginning"> <insert-template name="matrix_data_function"> - <replace from="%MATRIX_SIZE" to="9" /> - </insert-template> - </inject-code> - </add-function> - <add-function signature="fill(PyObject*)"> - <inject-code class="target" position="beginning"> - <insert-template name="matrix_fill_function"> - <replace from="%MATRIX_SIZE" to="9" /> + <replace from="%MATRIX_SIZE" to="9"/> </insert-template> </inject-code> </add-function> - <add-function signature="transposed()" return-type="PyObject"> - <inject-code class="target" position="beginning"> - <insert-template name="matrix_transposed_function"> - <replace from="%TRANSPOSED_TYPE" to="QMatrix3x3" /> - </insert-template> - </inject-code> - </add-function> - <add-function signature="operator!=(const QMatrix3x3&)" return-type="bool" /> - <add-function signature="operator*=(float)" return-type="QMatrix3x3" > - <inject-code class="target" position="beginning"> - <insert-template name="inplace_mult"/> - </inject-code> - </add-function> - <add-function signature="operator+=(const QMatrix3x3&)" return-type="QMatrix3x3" > - <inject-code class="target" position="beginning"> - <insert-template name="inplace_add"/> - </inject-code> - </add-function> - <add-function signature="operator-=(const QMatrix3x3&)" return-type="QMatrix3x3" > - <inject-code class="target" position="beginning"> - <insert-template name="inplace_sub"/> - </inject-code> - </add-function> - <add-function signature="operator/=(float)" return-type="QMatrix3x3" > - <inject-code class="target" position="beginning"> - <insert-template name="inplace_div"/> - </inject-code> - </add-function> - <add-function signature="operator==(const QMatrix3x3&)" return-type="bool" /> </value-type> <value-type name="QMatrix3x4" since="4.6"> + <modify-function signature="QMatrix3x4(const float*)"> + <modify-argument index="1"><array/></modify-argument> + </modify-function> + <modify-function signature="copyDataTo(float*) const" remove="all"/> <add-function signature="__repr__" return-type="PyObject*"> <inject-code class="target" position="beginning"> <insert-template name="repr_code_matrix"> - <replace from="%MATRIX_SIZE" to="12" /> - <replace from="%MATRIX_TYPE" to="float" /> + <replace from="%MATRIX_SIZE" to="12"/> + <replace from="%MATRIX_TYPE" to="float"/> </insert-template> </inject-code> </add-function> @@ -2769,69 +2133,36 @@ <add-function signature="__reduce__" return-type="PyObject*"> <inject-code class="target" position="beginning"> <insert-template name="reduce_code_matrix"> - <replace from="%MATRIX_TYPE" to="float" /> - <replace from="%MATRIX_SIZE" to="12" /> + <replace from="%MATRIX_TYPE" to="float"/> + <replace from="%MATRIX_SIZE" to="12"/> </insert-template> </inject-code> </add-function> <add-function signature="QMatrix3x4(PySequence*)"> <inject-code class="target" position="beginning"> <insert-template name="matrix_constructor"> - <replace from="%SIZE" to="12" /> + <replace from="%SIZE" to="12"/> </insert-template> </inject-code> </add-function> <add-function signature="data()" return-type="float"> <inject-code class="target" position="beginning"> <insert-template name="matrix_data_function"> - <replace from="%MATRIX_SIZE" to="12" /> - </insert-template> - </inject-code> - </add-function> - <add-function signature="fill(PyObject*)"> - <inject-code class="target" position="beginning"> - <insert-template name="matrix_fill_function"> - <replace from="%MATRIX_SIZE" to="12" /> - </insert-template> - </inject-code> - </add-function> - <add-function signature="transposed()" return-type="PyObject"> - <inject-code class="target" position="beginning"> - <insert-template name="matrix_transposed_function"> - <replace from="%TRANSPOSED_TYPE" to="QMatrix4x3" /> + <replace from="%MATRIX_SIZE" to="12"/> </insert-template> </inject-code> </add-function> - <add-function signature="operator!=(const QMatrix3x4&)" return-type="bool" /> - <add-function signature="operator*=(float)" return-type="QMatrix3x4" > - <inject-code class="target" position="beginning"> - <insert-template name="inplace_mult"/> - </inject-code> - </add-function> - <add-function signature="operator+=(const QMatrix3x4&)" return-type="QMatrix3x4" > - <inject-code class="target" position="beginning"> - <insert-template name="inplace_add"/> - </inject-code> - </add-function> - <add-function signature="operator-=(const QMatrix3x4&)" return-type="QMatrix3x4" > - <inject-code class="target" position="beginning"> - <insert-template name="inplace_sub"/> - </inject-code> - </add-function> - <add-function signature="operator/=(float)" return-type="QMatrix3x4" > - <inject-code class="target" position="beginning"> - <insert-template name="inplace_div"/> - </inject-code> - </add-function> - <add-function signature="operator==(const QMatrix3x4&)" return-type="bool" /> </value-type> <value-type name="QMatrix4x2" since="4.6"> + <modify-function signature="QMatrix4x2(const float*)"> + <modify-argument index="1"><array/></modify-argument> + </modify-function> <add-function signature="__repr__" return-type="PyObject*"> <inject-code class="target" position="beginning"> <insert-template name="repr_code_matrix"> - <replace from="%MATRIX_SIZE" to="8" /> - <replace from="%MATRIX_TYPE" to="float" /> + <replace from="%MATRIX_SIZE" to="8"/> + <replace from="%MATRIX_TYPE" to="float"/> </insert-template> </inject-code> </add-function> @@ -2839,69 +2170,37 @@ <add-function signature="__reduce__" return-type="PyObject*"> <inject-code class="target" position="beginning"> <insert-template name="reduce_code_matrix"> - <replace from="%MATRIX_TYPE" to="float" /> - <replace from="%MATRIX_SIZE" to="8" /> + <replace from="%MATRIX_TYPE" to="float"/> + <replace from="%MATRIX_SIZE" to="8"/> </insert-template> </inject-code> </add-function> <add-function signature="QMatrix4x2(PySequence*)"> <inject-code class="target" position="beginning"> <insert-template name="matrix_constructor"> - <replace from="%SIZE" to="8" /> + <replace from="%SIZE" to="8"/> </insert-template> </inject-code> </add-function> <add-function signature="data()" return-type="float"> <inject-code class="target" position="beginning"> <insert-template name="matrix_data_function"> - <replace from="%MATRIX_SIZE" to="8" /> - </insert-template> - </inject-code> - </add-function> - <add-function signature="fill(PyObject*)"> - <inject-code class="target" position="beginning"> - <insert-template name="matrix_fill_function"> - <replace from="%MATRIX_SIZE" to="8" /> - </insert-template> - </inject-code> - </add-function> - <add-function signature="transposed()" return-type="PyObject"> - <inject-code class="target" position="beginning"> - <insert-template name="matrix_transposed_function"> - <replace from="%TRANSPOSED_TYPE" to="QMatrix2x4" /> + <replace from="%MATRIX_SIZE" to="8"/> </insert-template> </inject-code> </add-function> - <add-function signature="operator!=(const QMatrix4x2&)" return-type="bool" /> - <add-function signature="operator*=(float)" return-type="QMatrix4x2" > - <inject-code class="target" position="beginning"> - <insert-template name="inplace_mult"/> - </inject-code> - </add-function> - <add-function signature="operator+=(const QMatrix4x2&)" return-type="QMatrix4x2" > - <inject-code class="target" position="beginning"> - <insert-template name="inplace_add"/> - </inject-code> - </add-function> - <add-function signature="operator-=(const QMatrix4x2&)" return-type="QMatrix4x2" > - <inject-code class="target" position="beginning"> - <insert-template name="inplace_sub"/> - </inject-code> - </add-function> - <add-function signature="operator/=(float)" return-type="QMatrix4x2" > - <inject-code class="target" position="beginning"> - <insert-template name="inplace_div"/> - </inject-code> - </add-function> - <add-function signature="operator==(const QMatrix4x2&)" return-type="bool" /> </value-type> <value-type name="QMatrix4x3" since="4.6"> + <modify-function signature="QMatrix4x3(const float*)"> + <modify-argument index="1"><array/></modify-argument> + </modify-function> + <modify-function signature="copyDataTo(float*) const" remove="all"/> <add-function signature="__repr__" return-type="PyObject*"> <inject-code class="target" position="beginning"> <insert-template name="repr_code_matrix"> - <replace from="%MATRIX_SIZE" to="12" /> - <replace from="%MATRIX_TYPE" to="float" /> + <replace from="%MATRIX_SIZE" to="12"/> + <replace from="%MATRIX_TYPE" to="float"/> </insert-template> </inject-code> </add-function> @@ -2909,66 +2208,29 @@ <add-function signature="__reduce__" return-type="PyObject*"> <inject-code class="target" position="beginning"> <insert-template name="reduce_code_matrix"> - <replace from="%MATRIX_TYPE" to="float" /> - <replace from="%MATRIX_SIZE" to="12" /> + <replace from="%MATRIX_TYPE" to="float"/> + <replace from="%MATRIX_SIZE" to="12"/> </insert-template> </inject-code> </add-function> <add-function signature="QMatrix4x3(PySequence*)"> <inject-code class="target" position="beginning"> <insert-template name="matrix_constructor"> - <replace from="%SIZE" to="12" /> + <replace from="%SIZE" to="12"/> </insert-template> </inject-code> </add-function> <add-function signature="data()" return-type="float"> <inject-code class="target" position="beginning"> <insert-template name="matrix_data_function"> - <replace from="%MATRIX_SIZE" to="12" /> - </insert-template> - </inject-code> - </add-function> - <add-function signature="fill(PyObject*)"> - <inject-code class="target" position="beginning"> - <insert-template name="matrix_fill_function"> - <replace from="%MATRIX_SIZE" to="12" /> - </insert-template> - </inject-code> - </add-function> - <add-function signature="transposed()" return-type="PyObject"> - <inject-code class="target" position="beginning"> - <insert-template name="matrix_transposed_function"> - <replace from="%TRANSPOSED_TYPE" to="QMatrix3x4" /> + <replace from="%MATRIX_SIZE" to="12"/> </insert-template> </inject-code> </add-function> - <add-function signature="operator!=(const QMatrix4x3&)" return-type="bool" /> - <add-function signature="operator*=(float)" return-type="QMatrix4x3" > - <inject-code class="target" position="beginning"> - <insert-template name="inplace_mult"/> - </inject-code> - </add-function> - <add-function signature="operator+=(const QMatrix4x3&)" return-type="QMatrix4x3" > - <inject-code class="target" position="beginning"> - <insert-template name="inplace_add"/> - </inject-code> - </add-function> - <add-function signature="operator-=(const QMatrix4x3&)" return-type="QMatrix4x3" > - <inject-code class="target" position="beginning"> - <insert-template name="inplace_sub"/> - </inject-code> - </add-function> - <add-function signature="operator/=(float)" return-type="QMatrix4x3" > - <inject-code class="target" position="beginning"> - <insert-template name="inplace_div"/> - </inject-code> - </add-function> - <add-function signature="operator==(const QMatrix4x3&)" return-type="bool" /> </value-type> <value-type name="QMatrix4x4" since="4.6"> - <!-- Qt5: HAIRY TRICK ALERT ahead! Qt5 partially replaced 'qreal' by float. That had the side effect that all matrix types did not work any longer. @@ -2977,10 +2239,10 @@ The signature "QList<qreal>" is needed by the __reduce__ methods, but created by some other object used elsewhere. - After the matrix type was changed, "QList<float>" was nowhere created. + After the matrix type was changed, "QList<float>" was created nowhere. I don't know an explicit way to produce the right conversion function, so what I did - was to create a dummy function and immediately dele it again. + was to create a dummy function and immediately delete it again. This has the desired effect of creating the implicitly needed "QList<float>" conversion, although the dummy function goes away. @@ -2993,8 +2255,8 @@ <add-function signature="__repr__" return-type="PyObject*"> <inject-code class="target" position="beginning"> <insert-template name="repr_code_matrix"> - <replace from="%MATRIX_SIZE" to="16" /> - <replace from="%MATRIX_TYPE" to="float" /> + <replace from="%MATRIX_SIZE" to="16"/> + <replace from="%MATRIX_TYPE" to="float"/> </insert-template> </inject-code> </add-function> @@ -3002,8 +2264,8 @@ <add-function signature="__reduce__" return-type="PyObject*"> <inject-code class="target" position="beginning"> <insert-template name="reduce_code_matrix"> - <replace from="%MATRIX_TYPE" to="float" /> - <replace from="%MATRIX_SIZE" to="16" /> + <replace from="%MATRIX_TYPE" to="float"/> + <replace from="%MATRIX_SIZE" to="16"/> </insert-template> </inject-code> </add-function> @@ -3013,27 +2275,14 @@ <modify-function signature="QMatrix4x4(const float*)"> <modify-argument index="1"> - <replace-type modified-type="PySequence" /> + <replace-type modified-type="PySequence"/> </modify-argument> - <inject-code class="target" position="beginning"> - if (PySequence_Size(%PYARG_1) == 16) { - float values[16]; - for (int i=0; i < 16; i++) { - PyObject *pv = PySequence_Fast_GET_ITEM(%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> + <inject-code class="target" position="beginning" file="../glue/qtgui.cpp" snippet="qmatrix4x4"/> </modify-function> <modify-function signature="data()"> <inject-code class="target" position="beginning"> <insert-template name="matrix_data_function"> - <replace from="%MATRIX_SIZE" to="16" /> + <replace from="%MATRIX_SIZE" to="16"/> </insert-template> </inject-code> </modify-function> @@ -3044,15 +2293,7 @@ <modify-argument index="return"> <replace-type modified-type="PyTupleObject*"/> </modify-argument> - <inject-code class="target" position="beginning"> - float values[16]; - %CPPSELF.%FUNCTION_NAME(values); - %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> + <inject-code class="target" position="beginning" file="../glue/qtgui.cpp" snippet="qmatrix4x4-copydatato"/> </modify-function> <modify-function signature="inverted(bool*)const"> @@ -3074,21 +2315,7 @@ <modify-function signature="operator()(int,int)const" remove="all"/> <modify-function signature="operator()(int,int)" remove="all"/> <add-function signature="__mgetitem__" return-type="PyObject*"> - <inject-code> - if (PySequence_Check(_key)) { - Shiboken::AutoDecRef key(PySequence_Fast(_key, "Invalid matrix index.")); - if (PySequence_Fast_GET_SIZE(key.object()) == 2) { - PyObject *posx = PySequence_Fast_GET_ITEM(key.object(), 0); - PyObject *posy = PySequence_Fast_GET_ITEM(key.object(), 1); - Py_ssize_t x = PyInt_AsSsize_t(posx); - Py_ssize_t y = PyInt_AsSsize_t(posy); - float ret = (*%CPPSELF)(x,y); - return %CONVERTTOPYTHON[float](ret); - } - } - PyErr_SetString(PyExc_IndexError, "Invalid matrix index."); - return 0; - </inject-code> + <inject-code file="../glue/qtgui.cpp" snippet="qmatrix4x4-mgetitem"/> </add-function> </value-type> @@ -3098,8 +2325,8 @@ <add-function signature="__repr__" return-type="PyObject*"> <inject-code class="target" position="beginning"> <insert-template name="repr_code"> - <replace from="%REPR_FORMAT" to="%f, %f, %f, %f" /> - <replace from="%REPR_ARGS" to="%CPPSELF.scalar(), %CPPSELF.x(), %CPPSELF.y(), %CPPSELF.z()" /> + <replace from="%REPR_FORMAT" to="%f, %f, %f, %f"/> + <replace from="%REPR_ARGS" to="%CPPSELF.scalar(), %CPPSELF.x(), %CPPSELF.y(), %CPPSELF.z()"/> </insert-template> </inject-code> </add-function> @@ -3107,16 +2334,16 @@ <add-function signature="__reduce__" return-type="PyObject*"> <inject-code class="target" position="beginning"> <insert-template name="reduce_code"> - <replace from="%REDUCE_FORMAT" to="dddd" /> - <replace from="%REDUCE_ARGS" to="%CPPSELF.scalar(), %CPPSELF.x(), %CPPSELF.y(), %CPPSELF.z()" /> + <replace from="%REDUCE_FORMAT" to="dddd"/> + <replace from="%REDUCE_ARGS" to="%CPPSELF.scalar(), %CPPSELF.x(), %CPPSELF.y(), %CPPSELF.z()"/> </insert-template> </inject-code> </add-function> <!-- Qt5.5: XXX support the output variables! For now, I just suppressed the new methods. --> - <modify-function signature="getAxisAndAngle(float*,float*,float*,float*)const" since="5.5" remove="all" /> - <modify-function signature="getAxisAndAngle(QVector3D*,float*)const" since="5.5" remove="all" /> - <modify-function signature="getEulerAngles(float*,float*,float*)const" since="5.5" remove="all" /> + <modify-function signature="getAxisAndAngle(float*,float*,float*,float*)const" since="5.5" remove="all"/> + <modify-function signature="getAxisAndAngle(QVector3D*,float*)const" since="5.5" remove="all"/> + <modify-function signature="getEulerAngles(float*,float*,float*)const" since="5.5" remove="all"/> </value-type> <object-type name="QTouchEvent" since="4.6"> @@ -3126,16 +2353,16 @@ </object-type> <object-type name="QTouchDevice"> - <enum-type name="CapabilityFlag" flags="Capabilities" /> - <enum-type name="DeviceType" /> + <enum-type name="CapabilityFlag" flags="Capabilities"/> + <enum-type name="DeviceType"/> </object-type> <value-type name="QVector2D" since="4.6"> <add-function signature="__repr__" return-type="PyObject*"> <inject-code class="target" position="beginning"> <insert-template name="repr_code"> - <replace from="%REPR_FORMAT" to="%f, %f" /> - <replace from="%REPR_ARGS" to="%CPPSELF.x(), %CPPSELF.y()" /> + <replace from="%REPR_FORMAT" to="%f, %f"/> + <replace from="%REPR_ARGS" to="%CPPSELF.x(), %CPPSELF.y()"/> </insert-template> </inject-code> </add-function> @@ -3143,8 +2370,8 @@ <add-function signature="__reduce__" return-type="PyObject*"> <inject-code class="target" position="beginning"> <insert-template name="reduce_code"> - <replace from="%REDUCE_FORMAT" to="dd" /> - <replace from="%REDUCE_ARGS" to="%CPPSELF.x(), %CPPSELF.y()" /> + <replace from="%REDUCE_FORMAT" to="dd"/> + <replace from="%REDUCE_ARGS" to="%CPPSELF.x(), %CPPSELF.y()"/> </insert-template> </inject-code> </add-function> @@ -3152,8 +2379,8 @@ <add-function signature="toTuple" return-type="PyObject*"> <inject-code class="target" position="beginning"> <insert-template name="to_tuple"> - <replace from="%TT_FORMAT" to="dd" /> - <replace from="%TT_ARGS" to="%CPPSELF.x(), %CPPSELF.y()" /> + <replace from="%TT_FORMAT" to="dd"/> + <replace from="%TT_ARGS" to="%CPPSELF.x(), %CPPSELF.y()"/> </insert-template> </inject-code> </add-function> @@ -3166,8 +2393,8 @@ <add-function signature="__repr__" return-type="PyObject*"> <inject-code class="target" position="beginning"> <insert-template name="repr_code"> - <replace from="%REPR_FORMAT" to="%f, %f, %f" /> - <replace from="%REPR_ARGS" to="%CPPSELF.x(), %CPPSELF.y(), %CPPSELF.z()" /> + <replace from="%REPR_FORMAT" to="%f, %f, %f"/> + <replace from="%REPR_ARGS" to="%CPPSELF.x(), %CPPSELF.y(), %CPPSELF.z()"/> </insert-template> </inject-code> </add-function> @@ -3175,8 +2402,8 @@ <add-function signature="__reduce__" return-type="PyObject*"> <inject-code class="target" position="beginning"> <insert-template name="reduce_code"> - <replace from="%REDUCE_FORMAT" to="ddd" /> - <replace from="%REDUCE_ARGS" to="%CPPSELF.x(), %CPPSELF.y(), %CPPSELF.z()" /> + <replace from="%REDUCE_FORMAT" to="ddd"/> + <replace from="%REDUCE_ARGS" to="%CPPSELF.x(), %CPPSELF.y(), %CPPSELF.z()"/> </insert-template> </inject-code> </add-function> @@ -3184,8 +2411,8 @@ <add-function signature="toTuple" return-type="PyObject*"> <inject-code class="target" position="beginning"> <insert-template name="to_tuple"> - <replace from="%TT_FORMAT" to="ddd" /> - <replace from="%TT_ARGS" to="%CPPSELF.x(), %CPPSELF.y(), %CPPSELF.z()" /> + <replace from="%TT_FORMAT" to="ddd"/> + <replace from="%TT_ARGS" to="%CPPSELF.x(), %CPPSELF.y(), %CPPSELF.z()"/> </insert-template> </inject-code> </add-function> @@ -3198,8 +2425,8 @@ <add-function signature="__repr__" return-type="PyObject*"> <inject-code class="target" position="beginning"> <insert-template name="repr_code"> - <replace from="%REPR_FORMAT" to="%f, %f, %f, %f" /> - <replace from="%REPR_ARGS" to="%CPPSELF.x(), %CPPSELF.y(), %CPPSELF.z(), %CPPSELF.w()" /> + <replace from="%REPR_FORMAT" to="%f, %f, %f, %f"/> + <replace from="%REPR_ARGS" to="%CPPSELF.x(), %CPPSELF.y(), %CPPSELF.z(), %CPPSELF.w()"/> </insert-template> </inject-code> </add-function> @@ -3207,8 +2434,8 @@ <add-function signature="__reduce__" return-type="PyObject*"> <inject-code class="target" position="beginning"> <insert-template name="reduce_code"> - <replace from="%REDUCE_FORMAT" to="dddd" /> - <replace from="%REDUCE_ARGS" to="%CPPSELF.x(), %CPPSELF.y(), %CPPSELF.z(), %CPPSELF.w()" /> + <replace from="%REDUCE_FORMAT" to="dddd"/> + <replace from="%REDUCE_ARGS" to="%CPPSELF.x(), %CPPSELF.y(), %CPPSELF.z(), %CPPSELF.w()"/> </insert-template> </inject-code> </add-function> @@ -3216,8 +2443,8 @@ <add-function signature="toTuple" return-type="PyObject*"> <inject-code class="target" position="beginning"> <insert-template name="to_tuple"> - <replace from="%TT_FORMAT" to="dddd" /> - <replace from="%TT_ARGS" to="%CPPSELF.x(), %CPPSELF.y(), %CPPSELF.z(), %CPPSELF.w()" /> + <replace from="%TT_FORMAT" to="dddd"/> + <replace from="%TT_ARGS" to="%CPPSELF.x(), %CPPSELF.y(), %CPPSELF.z(), %CPPSELF.w()"/> </insert-template> </inject-code> </add-function> @@ -3243,7 +2470,7 @@ </object-type> <!-- This enum is present on QtCore --> - <suppress-warning text="enum 'QCoreApplication::ApplicationFlags' is specified in typesystem, but not declared" /> + <suppress-warning text="enum 'QCoreApplication::ApplicationFlags' is specified in typesystem, but not declared"/> <!-- Qt5: here the new QWindow stuff and what it pulls in --> <object-type name="QBackingStore"/> @@ -3266,12 +2493,35 @@ </extra-includes> </primitive-type> - <object-type name="QWindow"> + <object-type name="QWindow" delete-in-main-thread="true"> <enum-type name="AncestorMode"/> <enum-type name="Visibility"/> + <modify-function signature="raise()" rename="raise_"/> + <!-- see QWidget::nativeEvent(), QAbstractNativeEventFilter::nativeEventFilter() --> + <modify-function signature="nativeEvent(const QByteArray &,void*,long*)"> + <modify-argument index="3"> + <remove-argument/> + <conversion-rule class="native"> + <insert-template name="return_native_eventfilter_conversion_variables"/> + </conversion-rule> + </modify-argument> + <modify-argument index="return"> + <replace-type modified-type="PyObject"/> + <conversion-rule class="native"> + <insert-template name="return_native_eventfilter_conversion"/> + </conversion-rule> + </modify-argument> + <inject-code position="end"> + <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> - <!-- Qt5: not sure if this needs support, skipped for now --> - <rejection class="QWindow" function-name="nativeEvent"/>" <object-type name="QGuiApplication"> <extra-includes> @@ -3282,33 +2532,25 @@ <include file-name="QIcon" location="global"/> <include file-name="QLocale" location="global"/> </extra-includes> - <modify-function signature="QGuiApplication(int&,char**,int)" access="private" /> + <modify-function signature="QGuiApplication(int&,char**,int)" access="private"/> <add-function signature="QGuiApplication(QStringList)"> - <inject-code> - QGuiApplicationConstructor(%PYSELF, args, &%0); - </inject-code> + <inject-code file="../glue/qtgui.cpp" snippet="qguiapplication-1"/> </add-function> <add-function signature="QGuiApplication()"> - <inject-code> - PyObject *empty = PyTuple_New(2); - if (!PyTuple_SetItem(empty, 0, PyList_New(0))) { - QGuiApplicationConstructor(%PYSELF, empty, &%0); - } - </inject-code> + <inject-code file="../glue/qtgui.cpp" snippet="qguiapplication-2"/> </add-function> - <modify-function signature="exec()" rename="exec_" allow-thread="yes"/> - <inject-code class="native" file="glue/qguiapplication_init.cpp" position="beginning" /> + <inject-code class="native" position="beginning" file="../glue/qtgui.cpp" snippet="qguiapplication-init"/> </object-type> <object-type name="QOpenGLBuffer" since="5.0"> - <enum-type name="Access" /> - <enum-type name="RangeAccessFlag" flags="RangeAccessFlags" /> - <enum-type name="Type" /> - <enum-type name="UsagePattern" /> + <enum-type name="Access"/> + <enum-type name="RangeAccessFlag" flags="RangeAccessFlags"/> + <enum-type name="Type"/> + <enum-type name="UsagePattern"/> </object-type> <object-type name="QOpenGLContext"> - <enum-type name="OpenGLModuleType" /> + <enum-type name="OpenGLModuleType"/> </object-type> <object-type name="QOpenGLContextGroup" since="5.0"/> <object-type name="QOpenGLDebugLogger" since="5.1"> @@ -3320,7 +2562,7 @@ <enum-type name="Severity" flags="Severities"/> </value-type> <object-type name="QOpenGLFramebufferObject" since="5.0"> - <enum-type name="Attachment" /> + <enum-type name="Attachment"/> <enum-type name="FramebufferRestorePolicy" since="5.7"/> </object-type> <value-type name="QOpenGLFramebufferObjectFormat"/> @@ -3538,11 +2780,9 @@ </modify-function> <modify-function signature="glGetStringi(unsigned int,unsigned int)"> <modify-argument index="return"> - <replace-type modified-type="QString" /> + <replace-type modified-type="QString"/> </modify-argument> - <inject-code class="target" position="beginning"> - <insert-template name="glGetString_return_QString"/> - </inject-code> + <inject-code class="target" position="beginning" file="../glue/qtcore.cpp" snippet="qstring-return"/> </modify-function> </object-type> <object-type name="QOpenGLFunctions" since="5.0"> @@ -3599,7 +2839,7 @@ </modify-function> <modify-function signature="glGetString(unsigned int)"> <modify-argument index="return"> - <replace-type modified-type="QString" /> + <replace-type modified-type="QString"/> </modify-argument> <inject-code class="target" position="beginning"> <insert-template name="glGetString_return_QString"/> @@ -3638,7 +2878,7 @@ --> <value-type name="QOpenGLPixelTransferOptions"/> <object-type name="QOpenGLShader" since="5.0"> - <enum-type name="ShaderTypeBit" flags="ShaderType" /> + <enum-type name="ShaderTypeBit" flags="ShaderType"/> </object-type> <object-type name="QOpenGLShaderProgram" since="5.0"> <modify-function signature="setAttributeArray(int,const float*,int,int)"> @@ -3737,9 +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> - - |