summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMarc Mutz <marc.mutz@qt.io>2024-03-21 17:21:19 +0100
committerMarc Mutz <marc.mutz@qt.io>2024-04-24 21:36:49 +0200
commitad755020e103b7d3c4f66173c74cf80f6bca3144 (patch)
tree74ce099673bb71290e74b505981747177808fe9d /src
parent88b5b1bce978c0e1a67e66561b65251439fe4281 (diff)
QSignalSpy: de-inline verify() helper functions
Now that we're moving the code anyway, also move their declarations into the general private: section of the class. Task-number: QTBUG-123544 Change-Id: I6b1e7006b73b710daa4b511b2fd643293a3d4844 Reviewed-by: David Faure <david.faure@kdab.com>
Diffstat (limited to 'src')
-rw-r--r--src/testlib/qsignalspy.cpp34
-rw-r--r--src/testlib/qsignalspy.h43
2 files changed, 37 insertions, 40 deletions
diff --git a/src/testlib/qsignalspy.cpp b/src/testlib/qsignalspy.cpp
index 3de14e16da..a60946b7c1 100644
--- a/src/testlib/qsignalspy.cpp
+++ b/src/testlib/qsignalspy.cpp
@@ -172,6 +172,40 @@ bool QSignalSpy::isObjectValid(const QObject *object)
return valid;
}
+QSignalSpy::ObjectSignal QSignalSpy::verify(const QObject *obj, const char *aSignal)
+{
+ if (!isObjectValid(obj))
+ return {};
+
+ if (!aSignal) {
+ qWarning("QSignalSpy: Null signal name is not valid");
+ return {};
+ }
+
+ if (((aSignal[0] - '0') & 0x03) != QSIGNAL_CODE) {
+ qWarning("QSignalSpy: Not a valid signal, use the SIGNAL macro");
+ return {};
+ }
+
+ const QByteArray ba = QMetaObject::normalizedSignature(aSignal + 1);
+ const QMetaObject * const mo = obj->metaObject();
+ const int sigIndex = mo->indexOfMethod(ba.constData());
+ if (sigIndex < 0) {
+ qWarning("QSignalSpy: No such signal: '%s'", ba.constData());
+ return {};
+ }
+
+ return verify(obj, mo->method(sigIndex));
+}
+
+QSignalSpy::ObjectSignal QSignalSpy::verify(const QObject *obj, QMetaMethod signal)
+{
+ if (isObjectValid(obj) && isSignalMetaMethodValid(signal))
+ return {obj, signal};
+ else
+ return {};
+}
+
void QSignalSpy::initArgs(const QMetaMethod &member, const QObject *obj)
{
QMutexLocker locker(&m_mutex);
diff --git a/src/testlib/qsignalspy.h b/src/testlib/qsignalspy.h
index 7ae58ba82b..073e5aa8c0 100644
--- a/src/testlib/qsignalspy.h
+++ b/src/testlib/qsignalspy.h
@@ -27,35 +27,6 @@ class QSignalSpy: public QObject, public QList<QList<QVariant> >
public:
explicit QSignalSpy(const QObject *obj, const char *aSignal)
: QSignalSpy(verify(obj, aSignal)) {}
-
-private:
- static ObjectSignal verify(const QObject *obj, const char *aSignal)
- {
- if (!isObjectValid(obj))
- return {};
-
- if (!aSignal) {
- qWarning("QSignalSpy: Null signal name is not valid");
- return {};
- }
-
- if (((aSignal[0] - '0') & 0x03) != QSIGNAL_CODE) {
- qWarning("QSignalSpy: Not a valid signal, use the SIGNAL macro");
- return {};
- }
-
- const QByteArray ba = QMetaObject::normalizedSignature(aSignal + 1);
- const QMetaObject * const mo = obj->metaObject();
- const int sigIndex = mo->indexOfMethod(ba.constData());
- if (sigIndex < 0) {
- qWarning("QSignalSpy: No such signal: '%s'", ba.constData());
- return {};
- }
-
- return verify(obj, mo->method(sigIndex));
- }
-
-public:
#ifdef Q_QDOC
template <typename PointerToMemberFunction>
QSignalSpy(const QObject *object, PointerToMemberFunction signal);
@@ -64,20 +35,9 @@ public:
QSignalSpy(const typename QtPrivate::FunctionPointer<Func>::Object *obj, Func signal0)
: QSignalSpy(verify(obj, QMetaMethod::fromSignal(signal0))) {}
#endif // Q_QDOC
-
QSignalSpy(const QObject *obj, QMetaMethod signal)
: QSignalSpy(verify(obj, signal)) {}
-private:
- static ObjectSignal verify(const QObject *obj, QMetaMethod signal)
- {
- if (isObjectValid(obj) && isSignalMetaMethodValid(signal))
- return {obj, signal};
- else
- return {};
- }
-
-public:
inline bool isValid() const { return !sig.isEmpty(); }
inline QByteArray signal() const { return sig; }
@@ -127,6 +87,9 @@ private:
}
+ Q_TESTLIB_EXPORT static ObjectSignal verify(const QObject *obj, QMetaMethod signal);
+ Q_TESTLIB_EXPORT static ObjectSignal verify(const QObject *obj, const char *aSignal);
+
Q_TESTLIB_EXPORT bool connectToSignal(const QObject *sender, int sigIndex);
Q_TESTLIB_EXPORT static bool isSignalMetaMethodValid(const QMetaMethod &signal);