aboutsummaryrefslogtreecommitdiffstats
path: root/libpyside/signalmanager.cpp
diff options
context:
space:
mode:
authorHugo Parente Lima <hugo.pl@gmail.com>2010-12-08 15:06:52 -0200
committerHugo Parente Lima <hugo.pl@gmail.com>2012-03-08 16:47:56 -0300
commitb4d1a3a4b616dffcd41247dc5584846372083db6 (patch)
tree30dd46ba82e819a5b639e72752aa45ed682a71e2 /libpyside/signalmanager.cpp
parente76fffc6173a43189b6133873fcc8e310bf6aa48 (diff)
Add support for extension into PySide properties.
This is used by PySide implementation of QDeclarativeListProperty.
Diffstat (limited to 'libpyside/signalmanager.cpp')
-rw-r--r--libpyside/signalmanager.cpp31
1 files changed, 2 insertions, 29 deletions
diff --git a/libpyside/signalmanager.cpp b/libpyside/signalmanager.cpp
index 5ff62bedf..31621a747 100644
--- a/libpyside/signalmanager.cpp
+++ b/libpyside/signalmanager.cpp
@@ -248,7 +248,6 @@ int SignalManager::qt_metacall(QObject* object, QMetaObject::Call call, int id,
PySideProperty* pp = 0;
PyObject* pp_name = 0;
QMetaProperty mp;
- Shiboken::TypeResolver* typeResolver = 0;
PyObject* pySelf = 0;
if (call != QMetaObject::InvokeMetaMethod) {
@@ -262,49 +261,23 @@ int SignalManager::qt_metacall(QObject* object, QMetaObject::Call call, int id,
pp_name = PyString_FromString(mp.name());
pp = Property::getObject(pySelf, pp_name);
if (!pp) {
- qWarning("Invalid property.");
+ qWarning("Invalid property: %s.", mp.name());
Py_XDECREF(pp_name);
return id - metaObject->methodCount();
}
- typeResolver = Shiboken::TypeResolver::get(mp.typeName());
- Q_ASSERT(typeResolver);
}
switch(call) {
#ifndef QT_NO_PROPERTIES
case QMetaObject::ReadProperty:
- {
- Shiboken::GilState gil;
- PyObject* value = Property::getValue(pp, pySelf);
- if (value) {
- typeResolver->toCpp(value, &args[0]);
- Py_DECREF(value);
- } else if (PyErr_Occurred()) {
- PyErr_Print(); // Clear any errors but print them to stderr
- }
- break;
- }
-
case QMetaObject::WriteProperty:
- {
- Shiboken::GilState gil;
- Shiboken::AutoDecRef value(typeResolver->toPython(args[0]));
- Property::setValue(pp, pySelf, value);
- break;
- }
-
case QMetaObject::ResetProperty:
- {
- Shiboken::GilState gil;
- Property::reset(pp, pp_name);
- break;
- }
-
case QMetaObject::QueryPropertyDesignable:
case QMetaObject::QueryPropertyScriptable:
case QMetaObject::QueryPropertyStored:
case QMetaObject::QueryPropertyEditable:
case QMetaObject::QueryPropertyUser:
+ pp->d->metaCallHandler(pp, pySelf, call, args);
break;
#endif
case QMetaObject::InvokeMetaMethod: