From 04c639a56aeff19504fa7db82e79fffa5132244c 2011-10-18 15:23:27 From: florianlink Date: 2011-10-18 15:23:27 Subject: [PATCH] added error printing for connect/disconnect git-svn-id: svn://svn.code.sf.net/p/pythonqt/code/trunk@197 ea8d5007-eb21-0410-b261-ccb3ea6e24a9 --- diff --git a/src/PythonQtStdDecorators.cpp b/src/PythonQtStdDecorators.cpp index 24550dc..02f3044 100644 --- a/src/PythonQtStdDecorators.cpp +++ b/src/PythonQtStdDecorators.cpp @@ -46,6 +46,7 @@ bool PythonQtStdDecorators::connect(QObject* sender, const QByteArray& signal, PyObject* callable) { + bool result = false; QByteArray signalTmp; char first = signal.at(0); if (first>='0' && first<='9') { @@ -55,10 +56,14 @@ bool PythonQtStdDecorators::connect(QObject* sender, const QByteArray& signal, P } if (sender) { - return PythonQt::self()->addSignalHandler(sender, signalTmp, callable); - } else { - return false; + result = PythonQt::self()->addSignalHandler(sender, signalTmp, callable); + if (!result) { + if (sender->metaObject()->indexOfSignal(QMetaObject::normalizedSignature(signalTmp.constData()+1)) == -1) { + qWarning("PythonQt: QObject::connect() signal '%s' does not exist on %s", signal.constData(), sender->metaObject()->className()); + } + } } + return result; } bool PythonQtStdDecorators::connect(QObject* sender, const QByteArray& signal, QObject* receiver, const QByteArray& slot) @@ -87,6 +92,7 @@ bool PythonQtStdDecorators::connect(QObject* sender, const QByteArray& signal, Q bool PythonQtStdDecorators::disconnect(QObject* sender, const QByteArray& signal, PyObject* callable) { + bool result = false; QByteArray signalTmp; char first = signal.at(0); if (first>='0' && first<='9') { @@ -95,10 +101,14 @@ bool PythonQtStdDecorators::disconnect(QObject* sender, const QByteArray& signal signalTmp = "2" + signal; } if (sender) { - return PythonQt::self()->removeSignalHandler(sender, signalTmp, callable); - } else { - return false; + result = PythonQt::self()->removeSignalHandler(sender, signalTmp, callable); + if (!result) { + if (sender->metaObject()->indexOfSignal(QMetaObject::normalizedSignature(signalTmp.constData()+1)) == -1) { + qWarning("PythonQt: QObject::disconnect() signal '%s' does not exist on %s", signal.constData(), sender->metaObject()->className()); + } + } } + return result; } bool PythonQtStdDecorators::disconnect(QObject* sender, const QByteArray& signal, QObject* receiver, const QByteArray& slot)