diff options
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(); |