diff options
author | Friedemann Kleint <Friedemann.Kleint@nokia.com> | 2012-05-08 13:14:09 +0200 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-05-09 13:40:23 +0200 |
commit | 4e4403d69c60ea6429b3ad5e7898a84b1dc92be5 (patch) | |
tree | 4d8c3f222412438643fe54508036a452c6967152 /src/gui/kernel/qplatformintegrationfactory_qpa.cpp | |
parent | b316c3ac5e4acac75505bfd77677cecc181599af (diff) |
No longer use deprecated methods for plugin loading.
Change-Id: I19c66b1c41ea4dd236726c86d7d071b210ec9244
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Diffstat (limited to 'src/gui/kernel/qplatformintegrationfactory_qpa.cpp')
-rw-r--r-- | src/gui/kernel/qplatformintegrationfactory_qpa.cpp | 36 |
1 files changed, 18 insertions, 18 deletions
diff --git a/src/gui/kernel/qplatformintegrationfactory_qpa.cpp b/src/gui/kernel/qplatformintegrationfactory_qpa.cpp index 2092f2d0ba..3b05742f09 100644 --- a/src/gui/kernel/qplatformintegrationfactory_qpa.cpp +++ b/src/gui/kernel/qplatformintegrationfactory_qpa.cpp @@ -43,6 +43,7 @@ #include <qpa/qplatformintegrationplugin.h> #include "private/qfactoryloader_p.h" #include "qmutex.h" +#include "qdir.h" #include "qguiapplication.h" #include "qdebug.h" @@ -58,26 +59,20 @@ Q_GLOBAL_STATIC_WITH_ARGS(QFactoryLoader, directLoader, QPlatformIntegration *QPlatformIntegrationFactory::create(const QString& key, const QString &platformPluginPath) { - QPlatformIntegration *ret = 0; QStringList paramList = key.split(QLatin1Char(':')); - QString platform = paramList.takeFirst().toLower(); + const QString platform = paramList.takeFirst().toLower(); #if !defined(QT_NO_LIBRARY) && !defined(QT_NO_SETTINGS) // Try loading the plugin from platformPluginPath first: if (!platformPluginPath.isEmpty()) { QCoreApplication::addLibraryPath(platformPluginPath); - if (QPlatformIntegrationFactoryInterface *factory = - qobject_cast<QPlatformIntegrationFactoryInterface*>(directLoader()->instance(platform))) - ret = factory->create(key, paramList); - - if (ret) + if (QPlatformIntegration *ret = qLoadPlugin1<QPlatformIntegration, QPlatformIntegrationFactoryInterface >(directLoader(), platform, paramList)) return ret; } - if (QPlatformIntegrationFactoryInterface *factory = qobject_cast<QPlatformIntegrationFactoryInterface*>(loader()->instance(platform))) - ret = factory->create(platform, paramList); + if (QPlatformIntegration *ret = qLoadPlugin1<QPlatformIntegration, QPlatformIntegrationFactoryInterface >(loader(), platform, paramList)) + return ret; #endif - - return ret; + return 0; } /*! @@ -86,23 +81,28 @@ QPlatformIntegration *QPlatformIntegrationFactory::create(const QString& key, co \sa create() */ + QStringList QPlatformIntegrationFactory::keys(const QString &platformPluginPath) { #if !defined(QT_NO_LIBRARY) && !defined(QT_NO_SETTINGS) QStringList list; - if (!platformPluginPath.isEmpty()) { QCoreApplication::addLibraryPath(platformPluginPath); - foreach (const QString &key, directLoader()->keys()) { - list += key + QString(QLatin1String(" (from %1)")).arg(platformPluginPath); + list = directLoader()->keyMap().values(); + if (!list.isEmpty()) { + const QString postFix = QStringLiteral(" (from ") + + QDir::toNativeSeparators(platformPluginPath) + + QLatin1Char(')'); + const QStringList::iterator end = list.end(); + for (QStringList::iterator it = list.begin(); it != end; ++it) + (*it).append(postFix); } } - - list += loader()->keys(); + list.append(loader()->keyMap().values()); + return list; #else - QStringList list; + return QStringList(); #endif - return list; } QT_END_NAMESPACE |