diff options
author | Marcelo Lira <marcelo.lira@openbossa.org> | 2011-10-20 18:07:49 -0300 |
---|---|---|
committer | Hugo Parente Lima <hugo.pl@gmail.com> | 2012-03-08 16:56:19 -0300 |
commit | 8145f2a7e26f8af918ed9a769abe1c5f6a4399ee (patch) | |
tree | 75df939c8cd3ab28dcb8bd513d204aa8eaa07941 | |
parent | 25638d3f8089874d924b631a2e0a8a873e415f61 (diff) |
Added converter for primitive type QModelIndexList.
-rw-r--r-- | PySide/QtCore/typesystem_core.xml | 35 | ||||
-rw-r--r-- | PySide/QtGui/typesystem_gui_common.xml | 1 | ||||
-rw-r--r-- | PySide/typesystem_templates.xml | 18 |
3 files changed, 35 insertions, 19 deletions
diff --git a/PySide/QtCore/typesystem_core.xml b/PySide/QtCore/typesystem_core.xml index f1af0a58..53002d0a 100644 --- a/PySide/QtCore/typesystem_core.xml +++ b/PySide/QtCore/typesystem_core.xml @@ -516,23 +516,6 @@ } </inject-code> - <template name="cpplist_to_pylist_convertion"> - PyObject* %out = PyList_New((int) %in.size()); - %INTYPE::const_iterator it = %in.begin(); - for (int idx = 0; it != %in.end(); ++it, ++idx) { - %INTYPE_0 cppItem(*it); - PyList_SET_ITEM(%out, idx, %CONVERTTOPYTHON[%INTYPE_0](cppItem)); - } - return %out; - </template> - <template name="pyseq_to_cpplist_convertion"> - for (int i = 0; i < PySequence_Size(%in); i++) { - Shiboken::AutoDecRef pyItem(PySequence_GetItem(%in, i)); - %OUTTYPE_0 cppItem = %CONVERTTOCPP[%OUTTYPE_0](pyItem); - %out << cppItem; - } - </template> - <primitive-type name="QStringList"> <include file-name="QStringList" location="global"/> <conversion-rule file="qstringlist_conversions.h"> @@ -551,6 +534,24 @@ </conversion-rule> </primitive-type> + <primitive-type name="QModelIndexList"> + <include file-name="qabstractitemmodel.h" location="global"/> + <conversion-rule> + <native-to-target> + <insert-template name="cpplist_to_pylist_convertion"> + <replace from="%INTYPE_0" to="QModelIndex" /> + </insert-template> + </native-to-target> + <target-to-native> + <add-conversion type="PySequence"> + <insert-template name="pyseq_to_cpplist_convertion"> + <replace from="%OUTTYPE_0" to="QModelIndex" /> + </insert-template> + </add-conversion> + </target-to-native> + </conversion-rule> + </primitive-type> + <container-type name="QSet" type="set"> <include file-name="QSet" location="global"/> <conversion-rule file="qset_conversions.h"> diff --git a/PySide/QtGui/typesystem_gui_common.xml b/PySide/QtGui/typesystem_gui_common.xml index 6a64addb..4ebccf62 100644 --- a/PySide/QtGui/typesystem_gui_common.xml +++ b/PySide/QtGui/typesystem_gui_common.xml @@ -2216,7 +2216,6 @@ <object-type name="QItemSelectionModel"> <enum-type name="SelectionFlag" flags="SelectionFlags"/> </object-type> - <primitive-type name="QModelIndexList"/> <object-type name="QListView"> <enum-type name="Flow"/> <enum-type name="LayoutMode"/> diff --git a/PySide/typesystem_templates.xml b/PySide/typesystem_templates.xml index afad4bcb..bf7abd14 100644 --- a/PySide/typesystem_templates.xml +++ b/PySide/typesystem_templates.xml @@ -381,5 +381,21 @@ %PYARG_0 = Py_BuildValue("%TT_FORMAT", %TT_ARGS); </template> -</typesystem> + <template name="cpplist_to_pylist_convertion"> + PyObject* %out = PyList_New((int) %in.size()); + %INTYPE::const_iterator it = %in.begin(); + for (int idx = 0; it != %in.end(); ++it, ++idx) { + %INTYPE_0 cppItem(*it); + PyList_SET_ITEM(%out, idx, %CONVERTTOPYTHON[%INTYPE_0](cppItem)); + } + return %out; + </template> + <template name="pyseq_to_cpplist_convertion"> + for (int i = 0; i < PySequence_Size(%in); i++) { + Shiboken::AutoDecRef pyItem(PySequence_GetItem(%in, i)); + %OUTTYPE_0 cppItem = %CONVERTTOCPP[%OUTTYPE_0](pyItem); + %out << cppItem; + } + </template> +</typesystem> |