the missing plugin
[enigma2.git] / lib / python / Components / config.py
index 801491cf6b9a4b3bd36ff5799f84170be1823d4d..06bb62a2d14e134e41e7b91932b55018d1730f48 100644 (file)
@@ -27,13 +27,16 @@ class configFile:
                x = line.find("=")
                if x > -1:
                        self.configElements[line[:x]] = line[x + 1:-1]
-       
+
        def getKey(self, key):
                return self.configElements[key]
 
-       def setKey(self, key, value):
+       def setKey(self, key, value, isDefaultKey=False):
                self.changed = 1
-               self.configElements[key] = value
+               if isDefaultKey and self.configElements.has_key(key):
+                       del self.configElements[key]
+               else:
+                       self.configElements[key] = value
 
        def save(self):
                if self.changed == 0:           #no changes, so no write to disk needed
@@ -478,8 +481,8 @@ class configElement:
                elif control == configText:
                        return str(data.strip())
                elif control == configSequence:
-                       print self.vals
-                       print self.value
+#                      print self.vals
+#                      print self.value
                        try:
                                value = ""
                                count = 0
@@ -550,8 +553,15 @@ class configElement:
                        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))
+               if self.value != defaultValue or self.saveDefaults:
+                       configfile.setKey(self.configPath, self.datatoFile(self.controlType, self.value))
+               else:
+                       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)
 
 class configElement_nonSave(configElement):
        def __init__(self, configPath, control, defaultValue, vals):