diff options
author | Hugo Lima <hugo.lima@openbossa.org> | 2010-04-01 19:26:07 -0300 |
---|---|---|
committer | Hugo Parente Lima <hugo.pl@gmail.com> | 2010-04-06 17:11:24 -0300 |
commit | 826678cb91124784339c2a92118e82413ef03b5c (patch) | |
tree | a57f5c0c17a0b0b63242aa345df0dac6ef0f86d1 /PySide/QtCore | |
parent | 9b338f98571bd2d0433564014af3cf18e87788bd (diff) |
Do not handle QVariant user types as Python objects, only the real Python objects.
Reviewer: Anderson Lizardo <anderson.lizardo@openbossa.org>
Reviewer: Bruno Araújo <bruno.araujo@openbossa.org>
Diffstat (limited to 'PySide/QtCore')
-rw-r--r-- | PySide/QtCore/typesystem_core.xml | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/PySide/QtCore/typesystem_core.xml b/PySide/QtCore/typesystem_core.xml index d3a7904a3..62a963f94 100644 --- a/PySide/QtCore/typesystem_core.xml +++ b/PySide/QtCore/typesystem_core.xml @@ -1717,11 +1717,10 @@ </add-function> <add-function signature="toPyObject()" return-type="PyObject*"> <inject-code class="target" position="beginning"> - const char* type_name = %CPPSELF.typeName(); - uint type_id = QMetaType::type(type_name); - if (!type_id || type_id > QVariant::UserType) { + uint typeId = %CPPSELF.userType(); + if (typeId == qMetaTypeId<PyObjectHolder>()) { %PYARG_0 = %CPPSELF.value<PyObjectHolder>(); - } else if (type_id == QVariant::String) { + } else if (typeId == QVariant::String) { %PYARG_0 = %CONVERTTOPYTHON[QString](%CPPSELF.toString()); } else { %PYARG_0 = Py_None; @@ -1734,14 +1733,14 @@ if (%CPPSELF.isNull()) { %PYARG_0 = Py_None; Py_INCREF(Py_None); - } else if (%CPPSELF.userType() == QMetaTypeId<PyObjectHolder>::qt_metatype_id()) { + } else if (%CPPSELF.userType() == qMetaTypeId<PyObjectHolder>()) { // emulate PyQt4 behaviour PyObject* obj = %CPPSELF.value<PyObjectHolder>(); if (PySequence_Check(obj)) %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE]("QVariantList"); } if (!%PYARG_0) - %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%CPPSELF.typeName()); + %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%CPPSELF.%FUNCTION_NAME()); </inject-code> </modify-function> <modify-function signature="toList()const"> |