From: Andreas Monzner Date: Tue, 27 May 2008 10:20:36 +0000 (+0000) Subject: fix crash when more than one satellites is removed X-Git-Tag: 2.6.0~1219 X-Git-Url: https://git.cweiske.de/enigma2.git/commitdiff_plain/dc2fae0009c67e51c9e85e28693f47df8aa4b60c fix crash when more than one satellites is removed --- diff --git a/lib/python/Screens/Satconfig.py b/lib/python/Screens/Satconfig.py index bd97948f..f3ab6be3 100644 --- a/lib/python/Screens/Satconfig.py +++ b/lib/python/Screens/Satconfig.py @@ -149,37 +149,7 @@ class NimSetup(Screen, ConfigListScreen): dt = datetime(1970, 1, 1, tm.tm_hour, tm.tm_min) x[1].value = int(mktime(dt.timetuple())) x[1].save() - - old_configured_sats = nimmanager.getConfiguredSats() nimmanager.sec.update() - new_configured_sats = nimmanager.getConfiguredSats() - self.unconfed_sats = old_configured_sats - new_configured_sats - self.satpos_to_remove = None - self.deleteConfirmed(False) - - def deleteConfirmed(self, confirmed): - if confirmed: - eDVBDB.getInstance().removeServices(-1, -1, -1, self.satpos_to_remove) - - if self.satpos_to_remove is not None: - self.unconfed_sats.remove(self.satpos_to_remove) - - self.satpos_to_remove = None - for orbpos in self.unconfed_sats: - self.satpos_to_remove = orbpos - orbpos = self.satpos_to_remove - try: - # why we need this cast? - sat_name = str(nimmanager.getSatDescription(orbpos)) - except: - if orbpos > 1800: # west - orbpos = 3600 - orbpos - h = _("W") - else: - h = _("E") - sat_name = ("%d.%d" + h) % (orbpos / 10, orbpos % 10) - self.session.openWithCallback(self.deleteConfirmed, MessageBox, _("Delete no more configured satellite\n%s?") %(sat_name)) - break def fillListWithAdvancedSatEntrys(self, Sat): currLnb = self.nimConfig.advanced.lnb[int(Sat.lnb.value)] @@ -249,8 +219,38 @@ class NimSetup(Screen, ConfigListScreen): self["config"].list = self.list def keySave(self): + old_configured_sats = nimmanager.getConfiguredSats() self.run() - self.close() + new_configured_sats = nimmanager.getConfiguredSats() + self.unconfed_sats = old_configured_sats - new_configured_sats + self.satpos_to_remove = None + self.deleteConfirmed(False) + + def deleteConfirmed(self, confirmed): + if confirmed: + eDVBDB.getInstance().removeServices(-1, -1, -1, self.satpos_to_remove) + + if self.satpos_to_remove is not None: + self.unconfed_sats.remove(self.satpos_to_remove) + + self.satpos_to_remove = None + for orbpos in self.unconfed_sats: + self.satpos_to_remove = orbpos + orbpos = self.satpos_to_remove + try: + # why we need this cast? + sat_name = str(nimmanager.getSatDescription(orbpos)) + except: + if orbpos > 1800: # west + orbpos = 3600 - orbpos + h = _("W") + else: + h = _("E") + sat_name = ("%d.%d" + h) % (orbpos / 10, orbpos % 10) + self.session.openWithCallback(self.deleteConfirmed, MessageBox, _("Delete no more configured satellite\n%s?") %(sat_name)) + break + if not self.satpos_to_remove: + self.close() def __init__(self, session, slotid): Screen.__init__(self, session)