aboutsummaryrefslogtreecommitdiffstats
path: root/PySide
diff options
context:
space:
mode:
authorHugo Parente Lima <hugo.pl@gmail.com>2011-04-27 10:04:26 -0300
committerHugo Parente Lima <hugo.pl@gmail.com>2012-03-08 16:54:15 -0300
commitc4225d063d7e78c6a761004745ccda4cf5188860 (patch)
treeead6ff084e937ca54557ee3bb261914c0518eb6e /PySide
parentadac79f08bff1e299eb61a2341383350602b4505 (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.xml48
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&amp;)">
- <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 &lt; lineCount; ++line) {
@@ -756,15 +743,31 @@
}
const char** xpm = (const char**) malloc (lineCount * sizeof(const char**));
- for (int line = 0; line &lt; lineCount; ++line) {
+ for (int line = 0; line &lt; 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&amp;)">
+ <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">