config.py: fix set/getValue for ConfigSelectionNumber
[enigma2.git] / lib / python / Components / config.py
index baa6c35ba77ae41922c6d8cdbf8b3e90874312e0..1f8709b38cbe28741b7100781199997fca8b4663 100755 (executable)
@@ -1017,6 +1017,40 @@ class ConfigPassword(ConfigText):
                ConfigText.onDeselect(self, session)
                self.hidden = True
 
+# lets the user select between [min, min+stepwidth, min+(stepwidth*2)..., maxval] with maxval <= max depending
+# on the stepwidth
+# min, max, stepwidth, default are int values
+# wraparound: pressing RIGHT key at max value brings you to min value and vice versa if set to True
+class ConfigSelectionNumber(ConfigSelection):
+       def __init__(self, min, max, stepwidth, default = None, wraparound = False):
+               self.wraparound = wraparound
+               if default is None:
+                       default = min
+               default = str(default)
+               choices = []
+               step = min
+               while step <= max:
+                       choices.append(str(step))
+                       step += stepwidth
+               
+               ConfigSelection.__init__(self, choices, default)
+
+       def getValue(self):
+               return int(ConfigSelection.getValue(self))
+
+       def setValue(self, val):
+               ConfigSelection.setValue(self, str(val))
+
+       def handleKey(self, key):
+               if not self.wraparound:
+                       if key == KEY_RIGHT:
+                               if len(self.choices) == (self.choices.index(self.value) + 1):
+                                       return
+                       if key == KEY_LEFT:
+                               if self.choices.index(self.value) == 0:
+                                       return
+               ConfigSelection.handleKey(self, key)
+
 class ConfigNumber(ConfigText):
        def __init__(self, default = 0):
                ConfigText.__init__(self, str(default), fixed_size = False)
@@ -1148,24 +1182,12 @@ class ConfigSatlist(ConfigSelection):
        def __init__(self, list, default = None):
                if default is not None:
                        default = str(default)
-               self._satList = list
-               choices = [(str(orbpos), desc) for (orbpos, desc, flags) in list]
-               
-               ConfigSelection.__init__(self, choices = choices, default = default)
+               ConfigSelection.__init__(self, choices = [(str(orbpos), desc) for (orbpos, desc, flags) in list], 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)