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>
This commit is contained in:
Hugo Lima 2010-04-01 19:26:07 -03:00 • committed by Hugo Parente Lima
commit 826678cb91

View file

@ -1717,11 +1717,10 @@
</add-function> </add-function>
<add-function signature="toPyObject()" return-type="PyObject*"> <add-function signature="toPyObject()" return-type="PyObject*">
<inject-code class="target" position="beginning"> <inject-code class="target" position="beginning">
const char* type_name = %CPPSELF.typeName(); uint typeId = %CPPSELF.userType();
uint type_id = QMetaType::type(type_name); if (typeId == qMetaTypeId&lt;PyObjectHolder>()) {
if (!type_id || type_id > QVariant::UserType) {
%PYARG_0 = %CPPSELF.value&lt;PyObjectHolder>(); %PYARG_0 = %CPPSELF.value&lt;PyObjectHolder>();
} else if (type_id == QVariant::String) { } else if (typeId == QVariant::String) {
%PYARG_0 = %CONVERTTOPYTHON[QString](%CPPSELF.toString()); %PYARG_0 = %CONVERTTOPYTHON[QString](%CPPSELF.toString());
} else { } else {
%PYARG_0 = Py_None; %PYARG_0 = Py_None;
@ -1734,14 +1733,14 @@
if (%CPPSELF.isNull()) { if (%CPPSELF.isNull()) {
%PYARG_0 = Py_None; %PYARG_0 = Py_None;
Py_INCREF(Py_None); Py_INCREF(Py_None);
} else if (%CPPSELF.userType() == QMetaTypeId&lt;PyObjectHolder>::qt_metatype_id()) { } else if (%CPPSELF.userType() == qMetaTypeId&lt;PyObjectHolder>()) {
// emulate PyQt4 behaviour // emulate PyQt4 behaviour
PyObject* obj = %CPPSELF.value&lt;PyObjectHolder>(); PyObject* obj = %CPPSELF.value&lt;PyObjectHolder>();
if (PySequence_Check(obj)) if (PySequence_Check(obj))
%PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE]("QVariantList"); %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE]("QVariantList");
} }
if (!%PYARG_0) if (!%PYARG_0)
%PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%CPPSELF.typeName()); %PYARG_0 = %CONVERTTOPYTHON[%RETURN_TYPE](%CPPSELF.%FUNCTION_NAME());
</inject-code> </inject-code>
</modify-function> </modify-function>
<modify-function signature="toList()const"> <modify-function signature="toList()const">