summaryrefslogtreecommitdiffstats
path: root/src/corelib
diff options
context:
space:
mode:
authorKent Hansen <kent.hansen@nokia.com>2012-05-28 11:14:20 +0200
committerQt by Nokia <qt-info@nokia.com>2012-06-01 01:21:43 +0200
commit1e778ebd06c37f7a81e4247a5998d06fa849eff8 (patch)
treeca95f81c2c53f94b45a2779871b14264d9dd1d1b /src/corelib
parent87d7545cd0580795d1fbe3f7112bafcea29cc8b1 (diff)
Move implementation of QObject::senderSignalIndex() to QObjectPrivate
In preparation of changing the implementation to return an index in the signals-only range, not all-methods range. Change-Id: Ib743a4bc9da27ad776ade262b215ebf988e7ab28 Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Diffstat (limited to 'src/corelib')
-rw-r--r--src/corelib/kernel/qobject.cpp30
-rw-r--r--src/corelib/kernel/qobject_p.h1
2 files changed, 20 insertions, 11 deletions
diff --git a/src/corelib/kernel/qobject.cpp b/src/corelib/kernel/qobject.cpp
index adb68f3d98..8ce5310dee 100644
--- a/src/corelib/kernel/qobject.cpp
+++ b/src/corelib/kernel/qobject.cpp
@@ -2134,17 +2134,7 @@ QObject *QObject::sender() const
int QObject::senderSignalIndex() const
{
Q_D(const QObject);
-
- QMutexLocker locker(signalSlotLock(this));
- if (!d->currentSender)
- return -1;
-
- for (QObjectPrivate::Connection *c = d->senders; c; c = c->next) {
- if (c->sender == d->currentSender->sender)
- return d->currentSender->signal;
- }
-
- return -1;
+ return d->senderSignalIndex();
}
/*!
@@ -3471,6 +3461,24 @@ void QMetaObject::activate(QObject *sender, int signal_index, void **argv)
}
/*! \internal
+ Implementation of QObject::senderSignalIndex()
+*/
+int QObjectPrivate::senderSignalIndex() const
+{
+ Q_Q(const QObject);
+ QMutexLocker locker(signalSlotLock(q));
+ if (!currentSender)
+ return -1;
+
+ for (QObjectPrivate::Connection *c = senders; c; c = c->next) {
+ if (c->sender == currentSender->sender)
+ return currentSender->signal;
+ }
+
+ return -1;
+}
+
+/*! \internal
Returns the signal index used in the internal connectionLists vector.
It is different from QMetaObject::indexOfSignal(): indexOfSignal is the same as indexOfMethod
diff --git a/src/corelib/kernel/qobject_p.h b/src/corelib/kernel/qobject_p.h
index aa6b467fd6..84e2ecd779 100644
--- a/src/corelib/kernel/qobject_p.h
+++ b/src/corelib/kernel/qobject_p.h
@@ -187,6 +187,7 @@ public:
return o->d_func();
}
+ int senderSignalIndex() const;
int signalIndex(const char *signalName, const QMetaObject **meta = 0) const;
inline bool isSignalConnected(uint signalIdx) const;