diff options
author | Vitaly Fanaskov <vitaly.fanaskov@qt.io> | 2019-08-09 16:39:19 +0200 |
---|---|---|
committer | Volker Hilsheimer <volker.hilsheimer@qt.io> | 2019-08-13 08:36:41 +0000 |
commit | 25354bd01a7fefab45f81d946de205ead2694231 (patch) | |
tree | 324d151ba3aec11087b0570386b44f4f6466ad92 /src/testlib/qsignalspy.h | |
parent | 9dc594b2bf3572aa5df3ec3ad2b9842c96e8290d (diff) |
QSignalSpy: Extract connection functionality into a separate method
Change-Id: Ie6406c79b070cba715250711578cd3d80c089559
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Diffstat (limited to 'src/testlib/qsignalspy.h')
-rw-r--r-- | src/testlib/qsignalspy.h | 26 |
1 files changed, 16 insertions, 10 deletions
diff --git a/src/testlib/qsignalspy.h b/src/testlib/qsignalspy.h index 0285080662..91d23db715 100644 --- a/src/testlib/qsignalspy.h +++ b/src/testlib/qsignalspy.h @@ -59,7 +59,6 @@ public: explicit QSignalSpy(const QObject *obj, const char *aSignal) : m_waiting(false) { - static const int memberOffset = QObject::staticMetaObject.methodCount(); if (!obj) { qWarning("QSignalSpy: Cannot spy on a null object"); return; @@ -83,11 +82,9 @@ public: return; } - if (!QMetaObject::connect(obj, sigIndex, this, memberOffset, - Qt::DirectConnection, nullptr)) { - qWarning("QSignalSpy: QMetaObject::connect returned false. Unable to connect."); + if (!connectToSignal(obj, sigIndex)) return; - } + sig = ba; initArgs(mo->method(sigIndex), obj); } @@ -100,7 +97,6 @@ public: QSignalSpy(const typename QtPrivate::FunctionPointer<Func>::Object *obj, Func signal0) : m_waiting(false) { - static const int memberOffset = QObject::staticMetaObject.methodCount(); if (!obj) { qWarning("QSignalSpy: Cannot spy on a null object"); return; @@ -121,11 +117,9 @@ public: return; } - if (!QMetaObject::connect(obj, sigIndex, this, memberOffset, - Qt::DirectConnection, nullptr)) { - qWarning("QSignalSpy: QMetaObject::connect returned false. Unable to connect."); + if (!connectToSignal(obj, sigIndex)) return; - } + sig = signalMetaMethod.methodSignature(); initArgs(mo->method(sigIndex), obj); } @@ -160,6 +154,18 @@ public: } private: + bool connectToSignal(const QObject *sender, int sigIndex) + { + static const int memberOffset = QObject::staticMetaObject.methodCount(); + const bool connected = QMetaObject::connect( + sender, sigIndex, this, memberOffset, Qt::DirectConnection, nullptr); + + if (!connected) + qWarning("QSignalSpy: QMetaObject::connect returned false. Unable to connect."); + + return connected; + } + void initArgs(const QMetaMethod &member, const QObject *obj) { args.reserve(member.parameterCount()); |