summaryrefslogtreecommitdiffstats
path: root/src/sensors/gestures
diff options
context:
space:
mode:
Diffstat (limited to 'src/sensors/gestures')
-rw-r--r--src/sensors/gestures/qsensorgesturemanagerprivate.cpp22
-rw-r--r--src/sensors/gestures/qsensorgestureplugininterface.cpp11
-rw-r--r--src/sensors/gestures/qsensorgestureplugininterface.h15
3 files changed, 31 insertions, 17 deletions
diff --git a/src/sensors/gestures/qsensorgesturemanagerprivate.cpp b/src/sensors/gestures/qsensorgesturemanagerprivate.cpp
index 2f85561b..292248b4 100644
--- a/src/sensors/gestures/qsensorgesturemanagerprivate.cpp
+++ b/src/sensors/gestures/qsensorgesturemanagerprivate.cpp
@@ -42,13 +42,19 @@
#include <QDir>
#include <QLibraryInfo>
+#include <QtCore/private/qfactoryloader_p.h>
+
#include "qsensorgesturerecognizer.h"
#include "qsensorgesturemanagerprivate_p.h"
#include "qsensorgestureplugininterface.h"
-#include "qmobilitypluginsearch.h"
QT_BEGIN_NAMESPACE
+#ifndef QT_NO_LIBRARY
+Q_GLOBAL_STATIC_WITH_ARGS(QFactoryLoader, loader,
+ (QSensorGestureFactoryInterface_iid, QLatin1String("/sensorgestures")))
+#endif
+
QSensorGestureManagerPrivate::QSensorGestureManagerPrivate(QObject *parent) :
QObject(parent)
{
@@ -58,7 +64,6 @@ QSensorGestureManagerPrivate::QSensorGestureManagerPrivate(QObject *parent) :
QSensorGestureManagerPrivate::~QSensorGestureManagerPrivate()
{
qDeleteAll(registeredSensorGestures);
- qDeleteAll(plugins);
}
@@ -87,17 +92,10 @@ QSensorGestureManagerPrivate::~QSensorGestureManagerPrivate()
*/
void QSensorGestureManagerPrivate::loadPlugins()
{
- // Qt-style static plugins
- Q_FOREACH (QObject *plugin, QPluginLoader::staticInstances()) {
- initPlugin(plugin);
- }
-
- QStringList gestureplugins = mobilityPlugins(QLatin1String("sensorgestures"));
- for (int i = 0; i < gestureplugins.count(); i++) {
-
- QPluginLoader *loader = new QPluginLoader(gestureplugins.at(i), this);
+ QFactoryLoader *l = loader();
+ foreach (const QString &key, l->keys()) {
- QObject *plugin = loader->instance();
+ QObject *plugin = l->instance(key);
if (plugin) {
initPlugin(plugin);
}
diff --git a/src/sensors/gestures/qsensorgestureplugininterface.cpp b/src/sensors/gestures/qsensorgestureplugininterface.cpp
index 8a68fbcf..95ceca3b 100644
--- a/src/sensors/gestures/qsensorgestureplugininterface.cpp
+++ b/src/sensors/gestures/qsensorgestureplugininterface.cpp
@@ -80,4 +80,15 @@
Returns this plugins name.
*/
+QT_BEGIN_NAMESPACE
+QSensorGesturePluginInterface::QSensorGesturePluginInterface()
+{
+}
+
+QSensorGesturePluginInterface::~QSensorGesturePluginInterface()
+{
+
+}
+
+QT_END_NAMESPACE
diff --git a/src/sensors/gestures/qsensorgestureplugininterface.h b/src/sensors/gestures/qsensorgestureplugininterface.h
index 93185b77..8128f0e4 100644
--- a/src/sensors/gestures/qsensorgestureplugininterface.h
+++ b/src/sensors/gestures/qsensorgestureplugininterface.h
@@ -44,24 +44,29 @@
#include <QObject>
#include <QtGlobal>
-
+#include <QtCore/qplugin.h>
+#include <QtCore/qfactoryinterface.h>
#include "qsensorgesture.h"
#include "qsensorgesturerecognizer.h"
QT_BEGIN_NAMESPACE
class QSensorGestureRecognizer;
-class Q_SENSORS_EXPORT QSensorGesturePluginInterface
+#define QSensorGestureFactoryInterface_iid "com.Nokia.QSensorGesturePluginInterface"
+
+
+class Q_SENSORS_EXPORT QSensorGesturePluginInterface : public QFactoryInterface
{
public:
+ QSensorGesturePluginInterface();
+ virtual ~QSensorGesturePluginInterface();
virtual QList <QSensorGestureRecognizer *> createRecognizers() = 0;
virtual QStringList supportedIds() const = 0;
virtual QString name() const = 0;
-
+ QStringList keys() const { return QStringList() << name(); }
};
-Q_DECLARE_INTERFACE(QSensorGesturePluginInterface, "com.Nokia.QSensorGesturePluginInterface");
-
QT_END_NAMESPACE
+Q_DECLARE_INTERFACE(QSensorGesturePluginInterface, QSensorGestureFactoryInterface_iid);
#endif // QSENSORGESTUREPLUGININTERFACE_H