diff options
Diffstat (limited to 'src/sensors/qsensormanager.cpp')
-rw-r--r-- | src/sensors/qsensormanager.cpp | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/src/sensors/qsensormanager.cpp b/src/sensors/qsensormanager.cpp index 401eeaac..ae023beb 100644 --- a/src/sensors/qsensormanager.cpp +++ b/src/sensors/qsensormanager.cpp @@ -41,7 +41,8 @@ #include "qsensormanager.h" #include <QDebug> -#include "qsensorpluginloader_p.h" +#include <private/qfactoryloader_p.h> +#include <QPluginLoader> #include "qsensorplugin.h" #include <QStandardPaths> #include "sensorlog_p.h" @@ -50,8 +51,6 @@ QT_BEGIN_NAMESPACE -Q_GLOBAL_STATIC(QSensorPluginLoader, pluginLoader) - typedef QHash<QByteArray,QSensorBackendFactory*> FactoryForIdentifierMap; typedef QHash<QByteArray,FactoryForIdentifierMap> BackendIdentifiersForTypeMap; @@ -68,12 +67,14 @@ public: }; QSensorManagerPrivate() : pluginLoadingState(NotLoaded) + , loader(new QFactoryLoader(QSensorPluginInterface_iid, QLatin1String("/sensors"))) , defaultIdentifierForTypeLoaded(false) , sensorsChanged(false) { } PluginLoadingState pluginLoadingState; + QFactoryLoader *loader; void loadPlugins(); // Holds a mapping from type to available identifiers (and from there to the factory) @@ -145,7 +146,8 @@ Q_SENSORS_EXPORT void sensors_unit_test_hook(int index) Q_ASSERT(load_external_plugins == false); Q_ASSERT(d->pluginLoadingState == QSensorManagerPrivate::Loaded); SENSORLOG() << "initializing plugins"; - Q_FOREACH (QObject *plugin, pluginLoader()->plugins()) { + foreach (const QString &key, d->loader->keys()) { + QObject *plugin = d->loader->instance(key); initPlugin(plugin); } break; @@ -188,7 +190,8 @@ void QSensorManagerPrivate::loadPlugins() if (load_external_plugins) { SENSORLOG() << "initializing plugins"; - Q_FOREACH (QObject *plugin, pluginLoader()->plugins()) { + foreach (const QString &key, d->loader->keys()) { + QObject *plugin = d->loader->instance(key); initPlugin(plugin); } } |