Adjusted QTimer.singleShot custom code since all Signals are callable now.

Reviewed by Luciano Wolf <luciano.wolf@openbossa.org>
Reviewed by Renato Araújo <renato.filho@openbossa.org>
This commit is contained in:
Marcelo Lira 2010-10-13 15:46:07 -03:00
commit 0568190e8b

View file

@ -1778,42 +1778,28 @@
timer->setSingleShot(true); timer->setSingleShot(true);
timer->connect(timer, SIGNAL(timeout()), timer, SLOT(deleteLater())); timer->connect(timer, SIGNAL(timeout()), timer, SLOT(deleteLater()));
Shiboken::AutoDecRef result( if (PyObject_TypeCheck(%2, &amp;PySideSignalInstanceType)) {
PyObject_CallMethod(pyTimer, PySideSignalInstanceData* signalInstance = reinterpret_cast&lt;PySideSignalInstanceData*&gt;(%2);
const_cast&lt;char*>("connect"), Shiboken::AutoDecRef signalSignature(PyString_FromFormat("2%s", signalInstance->signature));
const_cast&lt;char*>("OsO"), Shiboken::AutoDecRef result(
pyTimer, PyObject_CallMethod(pyTimer,
SIGNAL(timeout()), const_cast&lt;char*>("connect"),
pyargs[1]) const_cast&lt;char*>("OsOO"),
); pyTimer,
Shiboken::BindingManager::instance().destroyWrapper((Shiboken::SbkBaseWrapper *)pyTimer); SIGNAL(timeout()),
timer->start(%1); signalInstance->source,
</inject-code> signalSignature.object())
</add-function> );
<!-- Second argument is a PySide.QtCore.Signal. See bug #362. --> } else {
<add-function signature="singleShot(int, PyObject*)" static="yes"> Shiboken::AutoDecRef result(
<inject-code class="target" position="beginning"> PyObject_CallMethod(pyTimer,
if (!PyObject_TypeCheck(%2, &amp;PySideSignalInstanceType)) const_cast&lt;char*>("connect"),
goto Sbk%TYPEFunc_%FUNCTION_NAME_TypeError; const_cast&lt;char*>("OsO"),
pyTimer,
// %FUNCTION_NAME() - disable generation of c++ function call SIGNAL(timeout()),
Shiboken::AutoDecRef emptyTuple(PyTuple_New(0)); pyargs[1])
PyObject* pyTimer = Shiboken::SbkType&lt;QTimer>()->tp_new(Shiboken::SbkType&lt;QTimer>(), emptyTuple, 0); );
Shiboken::SbkType&lt;QTimer>()->tp_init(pyTimer, emptyTuple, 0); }
QTimer* timer = Converter&lt;QTimer*>::toCpp(pyTimer);
timer->setSingleShot(true);
timer->connect(timer, SIGNAL(timeout()), timer, SLOT(deleteLater()));
PySideSignalInstanceData* signalInstance = reinterpret_cast&lt;PySideSignalInstanceData*&gt;(%2);
Shiboken::AutoDecRef signalSignature(PyString_FromFormat("2%s", signalInstance->signature));
Shiboken::AutoDecRef result(
PyObject_CallMethod(pyTimer,
const_cast&lt;char*>("connect"),
const_cast&lt;char*>("OsOO"),
pyTimer,
SIGNAL(timeout()),
signalInstance->source,
signalSignature.object())
);
Shiboken::BindingManager::instance().destroyWrapper((Shiboken::SbkBaseWrapper *)pyTimer); Shiboken::BindingManager::instance().destroyWrapper((Shiboken::SbkBaseWrapper *)pyTimer);
timer->start(%1); timer->start(%1);
</inject-code> </inject-code>