From 3f6c11762e55942f530737b6ed6528680fb675b5 Mon Sep 17 00:00:00 2001 From: Renato Filho Date: Mon, 17 May 2010 18:56:00 -0300 Subject: Implemented support to connection type. Reviewer: Hugo Parente Lima , Luciano Wolf --- libpyside/qsignal.cpp | 9 ++++++--- tests/signals/signal_object_test.py | 8 ++++++++ 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/libpyside/qsignal.cpp b/libpyside/qsignal.cpp index 9274c483d..7cfa9f99d 100644 --- a/libpyside/qsignal.cpp +++ b/libpyside/qsignal.cpp @@ -348,9 +348,9 @@ void signal_instance_initialize(PyObject* instance, PyObject* name, SignalData* PyObject* signal_instance_connect(PyObject* self, PyObject* args, PyObject* kwds) { - PyObject *slot; - PyObject *type; - static const char *kwlist[] = {"type", 0}; + PyObject *slot = 0; + PyObject *type = 0; + static const char *kwlist[] = {"slot", "type", 0}; if (!PyArg_ParseTupleAndKeywords(args, kwds, "O|O:"SIGNAL_CLASS_NAME, (char**) kwlist, &slot, &type)) @@ -384,6 +384,9 @@ PyObject* signal_instance_connect(PyObject* self, PyObject* args, PyObject* kwds match = true; } + if (type) + PyList_Append(pyArgs, type); + if (match) { Shiboken::AutoDecRef tupleArgs(PyList_AsTuple(pyArgs)); Shiboken::AutoDecRef pyMethod(PyObject_GetAttrString(source->source, "connect")); diff --git a/tests/signals/signal_object_test.py b/tests/signals/signal_object_test.py index ead4b68b9..29c6be018 100644 --- a/tests/signals/signal_object_test.py +++ b/tests/signals/signal_object_test.py @@ -60,5 +60,13 @@ class SignalObjectTest(UsesQCoreApplication): self.app.exec_() self.assert_(self._cb_called) + def testConnectionType(self): + o = MyObject() + o.timeout.connect(self.cb, type=Qt.DirectConnection) + o.start(100) + self.app.exec_() + self.assert_(self._cb_called) + + if __name__ == '__main__': unittest.main() -- cgit v1.2.3