summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorLorn Potter <lorn.potter@nokia.com>2012-05-17 09:25:54 +1000
committerQt by Nokia <qt-info@nokia.com>2012-05-17 02:04:00 +0200
commit4575c1fda70f8b8e1ac4959ad9386964cb9a6222 (patch)
treecea894cecd8b0bd09c0c2c9b2a8d4d8042fd117f /src
parent6062bd6530304220c252195b96d46f4b4f76e0a4 (diff)
send only signals being started. Avoids developer confusion.
Change-Id: I7f49f14d0546a2a59a26777c6f8fa083ec29e0ba Reviewed-by: Lincoln Ramsay <lincoln.ramsay@nokia.com>
Diffstat (limited to 'src')
-rw-r--r--src/sensors/gestures/qsensorgesturemanagerprivate.cpp27
-rw-r--r--src/sensors/gestures/qsensorgesturemanagerprivate_p.h3
-rw-r--r--src/sensors/gestures/qsensorgesturerecognizer.cpp14
-rw-r--r--src/sensors/gestures/qsensorgesturerecognizer.h4
-rw-r--r--src/sensors/gestures/simulatorgesturescommon.cpp13
-rw-r--r--src/sensors/gestures/simulatorgesturescommon_p.h1
6 files changed, 57 insertions, 5 deletions
diff --git a/src/sensors/gestures/qsensorgesturemanagerprivate.cpp b/src/sensors/gestures/qsensorgesturemanagerprivate.cpp
index c87d22da..15fccdb9 100644
--- a/src/sensors/gestures/qsensorgesturemanagerprivate.cpp
+++ b/src/sensors/gestures/qsensorgesturemanagerprivate.cpp
@@ -64,6 +64,9 @@ QSensorGestureManagerPrivate::QSensorGestureManagerPrivate(QObject *parent) :
connect(this,SIGNAL(newSensorGestures(QStringList)),
connection,SLOT(newSensorGestures(QStringList)));
+
+ connect(this,SIGNAL(removeSensorGestures(QStringList)),
+ connection,SLOT(removeSensorGestures(QStringList)));
#endif
loader = new QFactoryLoader("com.Nokia.QSensorGesturePluginInterface", QLatin1String("/sensorgestures"));
@@ -148,8 +151,8 @@ bool QSensorGestureManagerPrivate::loadRecognizer(const QString &recognizerId)
registeredSensorGestures.insert(recognizer->id(),recognizer);
#ifdef SIMULATOR_BUILD
- QStringList list = recognizer->gestureSignals();
- Q_EMIT newSensorGestures(list);
+ connect(recognizer, SIGNAL(started()), this, SLOT(recognizerStarted()), Qt::UniqueConnection);
+ connect(recognizer, SIGNAL(stopped()), this, SLOT(recognizerStopped()), Qt::UniqueConnection);
#endif
}
}
@@ -218,6 +221,26 @@ void QSensorGestureManagerPrivate::sensorGestureDetected()
}
}
+void QSensorGestureManagerPrivate::recognizerStarted()
+{
+ QSensorGestureRecognizer *recognizer = qobject_cast<QSensorGestureRecognizer *>(sender());
+ QStringList list = recognizer->gestureSignals();
+ list.removeOne("detected(QString)");
+ list.removeOne("started()");
+ list.removeOne("stopped()");
+ Q_EMIT newSensorGestures(list);
+}
+
+void QSensorGestureManagerPrivate::recognizerStopped()
+{
+ QSensorGestureRecognizer *recognizer = qobject_cast<QSensorGestureRecognizer *>(sender());
+ QStringList list = recognizer->gestureSignals();
+ list.removeOne("detected(QString)");
+ list.removeOne("started()");
+ list.removeOne("stopped()");
+ Q_EMIT removeSensorGestures(list);
+}
+
#endif
diff --git a/src/sensors/gestures/qsensorgesturemanagerprivate_p.h b/src/sensors/gestures/qsensorgesturemanagerprivate_p.h
index 4d3d9c4d..71b88644 100644
--- a/src/sensors/gestures/qsensorgesturemanagerprivate_p.h
+++ b/src/sensors/gestures/qsensorgesturemanagerprivate_p.h
@@ -84,9 +84,12 @@ Q_SIGNALS:
#ifdef SIMULATOR_BUILD
Q_SIGNALS:
void newSensorGestures(QStringList);
+ void removeSensorGestures(QStringList);
private slots:
void sensorGestureDetected();
+ void recognizerStarted();
+ void recognizerStopped();
#endif
};
diff --git a/src/sensors/gestures/qsensorgesturerecognizer.cpp b/src/sensors/gestures/qsensorgesturerecognizer.cpp
index 2b6105e2..0a744b2b 100644
--- a/src/sensors/gestures/qsensorgesturerecognizer.cpp
+++ b/src/sensors/gestures/qsensorgesturerecognizer.cpp
@@ -181,8 +181,12 @@ void QSensorGestureRecognizer::startBackend()
qWarning() << "Not starting. Gesture Recognizer not initialized";
return;
}
- if (d_ptr->count++ == 0)
- start();
+ if (d_ptr->count++ == 0) {
+ start();
+#ifdef SIMULATOR_BUILD
+ Q_EMIT started();
+#endif
+ }
}
/*!
@@ -197,8 +201,12 @@ void QSensorGestureRecognizer::stopBackend()
qWarning() << "Not stopping. Gesture Recognizer not initialized";
return;
}
- if (--d_ptr->count == 0)
+ if (--d_ptr->count == 0) {
stop();
+#ifdef SIMULATOR_BUILD
+ Q_EMIT stopped();
+#endif
+ }
}
QT_END_NAMESPACE
diff --git a/src/sensors/gestures/qsensorgesturerecognizer.h b/src/sensors/gestures/qsensorgesturerecognizer.h
index 2a271c7b..06929e72 100644
--- a/src/sensors/gestures/qsensorgesturerecognizer.h
+++ b/src/sensors/gestures/qsensorgesturerecognizer.h
@@ -73,6 +73,10 @@ public:
Q_SIGNALS:
void detected(const QString &);
+#ifdef SIMULATOR_BUILD
+ void started();
+ void stopped();
+#endif
protected:
virtual void create() = 0;
diff --git a/src/sensors/gestures/simulatorgesturescommon.cpp b/src/sensors/gestures/simulatorgesturescommon.cpp
index 2578e459..4c2adb51 100644
--- a/src/sensors/gestures/simulatorgesturescommon.cpp
+++ b/src/sensors/gestures/simulatorgesturescommon.cpp
@@ -70,6 +70,7 @@ SensorGesturesConnection::SensorGesturesConnection(QObject *parent)
SensorGesturesConnection::~SensorGesturesConnection()
{
+ mWorker->call("setSensorGestures", QStringList());
delete mWorker;
}
@@ -91,6 +92,7 @@ void SensorGesturesConnection::newSensorGestureDetected()
void SensorGesturesConnection::newSensorGestures(const QStringList &gestures)
{
if (!mWorker) return;
+
Q_FOREACH (const QString &gest, gestures) {
if (!gest.contains(QLatin1String("detected"))) {
QString tmp = gest.left(gest.length()-2);
@@ -102,6 +104,17 @@ void SensorGesturesConnection::newSensorGestures(const QStringList &gestures)
mWorker->call("setSensorGestures", allGestures);
}
+void SensorGesturesConnection::removeSensorGestures(const QStringList &gestures)
+{
+ Q_FOREACH (const QString &gest, gestures) {
+ QString tmp = gest.left(gest.length()-2);
+ if (allGestures.contains(tmp)) {
+ allGestures.removeOne(tmp);
+ }
+ }
+ mWorker->call("setSensorGestures", allGestures);
+}
+
QString get_qtSensorGestureData()
{
return *qtSensorGestureData();
diff --git a/src/sensors/gestures/simulatorgesturescommon_p.h b/src/sensors/gestures/simulatorgesturescommon_p.h
index 6fd0d754..2699c6a4 100644
--- a/src/sensors/gestures/simulatorgesturescommon_p.h
+++ b/src/sensors/gestures/simulatorgesturescommon_p.h
@@ -79,6 +79,7 @@ public slots:
void setSensorGestureData(const QString &);
void newSensorGestureDetected();
void newSensorGestures(const QStringList &gestures);
+ void removeSensorGestures(const QStringList &gestures);
private:
Simulator::Connection *mConnection;