diff options
author | Renato Filho <renato.filho@openbossa.org> | 2010-08-13 18:22:22 -0300 |
---|---|---|
committer | Renato Filho <renato.filho@openbossa.org> | 2010-08-16 10:48:42 -0300 |
commit | 6bd528978cad1fe2c0e56cb35b270346da3fbbdd (patch) | |
tree | 35a8b0abaaddce5bd26f4c06a3bebbb19f014239 /libpyside | |
parent | 1162a844bd689958205d10eeff549451ee8cb93b (diff) |
Raise a error when try to modify a read-only property.
Add get function as mandatory in QProperty constructor.
Reviewer: Marcelo Lira <marcelo.lira@openbossa.org>
Luciano Wolf <luciano.wolf@openbossa.org>
Diffstat (limited to 'libpyside')
-rw-r--r-- | libpyside/qproperty.cpp | 12 | ||||
-rw-r--r-- | libpyside/signalmanager.cpp | 1 |
2 files changed, 7 insertions, 6 deletions
diff --git a/libpyside/qproperty.cpp b/libpyside/qproperty.cpp index f20c38727..b2d011e85 100644 --- a/libpyside/qproperty.cpp +++ b/libpyside/qproperty.cpp @@ -143,11 +143,11 @@ int qproperty_init(PyObject* self, PyObject* args, PyObject* kwds) "designable", "scriptable", "stored", "user", "constant", "final", 0}; if (!PyArg_ParseTupleAndKeywords(args, kwds, - "O|OOOOsbbbbbb:QtCore.QProperty", (char**) kwlist, - /*O*/&type, - /*OOOO*/ &(data->fget), &(data->fset), &(data->freset), &(data->fdel), - /*s*/&(data->doc), - /*bbbbbb*/&(data->designable), &(data->scriptable), &(data->stored), &(data->user), &(data->constant), &(data->final))) + "OO|OOOsbbbbbb:QtCore.QProperty", (char**) kwlist, + /*OO*/ &type, &(data->fget), + /*OOOO*/ &(data->fset), &(data->freset), &(data->fdel), + /*s*/ &(data->doc), + /*bbbbbb*/ &(data->designable), &(data->scriptable), &(data->stored), &(data->user), &(data->constant), &(data->final))) return 0; if (!data->fset && data->fget) @@ -187,6 +187,8 @@ int qproperty_set(PyObject* self, PyObject* source, PyObject* value) Py_INCREF(value); Shiboken::AutoDecRef result(PyObject_CallObject(data->fset, args)); return (result.isNull() ? -1 : 0); + } else { + PyErr_SetString(PyExc_AttributeError, "Attibute read only"); } return -1; } diff --git a/libpyside/signalmanager.cpp b/libpyside/signalmanager.cpp index 7482f016d..ed1573207 100644 --- a/libpyside/signalmanager.cpp +++ b/libpyside/signalmanager.cpp @@ -373,7 +373,6 @@ int SignalManager::qt_metacall(QObject* object, QMetaObject::Call call, int id, Py_XDECREF(pp_name); return id - metaObject->methodCount(); } - printf("access to property: %s-%s\n", mp.name(), mp.typeName()); typeResolver = Shiboken::TypeResolver::get(mp.typeName()); } |