summaryrefslogtreecommitdiffstats
path: root/src/sensors/gestures/qsensorgesturemanagerprivate.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/sensors/gestures/qsensorgesturemanagerprivate.cpp')
-rw-r--r--src/sensors/gestures/qsensorgesturemanagerprivate.cpp47
1 files changed, 47 insertions, 0 deletions
diff --git a/src/sensors/gestures/qsensorgesturemanagerprivate.cpp b/src/sensors/gestures/qsensorgesturemanagerprivate.cpp
index cc5d1034..eaaf8e3c 100644
--- a/src/sensors/gestures/qsensorgesturemanagerprivate.cpp
+++ b/src/sensors/gestures/qsensorgesturemanagerprivate.cpp
@@ -48,11 +48,24 @@
#include "qsensorgesturemanagerprivate_p.h"
#include "qsensorgestureplugininterface.h"
+#ifdef SIMULATOR_BUILD
+#include "simulatorgesturescommon_p.h"
+#endif
+
QT_BEGIN_NAMESPACE
QSensorGestureManagerPrivate::QSensorGestureManagerPrivate(QObject *parent) :
QObject(parent)
{
+#ifdef SIMULATOR_BUILD
+ SensorGesturesConnection *connection = new SensorGesturesConnection(this);
+ connect(connection,SIGNAL(sensorGestureDetected()),
+ this,SLOT(sensorGestureDetected()));
+
+ connect(this,SIGNAL(newSensorGestures(QStringList)),
+ connection,SLOT(newSensorGestures(QStringList)));
+#endif
+
loader = new QFactoryLoader("com.Nokia.QSensorGesturePluginInterface", QLatin1String("/sensorgestures"));
loadPlugins();
}
@@ -133,6 +146,11 @@ bool QSensorGestureManagerPrivate::loadRecognizer(const QString &recognizerId)
delete recognizer;
} else {
registeredSensorGestures.insert(recognizer->id(),recognizer);
+
+#ifdef SIMULATOR_BUILD
+ QStringList list = recognizer->gestureSignals();
+ Q_EMIT newSensorGestures(list);
+#endif
}
}
}
@@ -173,5 +191,34 @@ QStringList QSensorGestureManagerPrivate::gestureIds()
return knownIds;
}
+#ifdef SIMULATOR_BUILD
+void QSensorGestureManagerPrivate::sensorGestureDetected()
+{
+ QString str = get_qtSensorGestureData();
+
+ Q_FOREACH (const QString &id, gestureIds()) {
+ QSensorGestureRecognizer *recognizer = sensorGestureRecognizer(id);
+ if (recognizer != 0) {
+ Q_FOREACH (const QString &sig, recognizer->gestureSignals()) {
+ if (!sig.contains("detected")) { //weed out detected signals
+ QString tmp;
+ tmp = sig.left(sig.length() - 2);
+ if (str == tmp) {
+ // named signal for c++
+ QMetaObject::invokeMethod(recognizer, str.toLocal8Bit(), Qt::DirectConnection);
+ // detected signal for qml and c++
+ QMetaObject::invokeMethod(recognizer, "detected", Qt::DirectConnection,
+ Q_ARG(QString, str));
+ break;
+
+ }
+ }
+ }
+ }
+ }
+}
+
+#endif
+
QT_END_NAMESPACE