summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKent Hansen <kent.hansen@nokia.com>2012-04-22 14:23:53 +0200
committerQt by Nokia <qt-info@nokia.com>2012-05-01 01:18:03 +0200
commitb39c1a32b513b413fcfe055131476880f4b5a20e (patch)
tree0591b585be7332cbcbd511e9f5bc214931d702e8
parent243ea09e4cc0908e28be44e3e6786ff8b73f74be (diff)
Port QtConcurrent to QMetaMethod-based connectNotify()
The const char *-based API is deprecated and will be removed in Qt5. Change-Id: Ica5b2c5020adf972db5005be8c062ddcdae8c0b4 Reviewed-by: Olivier Goffart <ogoffart@woboq.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
-rw-r--r--src/concurrent/qfuturewatcher.cpp14
-rw-r--r--src/concurrent/qfuturewatcher.h4
2 files changed, 11 insertions, 7 deletions
diff --git a/src/concurrent/qfuturewatcher.cpp b/src/concurrent/qfuturewatcher.cpp
index d3a1122a07..9153fe5d40 100644
--- a/src/concurrent/qfuturewatcher.cpp
+++ b/src/concurrent/qfuturewatcher.cpp
@@ -45,6 +45,7 @@
#include <QtCore/qcoreevent.h>
#include <QtCore/qcoreapplication.h>
+#include <QtCore/qmetaobject.h>
#include <QtCore/qthread.h>
#include "qfuturewatcher_p.h"
@@ -354,13 +355,15 @@ void QFutureWatcherBase::setPendingResultsLimit(int limit)
d->maximumPendingResultsReady = limit;
}
-void QFutureWatcherBase::connectNotify(const char * signal)
+void QFutureWatcherBase::connectNotify(const QMetaMethod &signal)
{
Q_D(QFutureWatcherBase);
- if (qstrcmp(signal, SIGNAL(resultReadyAt(int))) == 0)
+ static const QMetaMethod resultReadyAtSignal = QMetaMethod::fromSignal(&QFutureWatcherBase::resultReadyAt);
+ if (signal == resultReadyAtSignal)
d->resultAtConnected.ref();
#ifndef QT_NO_DEBUG
- if (qstrcmp(signal, SIGNAL(finished())) == 0) {
+ static const QMetaMethod finishedSignal = QMetaMethod::fromSignal(&QFutureWatcherBase::finished);
+ if (signal == finishedSignal) {
if (futureInterface().isRunning()) {
//connections should be established before calling stFuture to avoid race.
// (The future could finish before the connection is made.)
@@ -370,10 +373,11 @@ void QFutureWatcherBase::connectNotify(const char * signal)
#endif
}
-void QFutureWatcherBase::disconnectNotify(const char * signal)
+void QFutureWatcherBase::disconnectNotify(const QMetaMethod &signal)
{
Q_D(QFutureWatcherBase);
- if (qstrcmp(signal, SIGNAL(resultReadyAt(int))) == 0)
+ static const QMetaMethod resultReadyAtSignal = QMetaMethod::fromSignal(&QFutureWatcherBase::resultReadyAt);
+ if (signal == resultReadyAtSignal)
d->resultAtConnected.deref();
}
diff --git a/src/concurrent/qfuturewatcher.h b/src/concurrent/qfuturewatcher.h
index 439a25d844..c05f58e3de 100644
--- a/src/concurrent/qfuturewatcher.h
+++ b/src/concurrent/qfuturewatcher.h
@@ -102,8 +102,8 @@ public Q_SLOTS:
void togglePaused();
protected:
- void connectNotify (const char * signal);
- void disconnectNotify (const char * signal);
+ void connectNotify (const QMetaMethod &signal);
+ void disconnectNotify (const QMetaMethod &signal);
// called from setFuture() implemented in template sub-classes
void connectOutputInterface();