// Emit a signal. static PyObject *pyqtBoundSignal_emit(PyObject *self, PyObject *args) { qpycore_pyqtBoundSignal *bs = (qpycore_pyqtBoundSignal *)self; if (!bs->bound_qobject->signalsBlocked()) { int signal_index = bs->bound_qobject->metaObject()->indexOfSignal(bs->bound_overload->signature.constData() + 1); Q_ASSERT(signal_index >= 0); if (!qpycore_emit(bs->bound_qobject, signal_index, bs->bound_overload, args)) return 0; } Py_INCREF(Py_None); return Py_None; }
// Emit a signal. static PyObject *pyqtBoundSignal_emit(PyObject *self, PyObject *args) { qpycore_pyqtBoundSignal *bs = (qpycore_pyqtBoundSignal *)self; if (!bs->bound_qobject->signalsBlocked()) { Chimera::Signature *signature = bs->unbound_signal->signature; int mo_index = bs->bound_qobject->metaObject()->indexOfSignal(signature->signature.constData() + 1); if (mo_index < 0) { PyErr_Format(PyExc_AttributeError, "signal was not defined in the first super-class of class '%s'", Py_TYPE(bs->bound_pyobject)->tp_name); return 0; } // Use the docstring if there is one and it is auto-generated. const char *docstring = bs->unbound_signal->docstring; if (!docstring || *docstring != '\1') { docstring = signature->py_signature.constData(); } else { // Skip the auto-generated marker. ++docstring; } if (!qpycore_emit(bs->bound_qobject, mo_index, signature, docstring, args)) return 0; } Py_INCREF(Py_None); return Py_None; }