diff options
author | Luciano Wolf <luciano.wolf@openbossa.org> | 2009-12-08 14:56:59 -0300 |
---|---|---|
committer | Luciano Wolf <luciano.wolf@openbossa.org> | 2009-12-09 15:02:26 -0300 |
commit | 942c774827f332aa2b7d4baa90cb614a438239cd (patch) | |
tree | 5bbdd56230317e4a43abdda07f073d874e80bf06 /PySide/typesystem_templates.xml | |
parent | a2f9d30a4db04e6eee70f8713652aa06173efe18 (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.xml | 24 |
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(&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 > len) + start = len; + else if (_i1 < 0) + start = 0; + else + start = _i1; + + if (_i2 > len) + end = len; + else if (_i2 < 0) + end = 0; + else + end = _i2; + + sequence = new %TYPE(); + for (Py_ssize_t i = start; i < end; i++) + sequence->append(%CPPSELF->at(i)); + + return %CONVERTTOPYTHON[%TYPE](*sequence); + </template> </typesystem> |