Merge branch 'master' into experimental
authorStefan Pluecken <stefan.pluecken@multimedia-labs.de>
Fri, 6 Nov 2009 17:17:22 +0000 (18:17 +0100)
committerStefan Pluecken <stefan.pluecken@multimedia-labs.de>
Fri, 6 Nov 2009 17:17:22 +0000 (18:17 +0100)
Conflicts:
lib/python/Components/config.py

lib/python/Components/NimManager.py
lib/python/Components/config.py
lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py
lib/python/Screens/ScanSetup.py

index 70cde47..c339947 100644 (file)
@@ -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)
index 876e3a3..a1f3d2c 100755 (executable)
@@ -1184,12 +1184,25 @@ class ConfigSatlist(ConfigSelection):
        def __init__(self, list, default = None):
                if default is not None:
                        default = str(default)
-               ConfigSelection.__init__(self, choices = [(str(orbpos), desc) for (orbpos, desc, flags) in list], default = default)
+               list.sort(key = lambda x: int(x[0]))
+               self._satList = list
+               choices = [(str(orbpos), desc) for (orbpos, desc, flags) in list]
+               
+               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)
 
index fa533c0..ea62550 100644 (file)
@@ -484,8 +484,8 @@ class TunerScreen(ScanSetup):
                self.updateTransponders()
 
        def updateTransponders(self):
-               if len(tuning.sat.choices):
-                       transponderlist = nimmanager.getTransponders(int(tuning.sat.value))
+               if len(tuning.sat.satList):
+                       transponderlist = nimmanager.getTransponders(tuning.sat.orbital_position)
                        tps = []
                        cnt=0
                        for x in transponderlist:
index d0af8f7..aed9026 100644 (file)
@@ -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)