diff options
author | Paulo Alcantara <paulo.alcantara@openbossa.org> | 2011-04-25 15:46:19 -0300 |
---|---|---|
committer | Hugo Parente Lima <hugo.pl@gmail.com> | 2012-03-08 16:54:16 -0300 |
commit | 5a80d6418bf2cbe5bb14819db5d022d52bec0d75 (patch) | |
tree | 15dad57b1b30e0dc646e168272079d531e5df8b3 /PySide/QtNetwork/typesystem_network.xml | |
parent | 8d6761b93d82f59b8a75af59043eecbbf16ec9c6 (diff) |
Fix bug #788 - "QIPv6Address.__getitem__ is missing."
Signed-off-by: Paulo Alcantara <paulo.alcantara@openbossa.org>
Reviewer: Renato Araujo <renato.araujo@openbossa.org>
Marcelo Lira <marcelo.lira@openbossa.org>
Diffstat (limited to 'PySide/QtNetwork/typesystem_network.xml')
-rw-r--r-- | PySide/QtNetwork/typesystem_network.xml | 43 |
1 files changed, 38 insertions, 5 deletions
diff --git a/PySide/QtNetwork/typesystem_network.xml b/PySide/QtNetwork/typesystem_network.xml index f261f3a4d..fd47356fa 100644 --- a/PySide/QtNetwork/typesystem_network.xml +++ b/PySide/QtNetwork/typesystem_network.xml @@ -239,12 +239,45 @@ <enum-type name="PermissionSpec"/> </value-type> - <rejection class="QIPv6Address" field-name="c"/> <value-type name="QIPv6Address"> - <!-- ### See bug 788 --> - <modify-function signature="operator[](int)const" remove="all" /> - <modify-function signature="operator[](int)" remove="all" /> - <!-- ### --> + <add-function signature="__len__"> + <inject-code class="target" position="beginning"> + return 16; + </inject-code> + </add-function> + <add-function signature="__getitem__"> + <inject-code class="target" position="beginning"> + if (_i >= 16) { + PyErr_SetString(PyExc_IndexError, "index out of bounds"); + return 0; + } + + if (_i < 0) + _i = 16 - abs(_i); + + return %CONVERTTOPYTHON[uint](%CPPSELF->c[_i]); + </inject-code> + </add-function> + <add-function signature="__len__"> + <inject-code class="target" position="beginning"> + return 16; + </inject-code> + </add-function> + <add-function signature="__setitem__"> + <inject-code class="target" position="beginning"> + if (_i >= 16) { + PyErr_SetString(PyExc_IndexError, "index out of bounds"); + return -1; + } + + if (_i < 0) + _i = 16 - abs(_i); + + %CPPSELF->c[_i] = %CONVERTTOCPP[quint8](_value); + + return 0; + </inject-code> + </add-function> </value-type> <value-type name="QAuthenticator" /> |