diff options
author | Kent Hansen <kent.hansen@nokia.com> | 2012-04-22 14:23:53 +0200 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-05-01 01:18:03 +0200 |
commit | b39c1a32b513b413fcfe055131476880f4b5a20e (patch) | |
tree | 0591b585be7332cbcbd511e9f5bc214931d702e8 /src/concurrent | |
parent | 243ea09e4cc0908e28be44e3e6786ff8b73f74be (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>
Diffstat (limited to 'src/concurrent')
-rw-r--r-- | src/concurrent/qfuturewatcher.cpp | 14 | ||||
-rw-r--r-- | src/concurrent/qfuturewatcher.h | 4 |
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(); |