diff -r ce961d2c008b -r 6745d806c5ff qtmobility/src/multimedia/qmediapluginloader.cpp --- a/qtmobility/src/multimedia/qmediapluginloader.cpp Mon Jun 21 22:38:54 2010 +0100 +++ b/qtmobility/src/multimedia/qmediapluginloader.cpp Thu Jul 22 16:42:52 2010 +0100 @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** @@ -39,7 +39,6 @@ ** ****************************************************************************/ -#include #include "qmediapluginloader_p.h" #include #include @@ -47,10 +46,10 @@ #include #include "qmediaserviceproviderplugin.h" +#include "qmobilitypluginsearch.h" QT_BEGIN_NAMESPACE - typedef QMap ObjectListMap; Q_GLOBAL_STATIC(ObjectListMap, staticMediaPlugins); @@ -98,43 +97,23 @@ } } } else { - QStringList paths = QCoreApplication::libraryPaths(); - QString val = qt_mobility_configure_prefix_path_str; - if(val.length() > 0){ - val += "/plugins"; - paths << val; - } - - -#ifdef QTM_PLUGIN_PATH - paths << QTM_PLUGIN_PATH; -#endif - - foreach (QString const &path, paths) { - QString pluginPathName(path + m_location); - QDir pluginDir(pluginPathName); - - if (!pluginDir.exists()) - continue; + QStringList plugins = QTM_PREPEND_NAMESPACE(mobilityPlugins)(m_location); + for (int i=0; i < plugins.count(); i++) { + QPluginLoader loader(plugins.at(i)); + QObject *o = loader.instance(); + if (o != 0 && o->qt_metacast(m_iid) != 0) { + QFactoryInterface* p = qobject_cast(o); + if (p != 0) { + foreach (QString const &key, p->keys()) + m_instances.insertMulti(key, o); + } - foreach (QString pluginLib, pluginDir.entryList(QDir::Files)) { - QPluginLoader loader(pluginPathName + pluginLib); - - QObject *o = loader.instance(); - if (o != 0 && o->qt_metacast(m_iid) != 0) { - QFactoryInterface* p = qobject_cast(o); - if (p != 0) { - foreach (QString const &key, p->keys()) - m_instances.insertMulti(key, o); - } - - continue; - } else { - qWarning() << "QMediaPluginLoader: Failed to load plugin: " << pluginLib << loader.errorString(); - } - delete o; - loader.unload(); + continue; + } else { + qWarning() << "QMediaPluginLoader: Failed to load plugin: " << plugins.at(i) << loader.errorString(); } + delete o; + loader.unload(); } } }