X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/df4910f7250489c2b971f10bacfecf069a72c307..c46216a8e07d97647287aeba0281f226b1ba05e9:/lib/python/Components/config.py diff --git a/lib/python/Components/config.py b/lib/python/Components/config.py index c4bf8b1e..14c03655 100644 --- a/lib/python/Components/config.py +++ b/lib/python/Components/config.py @@ -1,5 +1,6 @@ class configFile: def __init__(self): + self.changed = 0 self.configElements = { } try: self.file = open("config") @@ -11,6 +12,10 @@ class configFile: line = self.file.readline() if line == "": break + + if line.startswith("#"): #skip comments + continue + self.addElement(line) self.file.close() @@ -23,13 +28,22 @@ class configFile: return self.configElements[key] def setKey(self, key, value): + self.changed = 1 self.configElements[key] = value def save(self): + if self.changed == 0: #no changes, so no write to disk needed + return + fileHandle = open("config", "w") for x in self.configElements: - fileHandle.write(x + "=" + self.configElements[x]) + wstr = x + "=" + self.configElements[x] + + if wstr[len(wstr) - 1] != '\n': + wstr = wstr + "\n" + + fileHandle.write(wstr) fileHandle.close() @@ -51,9 +65,9 @@ class configBoolean: self.parent.save() def handleKey(self, key): - if key == 1: + if key == config.prevElement: self.parent.value = self.parent.value - 1 - if key == 2: + if key == config.nextElement: self.parent.value = self.parent.value + 1 self.checkValues() @@ -63,6 +77,42 @@ class configBoolean: def __call__(self): #needed by configlist self.checkValues() return ("text", self.parent.vals[self.parent.value]) + +class configSequence: + def __init__(self, parent): + self.parent = parent + + def checkValues(self): + pass +# if self.parent.value < 0: +# self.parent.value = 0 +# +# if(self.parent.value >= (len(self.parent.vals) - 1)): +# self.parent.value = len(self.parent.vals) - 1 +# + def cancel(self): + self.parent.reload() + + def save(self): + self.parent.save() + + def handleKey(self, key): + if key == config.prevElement: + self.parent.value = self.parent.value - 1 + if key == config.nextElement: + self.parent.value = self.parent.value + 1 + + self.checkValues() + + self.parent.change() + + def __call__(self): #needed by configlist + value = "" + for i in self.parent.value: + if (value != ""): + value += self.parent.vals[0] + value += str(i) + return ("text", value) class configValue: def __init__(self, obj): @@ -73,8 +123,10 @@ class configValue: class Config: def __init__(self): - pass - + self.choseElement = 0 + self.prevElement = 1 + self.nextElement = 2 + config = Config(); configfile = configFile() @@ -96,9 +148,9 @@ class ConfigSlider: self.parent.value = 10 def handleKey(self, key): - if key == 1: + if key == config.prevElement: self.parent.value = self.parent.value - 1 - if key == 2: + if key == config.nextElement: self.parent.value = self.parent.value + 1 self.checkValues() @@ -141,7 +193,6 @@ class configElement: self.save() #add missing value to dict else: self.value = value - print "value ok" def __init__(self, configPath, control, defaultValue, vals): self.configPath = configPath