aboutsummaryrefslogtreecommitdiff
path: root/src/qmmpui/qmmpuiplugincache.cpp
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2013-05-13 17:13:32 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2013-05-13 17:13:32 +0000
commit623485b2c143d736656134750c8004c437cd6d68 (patch)
treea7598a8337fc9f3565d3544c07a0539d03ae3afb /src/qmmpui/qmmpuiplugincache.cpp
parentd26972aaac0fa0ec67b9958a79eff90e09d3df30 (diff)
downloadqmmp-623485b2c143d736656134750c8004c437cd6d68.tar.gz
qmmp-623485b2c143d736656134750c8004c437cd6d68.tar.bz2
qmmp-623485b2c143d736656134750c8004c437cd6d68.zip
added cache for ui plugins
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@3465 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/qmmpui/qmmpuiplugincache.cpp')
-rw-r--r--src/qmmpui/qmmpuiplugincache.cpp18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/qmmpui/qmmpuiplugincache.cpp b/src/qmmpui/qmmpuiplugincache.cpp
index ff804c131..b4a88ac2f 100644
--- a/src/qmmpui/qmmpuiplugincache.cpp
+++ b/src/qmmpui/qmmpuiplugincache.cpp
@@ -25,6 +25,7 @@
#include <QApplication>
#include <QTranslator>
#include "generalfactory.h"
+#include "uifactory.h"
#include "qmmpuiplugincache_p.h"
QmmpUiPluginCache::QmmpUiPluginCache(const QString &file, QSettings *settings)
@@ -32,6 +33,7 @@ QmmpUiPluginCache::QmmpUiPluginCache(const QString &file, QSettings *settings)
m_error = false;
m_instance = 0;
m_generalFactory = 0;
+ m_uiFactory = 0;
m_priority = 0;
bool update = false;
QFileInfo info(file);
@@ -66,6 +68,11 @@ QmmpUiPluginCache::QmmpUiPluginCache(const QString &file, QSettings *settings)
m_shortName = factory->properties().shortName;
m_priority = 0;
}
+ else if(UiFactory *factory = uiFactory())
+ {
+ m_shortName = factory->properties().shortName;
+ m_priority = 0;
+ }
else
{
qWarning("QmmpUiPluginCache: unknown plugin type: %s", qPrintable(m_path));
@@ -117,6 +124,17 @@ GeneralFactory *QmmpUiPluginCache::generalFactory()
return m_generalFactory;
}
+UiFactory *QmmpUiPluginCache::uiFactory()
+{
+ if(!m_uiFactory)
+ {
+ m_uiFactory = qobject_cast<UiFactory *> (instance());
+ if(m_uiFactory)
+ qApp->installTranslator(m_uiFactory->createTranslator(qApp));
+ }
+ return m_uiFactory;
+}
+
QObject *QmmpUiPluginCache::instance()
{
if(m_error)