aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2013-05-12 11:23:27 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2013-05-12 11:23:27 +0000
commitd8330bbd242f9860a4bdac7fff88b824ccee72c0 (patch)
treee6eaeaefaa2a76ddbed7ac0458f67de67929cbfc
parentf0fa82b3cb423735fbeee0487e5e7ca422ff39ff (diff)
downloadqmmp-d8330bbd242f9860a4bdac7fff88b824ccee72c0.tar.gz
qmmp-d8330bbd242f9860a4bdac7fff88b824ccee72c0.tar.bz2
qmmp-d8330bbd242f9860a4bdac7fff88b824ccee72c0.zip
added cache cleanup
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@3445 90c681e8-e032-0410-971d-27865f9a5e38
-rw-r--r--src/qmmp/decoder.cpp1
-rw-r--r--src/qmmp/qmmpplugincache.cpp16
-rw-r--r--src/qmmp/qmmpplugincache_p.h2
3 files changed, 19 insertions, 0 deletions
diff --git a/src/qmmp/decoder.cpp b/src/qmmp/decoder.cpp
index a41efacdd..bf4b50be2 100644
--- a/src/qmmp/decoder.cpp
+++ b/src/qmmp/decoder.cpp
@@ -113,6 +113,7 @@ void Decoder::checkFactories()
}
m_disabledNames = settings.value("Decoder/disabled_plugins").toStringList();
qSort(m_cache->begin(), m_cache->end(), _pluginCacheLessComparator);
+ QmmpPluginCache::clearCache(&settings);
}
QString Decoder::file(DecoderFactory *factory)
diff --git a/src/qmmp/qmmpplugincache.cpp b/src/qmmp/qmmpplugincache.cpp
index 68643d1de..b98020327 100644
--- a/src/qmmp/qmmpplugincache.cpp
+++ b/src/qmmp/qmmpplugincache.cpp
@@ -137,3 +137,19 @@ QObject *QmmpPluginCache::instance()
}
return m_instance;
}
+
+void QmmpPluginCache::cleanup(QSettings *settings)
+{
+ settings->beginGroup("PluginCache");
+
+ foreach (QString key, settings->allKeys())
+ {
+ //TODO win32 support
+ if(!QFile::exists("/" + key))
+ {
+ settings->remove(key);
+ qDebug("QmmpPluginCache: removed key %s", qPrintable(key));
+ }
+ }
+ settings->endGroup();
+}
diff --git a/src/qmmp/qmmpplugincache_p.h b/src/qmmp/qmmpplugincache_p.h
index 028e1f561..ec76b986c 100644
--- a/src/qmmp/qmmpplugincache_p.h
+++ b/src/qmmp/qmmpplugincache_p.h
@@ -46,6 +46,8 @@ public:
//OutputFactory *outputFactory();
//EngineFactory *engineFactory();
+ static void cleanup(QSettings *settings);
+
private:
QObject *instance();
QString m_path;