From aac16c8308dbb3c01cab5ba6df28680c4cf28a63 2009-04-21 14:20:41 From: florianlink Date: 2009-04-21 14:20:41 Subject: [PATCH] fixed attr lookup and support for invalid (unregistered) properties git-svn-id: svn://svn.code.sf.net/p/pythonqt/code/trunk@63 ea8d5007-eb21-0410-b261-ccb3ea6e24a9 --- diff --git a/src/PythonQtInstanceWrapper.cpp b/src/PythonQtInstanceWrapper.cpp index 09f8b16..abb3231 100644 --- a/src/PythonQtInstanceWrapper.cpp +++ b/src/PythonQtInstanceWrapper.cpp @@ -241,6 +241,7 @@ static PyObject *PythonQtInstanceWrapper_getattro(PyObject *obj,PyObject *name) if (superAttr) { return superAttr; } + PyErr_Clear(); if (!wrapper->_obj && !wrapper->_wrappedPtr) { QString error = QString("Trying to read attribute '") + attributeName + "' from a destroyed " + wrapper->classInfo()->className() + " object"; @@ -256,7 +257,12 @@ static PyObject *PythonQtInstanceWrapper_getattro(PyObject *obj,PyObject *name) switch (member._type) { case PythonQtMemberInfo::Property: if (wrapper->_obj) { - return PythonQtConv::QVariantToPyObject(member._property.read(wrapper->_obj)); + if (member._property.userType() != QVariant::Invalid) { + return PythonQtConv::QVariantToPyObject(member._property.read(wrapper->_obj)); + } else { + Py_INCREF(Py_None); + return Py_None; + } } break; case PythonQtMemberInfo::Slot: