X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/2c8c2343f6fe05e59a8633b24d565e0fff5c6a3d..be664ec6f26b751c9163c5767d254ca9ceed5b99:/lib/python/Components/config.py diff --git a/lib/python/Components/config.py b/lib/python/Components/config.py index 1645784b..06bb62a2 100644 --- a/lib/python/Components/config.py +++ b/lib/python/Components/config.py @@ -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 @@ -477,10 +480,9 @@ class configElement: return str(data) 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 @@ -492,7 +494,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]); @@ -519,7 +520,7 @@ class configElement: else: #print "set val:" + str(value) self.value = value - + #is this right? activate settings after load/cancel and use default self.change() @@ -539,14 +540,28 @@ 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): - configfile.setKey(self.configPath, self.datatoFile(self.controlType,self.value)) + if self.controlType == configSatlist: + defaultValue = self.getIndexbyEntry(self.defaultValue) + else: + defaultValue = self.defaultValue + 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): @@ -554,13 +569,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)