get rid of hardcoded path to cdrom device
[enigma2.git] / lib / python / Components / config.py
index 8cb70987413188fd09bf91dfce4d68c11ba7dee2..a70f0d47fcf85155c6fd8ac7317a1a6021ac30c2 100644 (file)
@@ -213,6 +213,11 @@ class ConfigSelection(ConfigElement):
                        self.value = self.choices[0]
                elif key == KEY_END:
                        self.value = self.choices[nchoices - 1]
+                       
+       def selectNext(self):
+               nchoices = len(self.choices)
+               i = self.choices.index(self.value)
+               self.value = self.choices[(i + 1) % nchoices]
 
        def getText(self):
                descr = self.description[self.value]
@@ -502,6 +507,20 @@ class ConfigIP(ConfigSequence):
        def getHTML(self, id):
                # we definitely don't want leading zeros
                return '.'.join(["%d" % d for d in self.value])
+       
+       def genText(self):
+               value = ""
+               mPos = self.marked_pos
+               num = 0;
+               for i in self._value:
+                       if len(value):
+                               value += self.seperator
+                               if mPos >= len(value) - 1:
+                                       mPos += 1
+                       value += (" " * (len(str(self.limits[num][1]))-len(str(i))))
+                       value += str(i)
+                       num += 1
+               return (value, mPos)
 
 class ConfigMAC(ConfigSequence):
        def __init__(self, default):
@@ -743,6 +762,26 @@ class ConfigText(ConfigElement, NumericalTextInput):
        def unsafeAssign(self, value):
                self.value = str(value)
 
+class ConfigPassword(ConfigText):
+       def __init__(self, default = "", fixed_size = False, visible_width = False, censor = "*"):
+               ConfigText.__init__(self, default = default, fixed_size = fixed_size, visible_width = visible_width)
+               self.censor_char = censor
+               self.hidden = True
+
+       def getMulti(self, selected):
+               mtext, text, mark = ConfigText.getMulti(self, selected)
+               if self.hidden:
+                       text = len(text) * self.censor_char
+               return (mtext, text, mark)
+                       
+       def onSelect(self, session):
+               ConfigText.onSelect(self, session)
+               self.hidden = False
+
+       def onDeselect(self, session):
+               ConfigText.onDeselect(self, session)
+               self.hidden = True
+
 class ConfigNumber(ConfigText):
        def __init__(self, default = 0):
                ConfigText.__init__(self, str(default), fixed_size = False)
@@ -818,9 +857,7 @@ class ConfigSlider(ConfigElement):
                        self.value = self.max
                else:
                        return
-
                self.checkValues()
-               self.changed()
 
        def getText(self):
                return "%d / %d" % (self.value, self.max)
@@ -1364,6 +1401,10 @@ def getConfigListEntry(*args):
        assert len(args) > 1, "getConfigListEntry needs a minimum of two arguments (descr, configElement)"
        return args
 
+def updateConfigElement(element, newelement):
+       newelement.value = element.value
+       return newelement
+
 #def _(x):
 #      return x
 #