diff options
Diffstat (limited to 'src/corelib')
-rw-r--r-- | src/corelib/kernel/qobject.cpp | 14 | ||||
-rw-r--r-- | src/corelib/kernel/qobject_p.h | 12 |
2 files changed, 15 insertions, 11 deletions
diff --git a/src/corelib/kernel/qobject.cpp b/src/corelib/kernel/qobject.cpp index a7c3b6e..bb5effc 100644 --- a/src/corelib/kernel/qobject.cpp +++ b/src/corelib/kernel/qobject.cpp @@ -2692,11 +2692,7 @@ bool QObject::connect(const QObject *sender, const QMetaMethod &signal, return false; } - // Reconstructing SIGNAL() macro result for signal.signature() string - QByteArray signalSignature; - signalSignature.reserve(qstrlen(signal.signature())+1); - signalSignature.append((char)(QSIGNAL_CODE + '0')); - signalSignature.append(signal.signature()); + QByteArray signalSignature = QObjectPrivate::signalSignature(signal); { QByteArray methodSignature; @@ -2985,13 +2981,9 @@ bool QObject::disconnect(const QObject *sender, const QMetaMethod &signal, } } - // Reconstructing SIGNAL() macro result for signal.signature() string QByteArray signalSignature; - if (signal.mobj) { - signalSignature.reserve(qstrlen(signal.signature())+1); - signalSignature.append((char)(QSIGNAL_CODE + '0')); - signalSignature.append(signal.signature()); - } + if (signal.mobj) + signalSignature = QObjectPrivate::signalSignature(signal); { QByteArray methodSignature; diff --git a/src/corelib/kernel/qobject_p.h b/src/corelib/kernel/qobject_p.h index c7aa683..e2e24a6 100644 --- a/src/corelib/kernel/qobject_p.h +++ b/src/corelib/kernel/qobject_p.h @@ -61,6 +61,7 @@ #include "QtCore/qvector.h" #include "QtCore/qreadwritelock.h" #include "QtCore/qvariant.h" +#include "QtCore/qmetaobject.h" QT_BEGIN_NAMESPACE @@ -184,6 +185,8 @@ public: inline void connectNotify(const char *signal); inline void disconnectNotify(const char *signal); + static inline QByteArray signalSignature(const QMetaMethod &signal); + public: QString objectName; ExtraData *extraData; // extra data set by the user @@ -244,6 +247,15 @@ inline void QObjectPrivate::disconnectNotify(const char *signal) q_ptr->disconnectNotify(signal); } +inline QByteArray QObjectPrivate::signalSignature(const QMetaMethod &signal) +{ + QByteArray result; + result.reserve(qstrlen(signal.signature())+1); + result.append((char)(QSIGNAL_CODE + '0')); + result.append(signal.signature()); + return result; +} + inline QObjectPrivate::Sender *QObjectPrivate::setCurrentSender(QObject *receiver, Sender *sender) { |