diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2013-05-14 11:57:45 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2013-05-14 11:57:45 +0000 |
| commit | d8073e08b4b58ce02ef94ff124a8724f7d466cae (patch) | |
| tree | fe7799f3d735bcbf1212c82c30200b3078febb39 /src/qmmpui/qmmpuiplugincache.cpp | |
| parent | 1826b12a65687057909cc3e3b4836b0f8bcafee6 (diff) | |
| download | qmmp-d8073e08b4b58ce02ef94ff124a8724f7d466cae.tar.gz qmmp-d8073e08b4b58ce02ef94ff124a8724f7d466cae.tar.bz2 qmmp-d8073e08b4b58ce02ef94ff124a8724f7d466cae.zip | |
added file dialog cache
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@3467 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/qmmpui/qmmpuiplugincache.cpp')
| -rw-r--r-- | src/qmmpui/qmmpuiplugincache.cpp | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/src/qmmpui/qmmpuiplugincache.cpp b/src/qmmpui/qmmpuiplugincache.cpp index b4a88ac2f..2586f01ed 100644 --- a/src/qmmpui/qmmpuiplugincache.cpp +++ b/src/qmmpui/qmmpuiplugincache.cpp @@ -26,6 +26,7 @@ #include <QTranslator> #include "generalfactory.h" #include "uifactory.h" +#include "filedialogfactory.h" #include "qmmpuiplugincache_p.h" QmmpUiPluginCache::QmmpUiPluginCache(const QString &file, QSettings *settings) @@ -34,6 +35,7 @@ QmmpUiPluginCache::QmmpUiPluginCache(const QString &file, QSettings *settings) m_instance = 0; m_generalFactory = 0; m_uiFactory = 0; + m_fileDialogFactory = 0; m_priority = 0; bool update = false; QFileInfo info(file); @@ -73,6 +75,11 @@ QmmpUiPluginCache::QmmpUiPluginCache(const QString &file, QSettings *settings) m_shortName = factory->properties().shortName; m_priority = 0; } + else if(FileDialogFactory *factory = fileDialogFactory()) + { + m_shortName = factory->properties().shortName; + m_priority = 0; + } else { qWarning("QmmpUiPluginCache: unknown plugin type: %s", qPrintable(m_path)); @@ -93,6 +100,39 @@ QmmpUiPluginCache::QmmpUiPluginCache(const QString &file, QSettings *settings) settings->endGroup(); } +QmmpUiPluginCache::QmmpUiPluginCache(QObject *instance) +{ + m_error = false; + m_instance = instance; + m_generalFactory = 0; + m_uiFactory = 0; + m_fileDialogFactory = 0; + m_priority = 0; + + if(GeneralFactory *factory = generalFactory()) + { + m_shortName = factory->properties().shortName; + m_priority = 0; + } + else if(UiFactory *factory = uiFactory()) + { + m_shortName = factory->properties().shortName; + m_priority = 0; + } + else if(FileDialogFactory *factory = fileDialogFactory()) + { + m_shortName = factory->properties().shortName; + m_priority = 0; + } + else + { + qWarning("QmmpUiPluginCache: unknown plugin type"); + m_error = true; + return; + } + qDebug("QmmpUiPluginCache: registered internal factory %s", qPrintable(m_shortName)); +} + const QString QmmpUiPluginCache::shortName() const { return m_shortName; @@ -135,6 +175,17 @@ UiFactory *QmmpUiPluginCache::uiFactory() return m_uiFactory; } +FileDialogFactory *QmmpUiPluginCache::fileDialogFactory() +{ + if(!m_fileDialogFactory) + { + m_fileDialogFactory = qobject_cast<FileDialogFactory *> (instance()); + if(m_fileDialogFactory) + qApp->installTranslator(m_fileDialogFactory->createTranslator(qApp)); + } + return m_fileDialogFactory; +} + QObject *QmmpUiPluginCache::instance() { if(m_error) |
