aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--libpyside/qsignal.cpp18
-rw-r--r--libpyside/qsignal.h1
-rw-r--r--tests/QtGui/qaction_test.py2
3 files changed, 19 insertions, 2 deletions
diff --git a/libpyside/qsignal.cpp b/libpyside/qsignal.cpp
index ec0610bb6..c6a824074 100644
--- a/libpyside/qsignal.cpp
+++ b/libpyside/qsignal.cpp
@@ -448,12 +448,28 @@ PyObject* signal_instance_connect(PyObject* self, PyObject* args, PyObject* kwds
if (match) {
Shiboken::AutoDecRef tupleArgs(PyList_AsTuple(pyArgs));
Shiboken::AutoDecRef pyMethod(PyObject_GetAttrString(source->source, "connect"));
- return PyObject_CallObject(pyMethod, tupleArgs);
+ return PyObject_CallObject(pyMethod, tupleArgs);
}
return 0;
}
+bool signal_connect(PyObject* source, const char* signal, PyObject* callback)
+{
+ Shiboken::AutoDecRef pyMethod(PyObject_GetAttrString(source, "connect"));
+ if (pyMethod.isNull())
+ return false;
+
+ Shiboken::AutoDecRef pyArgs(PyList_New(0));
+ Shiboken::AutoDecRef pySignature(PyString_FromString(signal));
+ PyList_Append(pyArgs, source);
+ PyList_Append(pyArgs, pySignature);
+ PyList_Append(pyArgs, callback);
+ Shiboken::AutoDecRef tupleArgs(PyList_AsTuple(pyArgs));
+
+ return PyObject_CallObject(pyMethod, tupleArgs);
+}
+
PyObject* signal_instance_disconnect(PyObject* self, PyObject* args)
{
SignalInstanceData *source = reinterpret_cast<SignalInstanceData*>(self);
diff --git a/libpyside/qsignal.h b/libpyside/qsignal.h
index 63eded132..b20834367 100644
--- a/libpyside/qsignal.h
+++ b/libpyside/qsignal.h
@@ -59,6 +59,7 @@ extern "C"
PYSIDE_API PyAPI_FUNC(PyObject*) signalNew(const char* name, ...);
PYSIDE_API void signalUpdateSource(PyObject* source);
+PYSIDE_API bool signal_connect(PyObject* source, const char* signal, PyObject* callback);
} //namespace PySide
diff --git a/tests/QtGui/qaction_test.py b/tests/QtGui/qaction_test.py
index ff7efbe50..b6a45d18b 100644
--- a/tests/QtGui/qaction_test.py
+++ b/tests/QtGui/qaction_test.py
@@ -5,7 +5,7 @@ from helper import UsesQApplication
class QPainterDrawText(UsesQApplication):
- def _cb(self, checked):
+ def _cb(self):
self._called = True
def testSignal(self):