From 800fb4613cb61dbff33750ec0ab4b18ca3369c6c Mon Sep 17 00:00:00 2001 From: renatofilho Date: Fri, 22 Oct 2010 16:20:58 -0300 Subject: Put signals register before property registration. Reviewer: Hugo Parente Lima Luciano Wolf --- libpyside/dynamicqmetaobject.cpp | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) (limited to 'libpyside') diff --git a/libpyside/dynamicqmetaobject.cpp b/libpyside/dynamicqmetaobject.cpp index 88497843a..a16a35469 100644 --- a/libpyside/dynamicqmetaobject.cpp +++ b/libpyside/dynamicqmetaobject.cpp @@ -404,12 +404,13 @@ DynamicQMetaObject* DynamicQMetaObject::createBasedOn(PyObject* pyObj, PyTypeObj className = className.mid(className.lastIndexOf('.')+1); DynamicQMetaObject *mo = new PySide::DynamicQMetaObject(className.toAscii(), base); + QList properties; + while (PyDict_Next(type->tp_dict, &pos, &key, &value)) { - //Register properties - if (value->ob_type == &PySideQPropertyType) { - mo->addProperty(PyString_AsString(key), value); - } + //Leave the properties to be register after signals because of notify object + if (value->ob_type == &PySideQPropertyType) + properties.append(key); //Register signals if (value->ob_type == &PySideSignalType) { @@ -440,6 +441,13 @@ DynamicQMetaObject* DynamicQMetaObject::createBasedOn(PyObject* pyObj, PyTypeObj } } } + + //Register properties + foreach(PyObject* key, properties) { + PyObject* value = PyDict_GetItem(type->tp_dict, key); + mo->addProperty(PyString_AsString(key), value); + } + return mo; } -- cgit v1.2.3