diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2013-05-12 11:23:27 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2013-05-12 11:23:27 +0000 |
| commit | d8330bbd242f9860a4bdac7fff88b824ccee72c0 (patch) | |
| tree | e6eaeaefaa2a76ddbed7ac0458f67de67929cbfc | |
| parent | f0fa82b3cb423735fbeee0487e5e7ca422ff39ff (diff) | |
| download | qmmp-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.cpp | 1 | ||||
| -rw-r--r-- | src/qmmp/qmmpplugincache.cpp | 16 | ||||
| -rw-r--r-- | src/qmmp/qmmpplugincache_p.h | 2 |
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; |
