aboutsummaryrefslogtreecommitdiffstats
path: root/PySide
diff options
context:
space:
mode:
authorLuciano Wolf <luciano.wolf@openbossa.org>2010-06-18 19:37:21 -0300
committerLuciano Wolf <luciano.wolf@openbossa.org>2010-06-21 17:38:41 -0300
commit54b69c3595cadfbfa5f65849d4dd106718920976 (patch)
treeacad023984f3be17d0e0db72206eedc446038604 /PySide
parent928e0b2795244d18a87764effe3d2a94504ac272 (diff)
Adding qInstallMsgHandler() method support.
Reviewer: Marcelo Lira <marcelo.lira@openbossa.org> Hugo Parente Lima <hugo.lima@openbossa.org>
Diffstat (limited to 'PySide')
-rw-r--r--PySide/QtCore/typesystem_core.xml32
1 files changed, 32 insertions, 0 deletions
diff --git a/PySide/QtCore/typesystem_core.xml b/PySide/QtCore/typesystem_core.xml
index 8b1bab61d..337697304 100644
--- a/PySide/QtCore/typesystem_core.xml
+++ b/PySide/QtCore/typesystem_core.xml
@@ -718,6 +718,38 @@
#include &lt;pyside.h&gt;
</inject-code>
+ <inject-code class="native" position="beginning">
+ // Define a global variable to handle qInstallMsgHandler callback
+ static PyObject* qtmsghandler = 0;
+
+ void
+ msghandlercallback(QtMsgType type, const char* msg)
+ {
+ Shiboken::AutoDecRef arglist(Shiboken::makeTuple(type, msg));
+ Shiboken::AutoDecRef ret(PyObject_CallObject(qtmsghandler, arglist));
+ }
+ </inject-code>
+ <add-function signature="qInstallMsgHandler(PyObject)" return-type="PyObject">
+ <inject-code class="target" position="beginning">
+ if (%PYARG_1 == Py_None) {
+ qInstallMsgHandler(0);
+ %PYARG_0 = qtmsghandler ? qtmsghandler : Py_None;
+ qtmsghandler = 0;
+ } else if (!PyCallable_Check(%PYARG_1)) {
+ PyErr_SetString(PyExc_TypeError, "parameter must be callable");
+ } else {
+ %PYARG_0 = qtmsghandler ? qtmsghandler : Py_None;
+ Py_INCREF(%PYARG_1);
+ qtmsghandler = %PYARG_1;
+ qInstallMsgHandler(msghandlercallback);
+ }
+
+ if (%PYARG_0 == Py_None)
+ Py_INCREF(%PYARG_0);
+
+ </inject-code>
+ </add-function>
+
<value-type name="QElapsedTimer" since="4.7"/>
<object-type name="QAbstractTableModel" polymorphic-id-expression="qobject_cast&lt;QAbstractTableModel*&gt;(%1)">