aboutsummaryrefslogtreecommitdiffstats
path: root/PySide
diff options
context:
space:
mode:
authorHugo Parente Lima <hugo.pl@gmail.com>2011-07-15 17:47:45 -0300
committerHugo Parente Lima <hugo.pl@gmail.com>2012-03-08 16:54:36 -0300
commit17e3d0da85c7dc98ab5ff4b69b7a839ab16627ef (patch)
tree1dd91c1efe78df02c82a3dadd4b73754b3ae857d /PySide
parent48a1b539a4c0ca08cda976fa1f68f4fd02f18dd5 (diff)
Fix bug 924 - "Allow QScriptValue to be accessed via []"
Reviewer: Marcelo Lira <marcelo.lira@openbossa.org> Renato Araújo <renato.filho@openbossa.org>
Diffstat (limited to 'PySide')
-rw-r--r--PySide/QtScript/typesystem_script.xml13
1 files changed, 13 insertions, 0 deletions
diff --git a/PySide/QtScript/typesystem_script.xml b/PySide/QtScript/typesystem_script.xml
index 870aec089..8c7ac10b2 100644
--- a/PySide/QtScript/typesystem_script.xml
+++ b/PySide/QtScript/typesystem_script.xml
@@ -49,6 +49,19 @@
<enum-type name="PropertyFlag" flags="PropertyFlags"/>
<enum-type name="ResolveFlag" flags="ResolveFlags"/>
<enum-type name="SpecialValue"/>
+ <add-function signature="__mgetitem__">
+ <inject-code>
+ Shiboken::AutoDecRef key(PyObject_Str(_key));
+ QVariant res = %CPPSELF.property(PyString_AS_STRING(key.object())).toVariant();
+ if (res.isValid()) {
+ return %CONVERTTOPYTHON[QVariant](res);
+ } else {
+ PyObject* errorType = PyInt_Check(_key) ? PyExc_IndexError : PyExc_KeyError;
+ PyErr_SetString(errorType, "Key not found.");
+ return 0;
+ }
+ </inject-code>
+ </add-function>
</value-type>
<object-type name="QScriptValueIterator"/>
</typesystem>