diff options
4 files changed, 10 insertions, 3 deletions
diff --git a/src/sensors/gestures/qsensorgesturemanager.cpp b/src/sensors/gestures/qsensorgesturemanager.cpp index a0430e15..cdc3f5fd 100644 --- a/src/sensors/gestures/qsensorgesturemanager.cpp +++ b/src/sensors/gestures/qsensorgesturemanager.cpp @@ -68,6 +68,8 @@ Q_GLOBAL_STATIC(QSensorGestureManagerPrivate, sensorGestureManagerPrivate) QSensorGestureManager::QSensorGestureManager(QObject *parent) : QObject(parent) { + connect(sensorGestureManagerPrivate(),SIGNAL(newSensorGestureAvailable()), + this,SIGNAL(newSensorGestureAvailable())); } /*! @@ -88,9 +90,7 @@ QSensorGestureManager::~QSensorGestureManager() bool QSensorGestureManager::registerSensorGestureRecognizer(QSensorGestureRecognizer *recognizer) { bool ok = sensorGestureManagerPrivate()->registerSensorGestureRecognizer(recognizer); - if (ok) - Q_EMIT newSensorGestureAvailable(); - else + if (!ok) delete recognizer; return ok; diff --git a/src/sensors/gestures/qsensorgesturemanagerprivate.cpp b/src/sensors/gestures/qsensorgesturemanagerprivate.cpp index 1ac21da2..1a8ffe38 100644 --- a/src/sensors/gestures/qsensorgesturemanagerprivate.cpp +++ b/src/sensors/gestures/qsensorgesturemanagerprivate.cpp @@ -145,6 +145,7 @@ bool QSensorGestureManagerPrivate::registerSensorGestureRecognizer(QSensorGestur Q_ASSERT (!registeredSensorGestures.contains(recognizer->id())); recognizer->setParent(0); registeredSensorGestures.insert(recognizer->id(),recognizer); + Q_EMIT newSensorGestureAvailable(); return true; } diff --git a/src/sensors/gestures/qsensorgesturemanagerprivate_p.h b/src/sensors/gestures/qsensorgesturemanagerprivate_p.h index b97894e7..a166fac7 100644 --- a/src/sensors/gestures/qsensorgesturemanagerprivate_p.h +++ b/src/sensors/gestures/qsensorgesturemanagerprivate_p.h @@ -72,6 +72,8 @@ public: QStringList gestureIds(); QStringList knownIds; void initPlugin(QObject *o); +Q_SIGNALS: + void newSensorGestureAvailable(); }; #endif // QSENSORGESTUREMANAGERPRIVATE_P_H diff --git a/tests/auto/qsensorgestures/tst_qsensorgesturetest.cpp b/tests/auto/qsensorgestures/tst_qsensorgesturetest.cpp index 8f88425b..25033751 100644 --- a/tests/auto/qsensorgestures/tst_qsensorgesturetest.cpp +++ b/tests/auto/qsensorgestures/tst_qsensorgesturetest.cpp @@ -272,11 +272,14 @@ void Tst_qsensorgestureTest::tst_manager_registerSensorGestureRecognizer() void Tst_qsensorgestureTest::tst_manager__newSensorAvailable() { QSensorGestureManager manager; + QSensorGestureManager manager2; QSignalSpy spy_manager_available(&manager, SIGNAL(newSensorGestureAvailable())); + QSignalSpy spy_manager2_available(&manager2, SIGNAL(newSensorGestureAvailable())); manager.gestureIds(); QCOMPARE(spy_manager_available.count(),0); + QCOMPARE(spy_manager2_available.count(),0); QTest3Recognizer *recognizer = new QTest3Recognizer; recognizer->changeId("QtSensors.test4"); @@ -291,6 +294,7 @@ void Tst_qsensorgestureTest::tst_manager__newSensorAvailable() ok = manager.registerSensorGestureRecognizer(recognizer); QCOMPARE(ok, false); QCOMPARE(spy_manager_available.count(),1); + QCOMPARE(spy_manager2_available.count(),1); } |