From d66c36f6534f32c7362c45965051cf84ccf84ba9 Mon Sep 17 00:00:00 2001 From: Stefan Pluecken Date: Fri, 6 Nov 2009 16:23:29 +0100 Subject: [PATCH] fixes bug #258 removed some wrong ConfigSatList handling --- lib/python/Components/NimManager.py | 8 ++++---- lib/python/Components/config.py | 12 +++++++++++- lib/python/Screens/ScanSetup.py | 5 ++--- 3 files changed, 17 insertions(+), 8 deletions(-) diff --git a/lib/python/Components/NimManager.py b/lib/python/Components/NimManager.py index 5154e2b0..47325327 100644 --- a/lib/python/Components/NimManager.py +++ b/lib/python/Components/NimManager.py @@ -799,15 +799,15 @@ class NimManager: dm = nim.diseqcMode.value if dm in ("single", "toneburst_a_b", "diseqc_a_b", "diseqc_a_b_c_d"): if nim.diseqcA.orbital_position != 3601: - list.append(self.satList[nim.diseqcA.index-1]) + list.append(nim.diseqcA.getSat()) if dm in ("toneburst_a_b", "diseqc_a_b", "diseqc_a_b_c_d"): if nim.diseqcB.orbital_position != 3601: - list.append(self.satList[nim.diseqcB.index-1]) + list.append(nim.diseqcB.getSat()) if dm == "diseqc_a_b_c_d": if nim.diseqcC.orbital_position != 3601: - list.append(self.satList[nim.diseqcC.index-1]) + list.append(nim.diseqcC.getSat()) if nim.diseqcD.orbital_position != 3601: - list.append(self.satList[nim.diseqcD.index-1]) + list.append(nim.diseqcD.getSat()) if dm == "positioner": for x in self.satList: list.append(x) diff --git a/lib/python/Components/config.py b/lib/python/Components/config.py index 49501f95..cf2c5e29 100755 --- a/lib/python/Components/config.py +++ b/lib/python/Components/config.py @@ -1148,15 +1148,25 @@ class ConfigSatlist(ConfigSelection): def __init__(self, list, default = None): if default is not None: default = str(default) + list.sort(key = lambda x: int(x[0])) + self._satList = list choices = [(str(orbpos), desc) for (orbpos, desc, flags) in list] - choices.sort(key = lambda x: int(x[0])) ConfigSelection.__init__(self, choices = choices, default = default) + # use this function to get the orbital position, don't rely on .index def getOrbitalPosition(self): if self.value == "": return None return int(self.value) + + def getSatList(self): + return self._satList + + def getSat(self): + return self.satList[self.index] + + satList = property(getSatList) orbital_position = property(getOrbitalPosition) diff --git a/lib/python/Screens/ScanSetup.py b/lib/python/Screens/ScanSetup.py index d0af8f7e..aed90268 100644 --- a/lib/python/Screens/ScanSetup.py +++ b/lib/python/Screens/ScanSetup.py @@ -729,11 +729,10 @@ class ScanSetup(ConfigListScreen, Screen, CableTransponderSearchSupport): assert len(self.scan_satselection) > index_to_scan nimsats = self.satList[index_to_scan] - selsatidx = self.scan_satselection[index_to_scan].index + orbpos = self.scan_satselection[index_to_scan].getOrbitalPosition() # however, the satList itself could be empty. in that case, "index" is 0 (for "None"). if len(nimsats): - orbpos = nimsats[selsatidx][0] if self.scan_sat.system.value == eDVBFrontendParametersSatellite.System_DVB_S: fec = self.scan_sat.fec.value else: @@ -751,7 +750,7 @@ class ScanSetup(ConfigListScreen, Screen, CableTransponderSearchSupport): self.scan_sat.pilot.value) removeAll = False elif self.scan_type.value == "single_satellite": - sat = self.satList[index_to_scan][self.scan_satselection[index_to_scan].index] + sat = self.scan_satselection[index_to_scan].getSat() getInitialTransponderList(tlist, sat[0]) elif self.scan_type.value.find("multisat") != -1: SatList = nimmanager.getSatListForNim(index_to_scan) -- 2.30.2