From 3e2db4ea53d477c27c0fafdc29123c51e7ef9f79 Mon Sep 17 00:00:00 2001 From: Huevos Date: Sat, 27 Dec 2014 20:32:10 +0100 Subject: [PATCH] [EPG] Add option to delete EPG cache in cases of corruption. Accessed via EPG Load/Save menu. --- data/menu.xml | 19 +++++++++++++++++-- lib/dvb/epgcache.h | 2 +- lib/python/Components/EpgLoadSave.py | 5 +++++ 3 files changed, 23 insertions(+), 3 deletions(-) diff --git a/data/menu.xml b/data/menu.xml index 0e2bed90733..d4836e3659a 100644 --- a/data/menu.xml +++ b/data/menu.xml @@ -51,7 +51,7 @@ - + @@ -73,6 +73,21 @@ def msgClosed(ret): epgcache = eEPGCache.getInstance() epgcache.load() self.session.openWithCallback(msgClosed, EpgLoadMsg) + + + + +from Components.EpgLoadSave import EpgDeleteMsg +def msgClosed(ret): + if ret: + import os + from Components.config import config + if os.path.exists(config.misc.epgcache_filename.value): + os.remove(config.misc.epgcache_filename.value) + from enigma import eEPGCache + epgcache = eEPGCache.getInstance() + epgcache.flushEPG() +self.session.openWithCallback(msgClosed, EpgDeleteMsg) @@ -122,7 +137,7 @@ self.session.open(SABnzbdSetupScreen) - + diff --git a/lib/dvb/epgcache.h b/lib/dvb/epgcache.h index 8a282101788..c4839f79d9a 100644 --- a/lib/dvb/epgcache.h +++ b/lib/dvb/epgcache.h @@ -329,7 +329,6 @@ class eEPGCache: public eMainloop, private eThread, public Object #endif void sectionRead(const uint8_t *data, int source, channel_data *channel); void gotMessage(const Message &message); - void flushEPG(const uniqueEPGKey & s=uniqueEPGKey()); void cleanLoop(); // called from main thread @@ -350,6 +349,7 @@ class eEPGCache: public eMainloop, private eThread, public Object void save(); void load(); void timeUpdated(); + void flushEPG(const uniqueEPGKey & s=uniqueEPGKey()); #ifndef SWIG eEPGCache(); ~eEPGCache(); diff --git a/lib/python/Components/EpgLoadSave.py b/lib/python/Components/EpgLoadSave.py index 630bdd5fe05..01c748be7e2 100644 --- a/lib/python/Components/EpgLoadSave.py +++ b/lib/python/Components/EpgLoadSave.py @@ -108,3 +108,8 @@ class EpgLoadMsg(MessageBox): def __init__(self, session): MessageBox.__init__(self, session, _("Are you sure you want to reload the EPG data from:\n") + config.misc.epgcache_filename.value, MessageBox.TYPE_YESNO) self.skinName = "MessageBox" + +class EpgDeleteMsg(MessageBox): + def __init__(self, session): + MessageBox.__init__(self, session, _("Are you sure you want to delete the EPG data from:\n") + config.misc.epgcache_filename.value, MessageBox.TYPE_YESNO, default=False) + self.skinName = "MessageBox"