aboutsummaryrefslogtreecommitdiffstats
path: root/sources/pyside6/libpyside
diff options
context:
space:
mode:
authorChristian Tismer <tismer@stackless.com>2020-11-26 13:45:49 +0100
committerChristian Tismer <tismer@stackless.com>2020-11-26 16:36:03 +0000
commitfbd3ff2256a338a04f08923620216076be64106d (patch)
treec39b2b66388761ed8325a8ba1ce797cdf9da7bee /sources/pyside6/libpyside
parent86b0e5164da3ec9dc82c2bf6f0f7f012294f6e9d (diff)
property: fix an eight year olde bug that showed after the overhaul
The modernisation of pysideproperty.cpp creates an error when using @Property(str, constant=True) This could also be provoked before the improved version of Property by def getVal(self): return self.val variable = Property(str, getVal, constant=True, fset=None) because the None/NULL - handling was incomplete. Change-Id: Ib39dd3bdb62ba928164faa465ee3dd743262e245 Fixes: PYSIDE-1426 Pick-to: 5.15 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Diffstat (limited to 'sources/pyside6/libpyside')
-rw-r--r--sources/pyside6/libpyside/pysideproperty.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/sources/pyside6/libpyside/pysideproperty.cpp b/sources/pyside6/libpyside/pysideproperty.cpp
index a8757108b..857041ea0 100644
--- a/sources/pyside6/libpyside/pysideproperty.cpp
+++ b/sources/pyside6/libpyside/pysideproperty.cpp
@@ -213,9 +213,10 @@ static int qpropertyTpInit(PyObject *self, PyObject *args, PyObject *kwds)
if (pData->typeName.isEmpty())
PyErr_SetString(PyExc_TypeError, "Invalid property type or type name.");
- else if (pData->constant && (pData->fset || pData->notify))
- PyErr_SetString(PyExc_TypeError, "A constant property cannot have a WRITE method or a NOTIFY signal.");
-
+ else if (pData->constant && ((pData->fset && pData->fset != Py_None)
+ || (pData->notify && pData->notify != Py_None)))
+ PyErr_SetString(PyExc_TypeError, "A constant property cannot have a WRITE method or a "
+ "NOTIFY signal.");
if (!PyErr_Occurred()) {
Py_XINCREF(pData->fget);
Py_XINCREF(pData->fset);