fix default storing for configSatlist
[enigma2.git] / lib / python / Components / config.py
index e1c0bf8abef992971421c58eb8cd250845faa13b..801491cf6b9a4b3bd36ff5799f84170be1823d4d 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,7 +477,6 @@ class configElement:
                        return str(data)
                elif control == configText:
                        return str(data.strip())
-
                elif control == configSequence:
                        print self.vals
                        print self.value
@@ -492,7 +491,6 @@ class configElement:
                                        #value = ((len(data) * ("%d" + self.vals[0]))[0:-1]) % tuple(data)
                        except: 
                                value = str(data)       
-
                        return value
                elif control == configSatlist:
                        return str(self.vals[self.value][1]);
@@ -508,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()
 
@@ -538,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):
@@ -553,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)