diff options
author | Hugo Parente Lima <hugo.pl@gmail.com> | 2011-04-27 10:04:26 -0300 |
---|---|---|
committer | Hugo Parente Lima <hugo.pl@gmail.com> | 2012-03-08 16:54:15 -0300 |
commit | c4225d063d7e78c6a761004745ccda4cf5188860 (patch) | |
tree | ead6ff084e937ca54557ee3bb261914c0518eb6e /PySide | |
parent | adac79f08bff1e299eb61a2341383350602b4505 (diff) |
Fix bug 766 - "Constructor "QImage(const char* const xpm[])" missing"
Reviewer: Lauro Moura <lauro.neto@openbossa.org>
Marcelo Lira <marcelo.lira@openbossa.org>
Diffstat (limited to 'PySide')
-rw-r--r-- | PySide/QtGui/typesystem_gui_common.xml | 48 |
1 files changed, 28 insertions, 20 deletions
diff --git a/PySide/QtGui/typesystem_gui_common.xml b/PySide/QtGui/typesystem_gui_common.xml index 8882367f0..f15020db9 100644 --- a/PySide/QtGui/typesystem_gui_common.xml +++ b/PySide/QtGui/typesystem_gui_common.xml @@ -731,21 +731,8 @@ <modify-function signature="operator*()const" remove="all"/> <!-- ### --> </value-type> - <value-type name="QPixmap" > - <conversion-rule file="qpixmap_conversion.h" /> - <add-function signature="QPixmap(const QImage&)"> - <modify-argument index="1"> - <rename to="image"/> - </modify-argument> - <inject-code class="target" position="beginning"> - %0 = new %TYPE(QPixmap::fromImage(%1)); - </inject-code> - </add-function> - <modify-function signature="QPixmap(const char **)"> - <modify-argument index="1"> - <replace-type modified-type="PySequence" /> - </modify-argument> - <inject-code class="target" position="beginning"> + + <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) { @@ -756,15 +743,31 @@ } const char** xpm = (const char**) malloc (lineCount * sizeof(const char**)); - for (int line = 0; line < lineCount; ++line) { + for (int line = 0; line < lineCount; ++line) xpm[line] = PyString_AS_STRING(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 file="qpixmap_conversion.h" /> + <add-function signature="QPixmap(const QImage&)"> + <modify-argument index="1"> + <rename to="image"/> + </modify-argument> + <inject-code class="target" position="beginning"> + %0 = new %TYPE(QPixmap::fromImage(%1)); + </inject-code> + </add-function> + <modify-function signature="QPixmap(const char **)"> + <modify-argument index="1"> + <replace-type modified-type="PySequence" /> + </modify-argument> + <inject-code class="target" position="beginning"> + <insert-template name="load_xpm" /> </inject-code> </modify-function> @@ -997,8 +1000,14 @@ <modify-function signature="QImage(const uchar*,int,int,QImage::Format)" remove="all" /> <!-- ### --> - <!-- ### See bug 766 --> - <modify-function signature="QImage(const char**)" remove="all" /> + <modify-function signature="QImage(const char**)"> + <modify-argument index="1"> + <replace-type modified-type="PySequence" /> + </modify-argument> + <inject-code class="target" position="beginning"> + <insert-template name="load_xpm" /> + </inject-code> + </modify-function> <!-- ### "QImage(const char*,const char*)" is just an overload for "QImage(QString,const char*)" --> <modify-function signature="QImage(const char*,const char*)" remove="all" /> <!-- ### There is already an fromData with a QByteArray type (that is convertible from Python's str) as the first type. --> @@ -1014,7 +1023,6 @@ <!--### Obsolete in 4.3--> <modify-function signature="serialNumber()const" remove="all"/> <modify-function signature="textLanguages()const" remove="all"/> - <modify-function signature="QImage(const char**)" remove="all"/> <!--### end of obsolete section --> <modify-function signature="constBits()const" since="4.7"> |