aboutsummaryrefslogtreecommitdiffstats
path: root/PySide/typesystem_templates.xml
diff options
context:
space:
mode:
authorLuciano Wolf <luciano.wolf@openbossa.org>2009-12-08 14:56:59 -0300
committerLuciano Wolf <luciano.wolf@openbossa.org>2009-12-09 15:02:26 -0300
commit942c774827f332aa2b7d4baa90cb614a438239cd (patch)
tree5bbdd56230317e4a43abdda07f073d874e80bf06 /PySide/typesystem_templates.xml
parenta2f9d30a4db04e6eee70f8713652aa06173efe18 (diff)
Support slice operator into QStringList.
Reviewed by Hugo Parente Lima <hugo.lima@openbossa.org>
Diffstat (limited to 'PySide/typesystem_templates.xml')
-rw-r--r--PySide/typesystem_templates.xml24
1 files changed, 24 insertions, 0 deletions
diff --git a/PySide/typesystem_templates.xml b/PySide/typesystem_templates.xml
index f9ed022fb..cc283e9f1 100644
--- a/PySide/typesystem_templates.xml
+++ b/PySide/typesystem_templates.xml
@@ -22,6 +22,30 @@
%RETURN_TYPE retval_ = %CPPSELF.%FUNCTION_NAME(&amp;ok_, %1);
%PYARG_0 = PyTuple_Pack(2, %CONVERTTOPYTHON[%RETURN_TYPE](retval_), %CONVERTTOPYTHON[%RETURN_TYPE](ok_));
</template>
+ <template name="get_slice">
+ %TYPE* sequence;
+ Py_ssize_t start, end;
+ Py_ssize_t len = %CPPSELF->count();
+ if (_i1 &gt; len)
+ start = len;
+ else if (_i1 &lt; 0)
+ start = 0;
+ else
+ start = _i1;
+
+ if (_i2 &gt; len)
+ end = len;
+ else if (_i2 &lt; 0)
+ end = 0;
+ else
+ end = _i2;
+
+ sequence = new %TYPE();
+ for (Py_ssize_t i = start; i &lt; end; i++)
+ sequence->append(%CPPSELF->at(i));
+
+ return %CONVERTTOPYTHON[%TYPE](*sequence);
+ </template>
</typesystem>