don't translate "", add FIXME
[enigma2.git] / lib / python / Components / config.py
index c06d3b7298e1c0f48588d2d17435f2c6a589700b..51ac7606f0de6da5c667f349e65da9b7a153adf9 100644 (file)
@@ -27,11 +27,9 @@ class configFile:
                x = line.find("=")
                if x > -1:
                        self.configElements[line[:x]] = line[x + 1:-1]
-       
+
        def getKey(self, key):
-               if self.configElements.has_key(key):
-                       return self.configElements[key]
-               return None
+               return self.configElements[key]
 
        def setKey(self, key, value, isDefaultKey=False):
                self.changed = 1
@@ -94,10 +92,17 @@ class configSelection:
 
        def __call__(self, selected):                   #needed by configlist
                self.checkValues()
-               if isinstance(self.parent.vals[self.parent.value], str):
-                       returnValue = _(self.parent.vals[self.parent.value])
-               else:
-                       returnValue = _(self.parent.vals[self.parent.value][1])
+
+               returnValue = _(self.parent.vals[self.parent.value])
+               if not isinstance(returnValue, str):
+                       returnValue = returnValue[0]
+
+               # FIXME: it's not really nice to translate this here.
+               # however, configSelections are persistent.
+               
+               # WORKAROUND: don't translate ""
+               if returnValue:
+                       returnValue = _(returnValue)
                
                return ("text", returnValue)
                
@@ -295,7 +300,27 @@ class configSequence:
                        return ("mtext"[1-selected:], value, [mPos])
                else:
                        return ("text", value)
+
+class configNothing:
+       def __init__(self, parent):
+               self.parent = parent
+               self.markedPos = 0
+
+       def cancel(self):
+               self.parent.reload()
+
+       def save(self):
+               self.parent.save()
                
+       def nextEntry(self):
+               self.parent.vals[1](self.parent.getConfigPath())
+
+       def handleKey(self, key):
+               pass
+
+       def __call__(self, selected):                   #needed by configlist
+               return ("text", "")
+
 class configText:
        # used as first parameter
        # is the text of a fixed size or is the user able to extend the length of the text
@@ -380,7 +405,7 @@ config = Config();
 
 configfile = configFile()
 
-class ConfigSlider:
+class configSlider:
        def __init__(self, parent):
                self.parent = parent
 
@@ -394,21 +419,21 @@ class ConfigSlider:
                if self.parent.value < 0:
                        self.parent.value = 0   
 
-               if self.parent.value > 10:
-                       self.parent.value = 10  
+               if self.parent.value > self.parent.vals[1]:
+                       self.parent.value = self.parent.vals[1]
 
        def handleKey(self, key):
                if key == config.key["prevElement"]:
-                       self.parent.value = self.parent.value - 1
+                       self.parent.value = self.parent.value - self.parent.vals[0]
                if key == config.key["nextElement"]:
-                       self.parent.value = self.parent.value + 1
+                       self.parent.value = self.parent.value + self.parent.vals[0]
                                        
                self.checkValues()      
                self.parent.change()    
 
        def __call__(self, selected):                   #needed by configlist
                self.checkValues()
-               return ("slider", self.parent.value * 10)
+               return ("slider", self.parent.value, self.parent.vals[1])
 
 class ConfigSubsection:
        def __init__(self):
@@ -430,7 +455,7 @@ class configElement:
                return 0        #prevent bigger then array
 
        def datafromFile(self, control, data):
-               if control == ConfigSlider:
+               if control == configSlider:
                        return int(data)
                elif control == configSelection:
                        try:
@@ -460,7 +485,7 @@ class configElement:
                        return ""       
 
        def datatoFile(self, control, data):
-               if control == ConfigSlider:
+               if control == configSlider:
                        return str(data)
                elif control == configSelection:
                        if len(self.vals) < data + 1:
@@ -558,7 +583,10 @@ class configElement:
                if self.value != defaultValue or self.saveDefaults:
                        configfile.setKey(self.configPath, self.datatoFile(self.controlType, self.value))
                else:
-                       oldValue = configfile.getKey(self.configPath)
+                       try:
+                               oldValue = configfile.getKey(self.configPath)
+                       except:
+                               oldValue = None
                        if oldValue is not None and oldValue != defaultValue:
                                configfile.setKey(self.configPath, self.datatoFile(self.controlType, self.value), True)