aboutsummaryrefslogtreecommitdiffstats
path: root/sources/pyside6/libpyside/pysideslot.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'sources/pyside6/libpyside/pysideslot.cpp')
-rw-r--r--sources/pyside6/libpyside/pysideslot.cpp14
1 files changed, 10 insertions, 4 deletions
diff --git a/sources/pyside6/libpyside/pysideslot.cpp b/sources/pyside6/libpyside/pysideslot.cpp
index 3954f5efa..676a0bb16 100644
--- a/sources/pyside6/libpyside/pysideslot.cpp
+++ b/sources/pyside6/libpyside/pysideslot.cpp
@@ -18,6 +18,7 @@ struct SlotData
QByteArray name;
QByteArray args;
QByteArray resultType;
+ QByteArray tag; // QMetaMethod::tag()
};
struct PySideSlot
@@ -63,15 +64,17 @@ static PyTypeObject *PySideSlot_TypeF()
int slotTpInit(PyObject *self, PyObject *args, PyObject *kw)
{
static PyObject *emptyTuple = nullptr;
- static const char *kwlist[] = {"name", "result", nullptr};
+ static const char *kwlist[] = {"name", "result", "tag", nullptr};
char *argName = nullptr;
PyObject *argResult = nullptr;
+ char *tag = nullptr;
if (emptyTuple == nullptr)
emptyTuple = PyTuple_New(0);
- if (!PyArg_ParseTupleAndKeywords(emptyTuple, kw, "|sO:QtCore.Slot",
- const_cast<char **>(kwlist), &argName, &argResult)) {
+ if (!PyArg_ParseTupleAndKeywords(emptyTuple, kw, "|sOs:QtCore.Slot",
+ const_cast<char **>(kwlist),
+ &argName, &argResult, &tag)) {
return -1;
}
@@ -93,6 +96,9 @@ int slotTpInit(PyObject *self, PyObject *args, PyObject *kw)
if (argName)
data->slotData->name = argName;
+ if (tag)
+ data->slotData->tag = tag;
+
data->slotData->resultType = argResult
? PySide::Signal::getTypeName(argResult) : PySide::Signal::voidType();
@@ -132,7 +138,7 @@ PyObject *slotCall(PyObject *self, PyObject *args, PyObject * /* kw */)
Py_INCREF(capsule);
PyObject_SetAttr(callback, pySlotName, capsule);
}
- entryList->append({signature, returnType});
+ entryList->append({signature, returnType, data->slotData->tag});
//clear data
delete data->slotData;