From cfe1ebf0f2d2a0854582893d68ebbf528786a068 Mon Sep 17 00:00:00 2001 From: trialuser02 Date: Sun, 23 Oct 2011 17:19:18 +0000 Subject: fixed api git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@2426 90c681e8-e032-0410-971d-27865f9a5e38 --- src/qmmp/abstractengine.cpp | 10 +++++----- src/qmmp/abstractengine.h | 7 ++++--- src/qmmp/decoder.cpp | 2 +- src/qmmp/decoder.h | 5 +++-- src/qmmp/effect.cpp | 16 ++++++--------- src/qmmp/effect.h | 8 +++++--- src/qmmp/enginefactory.h | 4 ++-- src/qmmp/inputsource.cpp | 10 +++++----- src/qmmp/inputsource.h | 8 +++++--- src/qmmp/output.cpp | 17 ++++++---------- src/qmmp/output.h | 10 +++++----- src/qmmp/visual.cpp | 17 +++++++--------- src/qmmp/visual.h | 13 ++++++------ src/qmmpui/commandlinemanager.cpp | 8 ++++---- src/qmmpui/commandlinemanager.h | 5 +++-- src/qmmpui/commandlineoption.h | 2 +- src/qmmpui/configdialog.cpp | 42 +++++++++++++++++++-------------------- src/qmmpui/general.cpp | 16 +++++++-------- src/qmmpui/general.h | 13 ++++++------ src/qmmpui/uiloader.cpp | 10 +++++----- src/qmmpui/uiloader.h | 9 +++++---- 21 files changed, 115 insertions(+), 117 deletions(-) diff --git a/src/qmmp/abstractengine.cpp b/src/qmmp/abstractengine.cpp index b5691ac2e..e84d31066 100644 --- a/src/qmmp/abstractengine.cpp +++ b/src/qmmp/abstractengine.cpp @@ -40,7 +40,7 @@ QMutex *AbstractEngine::mutex() // static methods QList *AbstractEngine::m_factories = 0; QList *AbstractEngine::m_disabledFactories = 0; -QStringList AbstractEngine::m_files; +QHash *AbstractEngine::m_files = 0; void AbstractEngine::checkFactories() { @@ -48,7 +48,7 @@ void AbstractEngine::checkFactories() { QSettings settings (Qmmp::configFile(), QSettings::IniFormat); QStringList disabledNames = settings.value("Engine/disabled_plugins").toStringList (); - m_files.clear(); + m_files = new QHash ; m_factories = new QList; m_disabledFactories = new QList; @@ -69,7 +69,7 @@ void AbstractEngine::checkFactories() if (factory) { m_factories->append(factory); - m_files << pluginsDir.absoluteFilePath(fileName); + m_files->insert(factory, pluginsDir.absoluteFilePath(fileName)); qApp->installTranslator(factory->createTranslator(qApp)); if(disabledNames.contains(factory->properties().shortName)) m_disabledFactories->append(factory); @@ -166,10 +166,10 @@ bool AbstractEngine::isEnabled(EngineFactory* factory) return !m_disabledFactories->contains(factory); } -QStringList AbstractEngine::files() +QString AbstractEngine::file(EngineFactory *factory) { checkFactories(); - return m_files; + return m_files->value(factory); } QStringList AbstractEngine::protocols() diff --git a/src/qmmp/abstractengine.h b/src/qmmp/abstractengine.h index 7c81d0048..ef3bac7bc 100644 --- a/src/qmmp/abstractengine.h +++ b/src/qmmp/abstractengine.h @@ -102,9 +102,10 @@ public: */ static bool isEnabled(EngineFactory* factory); /*! - * Returns a list of engine plugin files. + * Returns plugin file path. + * @param factory Engine plugin factory. */ - static QStringList files(); + static QString file(EngineFactory *factory); /*! * Returns a list of supported protocols (including meta-protocols). * This fuction ignores disabled engines. @@ -116,7 +117,7 @@ private: static void checkFactories(); static QList *m_factories; static QList *m_disabledFactories; - static QStringList m_files; + static QHash *m_files; }; diff --git a/src/qmmp/decoder.cpp b/src/qmmp/decoder.cpp index 1b556cfdd..7d22a9ca3 100644 --- a/src/qmmp/decoder.cpp +++ b/src/qmmp/decoder.cpp @@ -147,7 +147,7 @@ void Decoder::checkFactories() } } -QString Decoder::filePath(DecoderFactory *factory) +QString Decoder::file(DecoderFactory *factory) { checkFactories(); return m_files->value(factory); diff --git a/src/qmmp/decoder.h b/src/qmmp/decoder.h index be1336bc7..59d547c98 100644 --- a/src/qmmp/decoder.h +++ b/src/qmmp/decoder.h @@ -128,9 +128,10 @@ public: */ static QList *factories(); /*! - * Returns file path of the \b factory + * Returns plugin file path. + * @param factory Decoder plugin factory. */ - static QString filePath(DecoderFactory *factory); + static QString file(DecoderFactory *factory); /*! * Returns a list of supported protocols (including meta-protocols). * This fuction ignores disabled decoders. diff --git a/src/qmmp/effect.cpp b/src/qmmp/effect.cpp index a172cd97b..4d035012e 100644 --- a/src/qmmp/effect.cpp +++ b/src/qmmp/effect.cpp @@ -78,18 +78,18 @@ bool effectCompareFunc(EffectFactory *e1, EffectFactory *e2) //static members QList *Effect::m_factories = 0; -QStringList Effect::m_files; +QHash *Effect::m_files = 0; void Effect::checkFactories() { if (!m_factories) { - m_files.clear(); m_factories = new QList; + m_files = new QHash ; QDir pluginsDir (Qmmp::pluginsPath()); pluginsDir.cd("Effect"); - QHash m_hash; + foreach (QString fileName, pluginsDir.entryList(QDir::Files)) { QPluginLoader loader(pluginsDir.absoluteFilePath(fileName)); @@ -106,15 +106,11 @@ void Effect::checkFactories() if (factory) { m_factories->append(factory); - m_hash.insert(factory, pluginsDir.absoluteFilePath(fileName)); + m_files->insert(factory, pluginsDir.absoluteFilePath(fileName)); qApp->installTranslator(factory->createTranslator(qApp)); } } qSort(m_factories->begin(), m_factories->end(), effectCompareFunc); - foreach(EffectFactory *factory, *m_factories) //generate files list with same order - { - m_files << m_hash.value(factory); - } } } @@ -132,10 +128,10 @@ QList *Effect::factories() return m_factories; } -QStringList Effect::files() +QString Effect::file(EffectFactory *factory) { checkFactories(); - return m_files; + return m_files->value(factory); } void Effect::setEnabled(EffectFactory* factory, bool enable) diff --git a/src/qmmp/effect.h b/src/qmmp/effect.h index eb047e2fc..cdba21985 100644 --- a/src/qmmp/effect.h +++ b/src/qmmp/effect.h @@ -22,6 +22,7 @@ #include #include +#include #include "audioparameters.h" #include "buffer.h" @@ -84,9 +85,10 @@ public: */ static QList *factories(); /*! - * Returns a list of effect plugin file names. + * Returns plugin file path. + * @param factory Effect plugin factory. */ - static QStringList files(); + static QString file(EffectFactory *factory); /*! * Sets whether the effect plugin is enabled. * @param factory Effect plugin factory. @@ -106,7 +108,7 @@ private: Qmmp::AudioFormat m_format; static void checkFactories(); static QList *m_factories; - static QStringList m_files; + static QHash *m_files; }; #endif diff --git a/src/qmmp/enginefactory.h b/src/qmmp/enginefactory.h index 6bc09af66..894fd8a7e 100644 --- a/src/qmmp/enginefactory.h +++ b/src/qmmp/enginefactory.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2009 by Ilya Kotov * + * Copyright (C) 2009-2011 by Ilya Kotov * * forkotov02@hotmail.ru * * * * This program is free software; you can redistribute it and/or modify * @@ -108,6 +108,6 @@ public: virtual QTranslator *createTranslator(QObject *parent) = 0; }; -Q_DECLARE_INTERFACE(EngineFactory, "EngineFactory/1.0"); +Q_DECLARE_INTERFACE(EngineFactory, "EngineFactory/1.0") #endif diff --git a/src/qmmp/inputsource.cpp b/src/qmmp/inputsource.cpp index 2baa0ac32..79a6a6d8c 100644 --- a/src/qmmp/inputsource.cpp +++ b/src/qmmp/inputsource.cpp @@ -72,7 +72,7 @@ void InputSource::addMetaData(const QMap &metaData) // static methods QList *InputSource::m_factories = 0; -QStringList InputSource::m_files; +QHash *InputSource::m_files = 0; InputSource *InputSource::create(const QString &url, QObject *parent) { @@ -109,10 +109,10 @@ QList *InputSource::factories() return m_factories; } -QStringList InputSource::files() +QString InputSource::file(InputSourceFactory *factory) { checkFactories(); - return m_files; + return m_files->value(factory); } QStringList InputSource::protocols() @@ -131,7 +131,7 @@ void InputSource::checkFactories() { if (!m_factories) { - m_files.clear(); + m_files = new QHash ; m_factories = new QList; QDir pluginsDir (Qmmp::pluginsPath()); @@ -151,7 +151,7 @@ void InputSource::checkFactories() if (factory) { m_factories->append(factory); - m_files << pluginsDir.absoluteFilePath(fileName); + m_files->insert(factory, pluginsDir.absoluteFilePath(fileName)); qApp->installTranslator(factory->createTranslator(qApp)); } } diff --git a/src/qmmp/inputsource.h b/src/qmmp/inputsource.h index 583bb9ded..76cbc825a 100644 --- a/src/qmmp/inputsource.h +++ b/src/qmmp/inputsource.h @@ -26,6 +26,7 @@ #include #include #include +#include #include "qmmp.h" #include "inputsourcefactory.h" @@ -99,9 +100,10 @@ public: */ static QList *factories(); /*! - * Returns a list of transport plugin file names. + * Returns plugin file path. + * @param factory Transport plugin factory. */ - static QStringList files(); + static QString file(InputSourceFactory *factory); /*! * Returns a list of supported protocols. */ @@ -124,7 +126,7 @@ private: bool m_hasMetaData; static void checkFactories(); static QList *m_factories; - static QStringList m_files; + static QHash *m_files; }; #endif // INPUTSOURCE_H diff --git a/src/qmmp/output.cpp b/src/qmmp/output.cpp index 44f2ef2df..c2ea483be 100644 --- a/src/qmmp/output.cpp +++ b/src/qmmp/output.cpp @@ -395,13 +395,13 @@ void Output::updateEqSettings() // static methods QList *Output::m_factories = 0; -QStringList Output::m_files; +QHash *Output::m_files = 0; void Output::checkFactories() { if (!m_factories) { - m_files.clear(); + m_files = new QHash ; m_factories = new QList; QDir pluginsDir (Qmmp::pluginsPath()); @@ -421,19 +421,14 @@ void Output::checkFactories() if (factory) { - Output::registerFactory ( factory ); - m_files << pluginsDir.absoluteFilePath(fileName); + m_factories->append (factory); + m_files->insert(factory, pluginsDir.absoluteFilePath(fileName)); qApp->installTranslator(factory->createTranslator(qApp)); } } } } -void Output::registerFactory (OutputFactory *fact) -{ - m_factories->append (fact); -} - Output *Output::create (QObject *parent) { Output *output = 0; @@ -458,10 +453,10 @@ QList *Output::factories() return m_factories; } -QStringList Output::files() +QString Output::file(OutputFactory *factory) { checkFactories(); - return m_files; + return m_files->value(factory); } void Output::setCurrentFactory(OutputFactory* factory) diff --git a/src/qmmp/output.h b/src/qmmp/output.h index 32b05e7d8..d67318c51 100644 --- a/src/qmmp/output.h +++ b/src/qmmp/output.h @@ -12,6 +12,7 @@ #include #include #include +#include #include #include "visual.h" #include "outputfactory.h" @@ -124,9 +125,10 @@ public: */ static QList *factories(); /*! - * Returns a list of output plugin file names. + * Returns plugin file path. + * @param factory Output plugin factory. */ - static QStringList files(); + static QString file(OutputFactory *factory); /*! * Selects current output \b factory. */ @@ -200,10 +202,8 @@ private: qint64 m_visBufferSize; QmmpSettings *m_settings; static void checkFactories(); - static void registerFactory(OutputFactory *); - //TODO use QMap instead static QList *m_factories; - static QStringList m_files; + static QHash *m_files; }; diff --git a/src/qmmp/visual.cpp b/src/qmmp/visual.cpp index 7b4008570..0cf5dc13b 100644 --- a/src/qmmp/visual.cpp +++ b/src/qmmp/visual.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2008 by Ilya Kotov * + * Copyright (C) 2008-2011 by Ilya Kotov * * forkotov02@hotmail.ru * * * * This program is free software; you can redistribute it and/or modify * @@ -23,13 +23,10 @@ #include #include #include - #include "visualfactory.h" #include "output.h" - #include "visual.h" - Visual::Visual(QWidget *parent) : QWidget(parent) { setAttribute(Qt::WA_DeleteOnClose, true); @@ -71,9 +68,9 @@ void Visual::closeEvent (QCloseEvent *event) //static members QList *Visual::m_factories = 0; -QStringList Visual::m_files; +QHash *Visual::m_files = 0; QList Visual::m_visuals; -QMap Visual::m_vis_map; +QHash Visual::m_vis_map; QWidget *Visual::m_parentWidget = 0; QObject *Visual::m_receiver = 0; const char *Visual::m_member = 0; @@ -84,10 +81,10 @@ QList *Visual::factories() return m_factories; } -QStringList Visual::files() +QString Visual::file(VisualFactory *factory) { checkFactories(); - return m_files; + return m_files->value(factory); } void Visual::setEnabled(VisualFactory* factory, bool enable) @@ -200,8 +197,8 @@ void Visual::checkFactories() { if (!m_factories) { - m_files.clear(); m_factories = new QList; + m_files = new QHash ; QDir pluginsDir (Qmmp::pluginsPath()); pluginsDir.cd("Visual"); @@ -221,7 +218,7 @@ void Visual::checkFactories() if (factory) { m_factories->append(factory); - m_files << pluginsDir.absoluteFilePath(fileName); + m_files->insert(factory, pluginsDir.absoluteFilePath(fileName)); qApp->installTranslator(factory->createTranslator(qApp)); } } diff --git a/src/qmmp/visual.h b/src/qmmp/visual.h index 27df2f0b1..6ee4c5bea 100644 --- a/src/qmmp/visual.h +++ b/src/qmmp/visual.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2008-2009 by Ilya Kotov * + * Copyright (C) 2008-2011 by Ilya Kotov * * forkotov02@hotmail.ru * * * * This program is free software; you can redistribute it and/or modify * @@ -23,7 +23,7 @@ #include #include #include -#include +#include class Buffer; class Decoder; @@ -68,9 +68,10 @@ public: */ static QList *factories(); /*! - * Returns a list of visual plugin file names. + * Returns plugin file path. + * @param factory Visual plugin factory. */ - static QStringList files(); + static QString file(VisualFactory *factory); /*! * Sets whether the visual plugin is enabled. * @param factory Visual plugin factory. @@ -127,10 +128,10 @@ private: QMutex m_mutex; static QList *m_factories; - static QStringList m_files; + static QHash *m_files; static void checkFactories(); static QList m_visuals; - static QMap m_vis_map; //internal visualization + static QHash m_vis_map; //internal visualization static QWidget *m_parentWidget; static QObject *m_receiver; static const char *m_member; diff --git a/src/qmmpui/commandlinemanager.cpp b/src/qmmpui/commandlinemanager.cpp index e4e8dfab1..2409a2ce2 100644 --- a/src/qmmpui/commandlinemanager.cpp +++ b/src/qmmpui/commandlinemanager.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2008-2010 by Ilya Kotov * + * Copyright (C) 2008-2011 by Ilya Kotov * * forkotov02@hotmail.ru * * * * This program is free software; you can redistribute it and/or modify * @@ -33,14 +33,14 @@ using namespace std; QList *CommandLineManager::m_options = 0; -QStringList CommandLineManager::m_files; +QHash *CommandLineManager::m_files = 0; void CommandLineManager::checkOptions() { if (!m_options) { - m_files.clear(); m_options = new QList; + m_files = new QHash; QDir pluginsDir (Qmmp::pluginsPath()); pluginsDir.cd("CommandLineOptions"); @@ -60,7 +60,7 @@ void CommandLineManager::checkOptions() if (option) { m_options->append(option); - m_files << pluginsDir.absoluteFilePath(fileName); + m_files->insert(option, pluginsDir.absoluteFilePath(fileName)); qApp->installTranslator(option->createTranslator(qApp)); } } diff --git a/src/qmmpui/commandlinemanager.h b/src/qmmpui/commandlinemanager.h index eab7c46e1..3e395cccb 100644 --- a/src/qmmpui/commandlinemanager.h +++ b/src/qmmpui/commandlinemanager.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2008-2010 by Ilya Kotov * + * Copyright (C) 2008-2011 by Ilya Kotov * * forkotov02@hotmail.ru * * * * This program is free software; you can redistribute it and/or modify * @@ -20,6 +20,7 @@ #ifndef COMMANDLINEMANAGER_H #define COMMANDLINEMANAGER_H +#include #include "general.h" #include "commandlineoption.h" @@ -49,7 +50,7 @@ public: private: static void checkOptions(); static QList *m_options; - static QStringList m_files; + static QHash *m_files; }; #endif diff --git a/src/qmmpui/commandlineoption.h b/src/qmmpui/commandlineoption.h index bd06cf0ee..ad99077c5 100644 --- a/src/qmmpui/commandlineoption.h +++ b/src/qmmpui/commandlineoption.h @@ -63,6 +63,6 @@ public: virtual ~CommandLineOption() {} }; -Q_DECLARE_INTERFACE(CommandLineOption,"CommandLineOptionInterface/1.0"); +Q_DECLARE_INTERFACE(CommandLineOption,"CommandLineOptionInterface/1.0") #endif diff --git a/src/qmmpui/configdialog.cpp b/src/qmmpui/configdialog.cpp index 9017f4ee3..0dcb95117 100644 --- a/src/qmmpui/configdialog.cpp +++ b/src/qmmpui/configdialog.cpp @@ -160,10 +160,10 @@ void ConfigDialog::loadPluginsInfo() load transport plugin information */ QTreeWidgetItem *item = new QTreeWidgetItem (m_ui->treeWidget, QStringList() << tr("Transports")); - QList *transports = InputSource::factories(); - QStringList files = InputSource::files(); - for (int i = 0; i < transports->count (); ++i) - new PluginItem (item, transports->at(i), files.at (i)); + foreach(InputSourceFactory *factory, *InputSource::factories()) + { + new PluginItem (item, factory, InputSource::file(factory)); + } m_ui->treeWidget->addTopLevelItem(item); item->setExpanded(true); /* @@ -172,7 +172,7 @@ void ConfigDialog::loadPluginsInfo() item = new QTreeWidgetItem (m_ui->treeWidget, QStringList() << tr("Decoders")); foreach(DecoderFactory *factory, *Decoder::factories()) { - new PluginItem (item, factory, Decoder::filePath(factory)); + new PluginItem (item, factory, Decoder::file(factory)); } m_ui->treeWidget->addTopLevelItem(item); item->setExpanded(true); @@ -180,40 +180,40 @@ void ConfigDialog::loadPluginsInfo() load audio engines information */ item = new QTreeWidgetItem (m_ui->treeWidget, QStringList() << tr("Engines")); - QList *engines = AbstractEngine::factories(); - files = AbstractEngine::files(); - for (int i = 0; i < engines->count (); ++i) - new PluginItem (item, engines->at(i), files.at (i)); + foreach(EngineFactory *factory, *AbstractEngine::factories()) + { + new PluginItem (item, factory, AbstractEngine::file(factory)); + } m_ui->treeWidget->addTopLevelItem(item); item->setExpanded(true); /* load effect plugin information */ item = new QTreeWidgetItem (m_ui->treeWidget, QStringList() << tr("Effects")); - QList *effects = Effect::factories(); - files = Effect::files(); - for (int i = 0; i < effects->count (); ++i) - new PluginItem (item, effects->at(i), files.at (i)); + foreach(EffectFactory *factory, *Effect::factories()) + { + new PluginItem (item, factory, Effect::file(factory)); + } m_ui->treeWidget->addTopLevelItem(item); item->setExpanded(true); /* load visual plugin information */ item = new QTreeWidgetItem (m_ui->treeWidget, QStringList() << tr("Visualization")); - QList *visuals = Visual::factories(); - files = Visual::files(); - for (int i = 0; i < visuals->count (); ++i) - new PluginItem (item, visuals->at(i), files.at (i)); + foreach(VisualFactory *factory, *Visual::factories()) + { + new PluginItem (item, factory, Visual::file(factory)); + } m_ui->treeWidget->addTopLevelItem(item); item->setExpanded(true); /* load general plugin information */ item = new QTreeWidgetItem (m_ui->treeWidget, QStringList() << tr("General")); - QList *generals = General::factories(); - files = General::files(); - for (int i = 0; i < generals->count (); ++i) - new PluginItem (item, generals->at(i), files.at (i)); + foreach(GeneralFactory *factory, *General::factories()) + { + new PluginItem (item, factory, General::file(factory)); + } m_ui->treeWidget->addTopLevelItem(item); item->setExpanded(true); diff --git a/src/qmmpui/general.cpp b/src/qmmpui/general.cpp index 2ae7b7199..9fc1a8703 100644 --- a/src/qmmpui/general.cpp +++ b/src/qmmpui/general.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2008-2010 by Ilya Kotov * + * Copyright (C) 2008-2011 by Ilya Kotov * * forkotov02@hotmail.ru * * * * This program is free software; you can redistribute it and/or modify * @@ -26,16 +26,16 @@ #include "general.h" QList *General::m_factories = 0; -QStringList General::m_files; -QMap *General::m_generals = 0; +QHash *General::m_files = 0; +QHash *General::m_generals = 0; QObject *General::m_parent = 0; void General::checkFactories() { if (!m_factories) { - m_files.clear(); m_factories = new QList; + m_files = new QHash ; QDir pluginsDir (Qmmp::pluginsPath()); pluginsDir.cd("General"); foreach (QString fileName, pluginsDir.entryList(QDir::Files)) @@ -54,7 +54,7 @@ void General::checkFactories() if (factory) { m_factories->append(factory); - m_files << pluginsDir.absoluteFilePath(fileName); + m_files->insert(factory, pluginsDir.absoluteFilePath(fileName)); qApp->installTranslator(factory->createTranslator(qApp)); } } @@ -65,7 +65,7 @@ void General::create(QObject *parent) { if(m_generals) return; - m_generals = new QMap (); + m_generals = new QHash (); m_parent = parent; checkFactories(); foreach(GeneralFactory* factory, *General::factories()) @@ -84,10 +84,10 @@ QList *General::factories() return m_factories; } -QStringList General::files() +QString General::file(GeneralFactory *factory) { checkFactories(); - return m_files; + return m_files->value(factory); } void General::setEnabled(GeneralFactory* factory, bool enable) diff --git a/src/qmmpui/general.h b/src/qmmpui/general.h index 502867957..95cf76132 100644 --- a/src/qmmpui/general.h +++ b/src/qmmpui/general.h @@ -22,7 +22,7 @@ #include #include -#include +#include #include "generalfactory.h" /*! @brief The General class provides simple access to general plugins @@ -41,9 +41,10 @@ public: */ static QList *factories(); /*! - * Returns a list of the loaded general plugin files. + * Returns plugin file path. + * @param factory General plugin factory. */ - static QStringList files(); + static QString file(GeneralFactory *factory); /*! * Sets whether the general plugin is enabled. * @param factory General plugin factory. @@ -63,10 +64,10 @@ public: static bool isEnabled(GeneralFactory* factory); private: - static QList *m_factories; - static QStringList m_files; static void checkFactories(); - static QMap *m_generals; + static QList *m_factories; + static QHash *m_generals; + static QHash *m_files; static QObject *m_parent; }; diff --git a/src/qmmpui/uiloader.cpp b/src/qmmpui/uiloader.cpp index 0209d5682..9eb7cd11b 100644 --- a/src/qmmpui/uiloader.cpp +++ b/src/qmmpui/uiloader.cpp @@ -26,14 +26,14 @@ #include "uiloader.h" QList *UiLoader::m_factories = 0; -QStringList UiLoader::m_files; +QHash *UiLoader::m_files = 0; void UiLoader::checkFactories() { if (!m_factories) { - m_files.clear(); m_factories = new QList; + m_files = new QHash ; QDir pluginsDir(Qmmp::pluginsPath()); pluginsDir.cd("Ui"); foreach (QString fileName, pluginsDir.entryList(QDir::Files)) @@ -52,7 +52,7 @@ void UiLoader::checkFactories() if (factory) { m_factories->append(factory); - m_files << pluginsDir.absoluteFilePath(fileName); + m_files->insert(factory, pluginsDir.absoluteFilePath(fileName)); qApp->installTranslator(factory->createTranslator(qApp)); } } @@ -65,10 +65,10 @@ QList *UiLoader::factories() return m_factories; } -QStringList UiLoader::files() +QString UiLoader::file(UiFactory *factory) { checkFactories(); - return m_files; + return m_files->value(factory); } void UiLoader::select(UiFactory* factory) diff --git a/src/qmmpui/uiloader.h b/src/qmmpui/uiloader.h index 27b766f39..5ea46ccf3 100644 --- a/src/qmmpui/uiloader.h +++ b/src/qmmpui/uiloader.h @@ -21,7 +21,7 @@ #define UI_H #include -#include +#include #include "uifactory.h" /*! @brief The UiLoader provides user interface plugins access @@ -35,9 +35,10 @@ public: */ static QList *factories(); /*! - * Returns a list of the loaded ui plugin files. + * Returns plugin file path. + * @param factory User interface plugin factory. */ - static QStringList files(); + static QString file(UiFactory *factory); /*! * Selects active user interface factory. * @param factory Ui plugin factory. @@ -51,7 +52,7 @@ public: private: static QList *m_factories; - static QStringList m_files; + static QHash *m_files; static void checkFactories(); }; -- cgit v1.2.3-13-gbd6f