From 8d25a4a58c47431c589d8cbbc82e442360cf7e63 Mon Sep 17 00:00:00 2001 From: Lincoln Ramsay Date: Wed, 14 Mar 2012 16:33:19 +1000 Subject: Use the new plugin mechanism for Sensors and SensorGestures Plugins no longer use QFactoryInterface or Q_EXPORT_PLUGIN. Instead, Q_PLUGIN_METADATA is used. Meta-data is provided through a .json file that is embedded into the plugin by moc. For now, this meta-data is not actually used because both sensors and gestures use a dynamic registration mechanism. Change-Id: Ic82657e2ba5768127e13f7411ca51f60772781d8 Reviewed-by: Lincoln Ramsay --- src/sensors/qsensormanager.cpp | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) (limited to 'src/sensors/qsensormanager.cpp') diff --git a/src/sensors/qsensormanager.cpp b/src/sensors/qsensormanager.cpp index ae023beb..67e5b442 100644 --- a/src/sensors/qsensormanager.cpp +++ b/src/sensors/qsensormanager.cpp @@ -67,7 +67,7 @@ public: }; QSensorManagerPrivate() : pluginLoadingState(NotLoaded) - , loader(new QFactoryLoader(QSensorPluginInterface_iid, QLatin1String("/sensors"))) + , loader(new QFactoryLoader("com.nokia.Qt.QSensorPluginInterface/1.0", QLatin1String("/sensors"))) , defaultIdentifierForTypeLoaded(false) , sensorsChanged(false) { @@ -143,14 +143,17 @@ Q_SENSORS_EXPORT void sensors_unit_test_hook(int index) load_external_plugins = false; break; case 1: + { Q_ASSERT(load_external_plugins == false); Q_ASSERT(d->pluginLoadingState == QSensorManagerPrivate::Loaded); SENSORLOG() << "initializing plugins"; - foreach (const QString &key, d->loader->keys()) { - QObject *plugin = d->loader->instance(key); + QList meta = d->loader->metaData(); + for (int i = 0; i < meta.count(); i++) { + QObject *plugin = d->loader->instance(i); initPlugin(plugin); } break; + } default: break; } @@ -190,8 +193,9 @@ void QSensorManagerPrivate::loadPlugins() if (load_external_plugins) { SENSORLOG() << "initializing plugins"; - foreach (const QString &key, d->loader->keys()) { - QObject *plugin = d->loader->instance(key); + QList meta = d->loader->metaData(); + for (int i = 0; i < meta.count(); i++) { + QObject *plugin = d->loader->instance(i); initPlugin(plugin); } } -- cgit v1.2.3