summaryrefslogtreecommitdiffstats
path: root/src/sensors/gestures/qsensorgesturemanagerprivate.cpp
diff options
context:
space:
mode:
authorLorn Potter <lorn.potter@nokia.com>2012-04-26 16:18:41 +1000
committerQt by Nokia <qt-info@nokia.com>2012-04-27 04:15:13 +0200
commitef0fd213a74b9bc44f44ee9c65ae144eb3ea7bde (patch)
tree78ac87cfcff1a87ab036705009c7fff49becf13c /src/sensors/gestures/qsensorgesturemanagerprivate.cpp
parenta82dab0757ab8b40972a38db47cc6e30f9898ea1 (diff)
make simulator work better with gestures.
code from the plugin has been moved into the manager so that every other plugin can be triggered by the emluator. Change-Id: I37232ab6d45a027541ab1b5c504b2844049ba522 Reviewed-by: Lincoln Ramsay <lincoln.ramsay@nokia.com>
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