Warn when using QBasicTimer::start() incorrectly
authorBradley T. Hughes <bradley.hughes@nokia.com>
Wed, 4 Jan 2012 11:22:33 +0000 (12:22 +0100)
committerQt by Nokia <qt-info@nokia.com>
Thu, 5 Jan 2012 07:42:23 +0000 (08:42 +0100)
Previously, QObject::startTimer() would warn when called from
QBasicTimer::start() if there was no event dispatcher for the object's
thread. QBasicTimer::start() should output a similar warning when there
is no event dispatcher for the current thread.

Change-Id: I1152f73216c3551c252a7a6995defebc9e1506c8
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
src/corelib/kernel/qbasictimer.cpp

index 5890df3..617e5e5 100644 (file)
@@ -116,8 +116,10 @@ QT_BEGIN_NAMESPACE
 void QBasicTimer::start(int msec, QObject *obj)
 {
     QAbstractEventDispatcher *eventDispatcher = QAbstractEventDispatcher::instance();
-    if (!eventDispatcher)
+    if (!eventDispatcher) {
+        qWarning("QBasicTimer::start: QBasicTimer can only be used with threads started with QThread");
         return;
+    }
     if (id) {
         eventDispatcher->unregisterTimer(id);
         QAbstractEventDispatcherPrivate::releaseTimerId(id);
@@ -141,8 +143,10 @@ void QBasicTimer::start(int msec, QObject *obj)
 void QBasicTimer::start(int msec, Qt::TimerType timerType, QObject *obj)
 {
     QAbstractEventDispatcher *eventDispatcher = QAbstractEventDispatcher::instance();
-    if (!eventDispatcher)
+    if (!eventDispatcher) {
+        qWarning("QBasicTimer::start: QBasicTimer can only be used with threads started with QThread");
         return;
+    }
     if (id) {
         eventDispatcher->unregisterTimer(id);
         QAbstractEventDispatcherPrivate::releaseTimerId(id);