- fixed left/right in language selection (updates language on the fly)
[enigma2.git] / lib / python / Components / config.py
index 5a4ed12e8c71845b009e567fc6d242c346bf7919..212c92eea5a16a2395aca9e1ab94c511b76e2542 100644 (file)
@@ -260,8 +260,8 @@ class configSequence:
                        self.parent.value[blocknumber] = newvalue
                        self.markedPos += 1
                
-               self.checkValues()                      
-               
+               self.checkValues()
+
                #FIXME: dont call when press left/right
                self.parent.change()    
 
@@ -477,18 +477,20 @@ class configElement:
                        return str(data)
                elif control == configText:
                        return str(data.strip())
-
                elif control == configSequence:
+#                      print self.vals
+#                      print self.value
                        try:
-                               value = ((len(data) * ("%d" + self.vals[0]))[0:-1]) % tuple(data)
+                               value = ""
+                               count = 0
+                               for i in data:
+                                       if value !="":
+                                               value += self.vals[0]
+                                       value += (("%0" + str(len(str(self.vals[1][count][1]))) + "d") % i)
+                                       count += 1
+                                       #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:
-#                              if value !="":
-#                                      value += self.vals[0]
-#                              value += str(i)
                        return value
                elif control == configSatlist:
                        return str(self.vals[self.value][1]);
@@ -504,17 +506,18 @@ class configElement:
 
                if value == "":
                        #print "value not found - using default"
-
                        if self.controlType == configSatlist:
                                self.value = self.getIndexbyEntry(self.defaultValue)
-                       else:   
+                       elif self.controlType == configSequence:
+                               self.value = self.defaultValue[:]
+                       else:
                                self.value = self.defaultValue
 
                        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     
                self.change()
 
@@ -534,13 +537,20 @@ class configElement:
        def addNotifier(self, notifier):
                self.notifierList.append(notifier);
                notifier(self);
+
        def change(self):
                for notifier in self.notifierList:
                        notifier(self)
+
        def reload(self):
                self.loadData()
+
        def save(self):
-               if self.defaultValue != self.value or self.saveDefaults == True:
+               if self.controlType == configSatlist:
+                       defaultValue = self.getIndexbyEntry(self.defaultValue)
+               else:
+                       defaultValue = self.defaultValue
+               if (defaultValue != self.value) or (self.saveDefaults == True):
                        configfile.setKey(self.configPath, self.datatoFile(self.controlType,self.value))
 
 class configElement_nonSave(configElement):
@@ -549,13 +559,12 @@ class configElement_nonSave(configElement):
 
        def save(self):
                pass
-               
+
 def getConfigListEntry(description, element):
        b = element
        item = b.controlType(b)
        return ((description, item))
 
-
 def configElementBoolean(name, default, texts=(_("Enable"), _("Disable"))):
        return configElement(name, configSelection, default, texts)