aboutsummaryrefslogtreecommitdiffstats
path: root/sources/pyside6/libpyside/pysideproperty.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'sources/pyside6/libpyside/pysideproperty.cpp')
-rw-r--r--sources/pyside6/libpyside/pysideproperty.cpp11
1 files changed, 6 insertions, 5 deletions
diff --git a/sources/pyside6/libpyside/pysideproperty.cpp b/sources/pyside6/libpyside/pysideproperty.cpp
index 1cea7d53d..c72bc381a 100644
--- a/sources/pyside6/libpyside/pysideproperty.cpp
+++ b/sources/pyside6/libpyside/pysideproperty.cpp
@@ -46,6 +46,7 @@ static PyObject *qProperty_fdel(PyObject *, void *);
static PyMethodDef PySidePropertyMethods[] = {
{"getter", reinterpret_cast<PyCFunction>(qPropertyGetter), METH_O, nullptr},
+ // "name@setter" handling
{"setter", reinterpret_cast<PyCFunction>(qPropertySetter), METH_O, nullptr},
{"resetter", reinterpret_cast<PyCFunction>(qPropertyResetter), METH_O, nullptr},
{"deleter", reinterpret_cast<PyCFunction>(qPropertyDeleter), METH_O, nullptr},
@@ -114,7 +115,7 @@ PyObject *PySidePropertyPrivate::getValue(PyObject *source) const
int PySidePropertyPrivate::setValue(PyObject *source, PyObject *value)
{
- if (fset && value) {
+ if (fset != nullptr && fset != Py_None && value != nullptr) {
Shiboken::AutoDecRef args(PyTuple_New(2));
PyTuple_SetItem(args, 0, source);
PyTuple_SetItem(args, 1, value);
@@ -123,7 +124,7 @@ int PySidePropertyPrivate::setValue(PyObject *source, PyObject *value)
Shiboken::AutoDecRef result(PyObject_CallObject(fset, args));
return (result.isNull() ? -1 : 0);
}
- if (fdel) {
+ if (fdel != nullptr && fdel != Py_None) {
Shiboken::AutoDecRef args(PyTuple_New(1));
PyTuple_SetItem(args, 0, source);
Py_INCREF(source);
@@ -136,7 +137,7 @@ int PySidePropertyPrivate::setValue(PyObject *source, PyObject *value)
int PySidePropertyPrivate::reset(PyObject *source)
{
- if (freset) {
+ if (freset != nullptr && freset != Py_None) {
Shiboken::AutoDecRef args(PyTuple_New(1));
Py_INCREF(source);
PyTuple_SetItem(args, 0, source);
@@ -559,12 +560,12 @@ bool isReadable(const PySideProperty * /* self */)
bool isWritable(const PySideProperty *self)
{
- return self->d->fset != nullptr;
+ return self->d->fset != nullptr && self->d->fset != Py_None;
}
bool hasReset(const PySideProperty *self)
{
- return self->d->freset != nullptr;
+ return self->d->freset != nullptr && self->d->freset != Py_None;
}
bool isDesignable(const PySideProperty *self)