QSignalSpy: Extract meta signal validation to the separate method

Change-Id: I37a74ea4487a437646815d3117ec8b0fd7073205
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
This commit is contained in:
Vitaly Fanaskov 2019-08-09 16:49:51 +02:00 committed by Volker Hilsheimer
parent 25354bd01a
commit 51567cbe21

View File

@ -110,12 +110,9 @@ public:
const QMetaObject * const mo = obj->metaObject();
const QMetaMethod signalMetaMethod = QMetaMethod::fromSignal(signal0);
const int sigIndex = signalMetaMethod.methodIndex();
if (!signalMetaMethod.isValid() ||
signalMetaMethod.methodType() != QMetaMethod::Signal) {
qWarning("QSignalSpy: Not a valid signal: '%s'",
signalMetaMethod.methodSignature().constData());
if (!isSignalMetaMethodValid(signalMetaMethod))
return;
}
if (!connectToSignal(obj, sigIndex))
return;
@ -166,6 +163,16 @@ private:
return connected;
}
static bool isSignalMetaMethodValid(const QMetaMethod &signal)
{
const bool valid = signal.isValid() && signal.methodType() == QMetaMethod::Signal;
if (!valid)
qWarning("QSignalSpy: Not a valid signal: '%s'", signal.methodSignature().constData());
return valid;
}
void initArgs(const QMetaMethod &member, const QObject *obj)
{
args.reserve(member.parameterCount());