translations
[enigma2.git] / lib / python / Components / config.py
index 75dee0ce9119f29810634abd9419f15595859074..4850ca3569fe57a24d48035c411900bd2f8dae48 100644 (file)
@@ -1,4 +1,5 @@
 from time import *
+from Tools.NumericalTextInput import *
 
 class configFile:
        def __init__(self):
@@ -24,7 +25,7 @@ class configFile:
        def addElement(self, line):
                x = line.find("=")
                if x > -1:
-                       self.configElements[line[:x]] = line[x + 1:]
+                       self.configElements[line[:x]] = line[x + 1:-1]
        
        def getKey(self, key):
                return self.configElements[key]
@@ -42,10 +43,7 @@ class configFile:
                keys = self.configElements.keys()
                keys.sort()
                for x in keys:
-                       wstr = x + "=" + self.configElements[x]
-                       
-                       if wstr[len(wstr) - 1] != '\n':
-                               wstr = wstr + "\n"
+                       wstr = x + "=" + self.configElements[x] + "\n"
 
                        fileHandle.write(wstr)
 
@@ -76,7 +74,7 @@ class configSelection:
                
                self.checkValues()                      
 
-               self.parent.change()    
+               self.parent.change()
 
        def __call__(self, selected):                   #needed by configlist
                self.checkValues()
@@ -275,6 +273,7 @@ class configText:
                self.parent = parent
                self.markedPos = 0
                self.mode = self.parent.vals[0]
+               self.textInput = NumericalTextInput(self.nextEntry)
 
        def checkValues(self):
                if (self.markedPos < 0):
@@ -287,23 +286,30 @@ class configText:
 
        def save(self):
                self.parent.save()
+               
+       def nextEntry(self):
+               print self.parent
+               self.parent.vals[1](self.parent.getConfigPath())
 
        def handleKey(self, key):
                #this will no change anything on the value itself
                #so we can handle it here in gui element
                if key == config.key["prevElement"]:
+                       self.textInput.nextKey()
                        self.markedPos -= 1
+
                if key == config.key["nextElement"]:
+                       self.textInput.nextKey()
                        self.markedPos += 1
                        if (self.mode == self.extendableSize):
                                if (self.markedPos >= len(self.parent.value)):
                                        self.parent.value = self.parent.value.ljust(len(self.parent.value) + 1)
                        
-               
+                               
                if key >= config.key["0"] and key <= config.key["9"]:
                        number = 9 - config.key["9"] + key
 
-                       self.parent.value = self.parent.value[0:self.markedPos] + str(number) + self.parent.value[self.markedPos + 1:]
+                       self.parent.value = self.parent.value[0:self.markedPos] + str(self.textInput.getKey(number)) + self.parent.value[self.markedPos + 1:]
                
                self.checkValues()                      
                
@@ -384,7 +390,7 @@ class configElement:
                                        tcnt = cnt
                        cnt += 1
                if tcnt != -1:
-                       return tcnt                     
+                       return tcnt
                return 0        #prevent bigger then array
 
        def datafromFile(self, control, data):
@@ -418,7 +424,11 @@ class configElement:
                        return str(data.strip())
 
                elif control == configSequence:
-                       value = ((len(data) * ("%d" + self.vals[0]))[0:-1]) % tuple(data)
+                       print data
+                       try:
+                               value = ((len(data) * ("%d" + self.vals[0]))[0:-1]) % tuple(data)
+                       except: 
+                               value = str(data)       
 #                      just in case you don't understand the above, here an equivalent:
 #                      value = ""
 #                      for i in data:
@@ -432,6 +442,7 @@ class configElement:
                        return ""       
 
        def loadData(self):
+               #print "load:" + self.configPath
                try:
                        value = self.datafromFile(self.controlType, configfile.getKey(self.configPath))
                except:         
@@ -447,6 +458,7 @@ class configElement:
 
                        self.save()             #add missing value to dict
                else:
+                       #print "set val:" + str(value)
                        self.value = value
                        
                #is this right? activate settings after load/cancel and use default     
@@ -460,6 +472,10 @@ class configElement:
                self.notifierList = [ ]
                self.enabled = True
                self.loadData()         
+               
+       def getConfigPath(self):
+               return self.configPath
+       
        def addNotifier(self, notifier):
                self.notifierList.append(notifier);
                notifier(self);