X-Git-Url: http://code.vuplus.com/gitweb/?a=blobdiff_plain;f=lib%2Fpython%2FComponents%2Fconfig.py;h=e249caf4d3e80029a09d19c6f77066147c7a03f4;hb=5c89bb517efa4bbb6d0acd4094500b4d7521d997;hp=e3a29b52cf630bf00a9d93f878bb32b3766a67f8;hpb=1c5acf90ed52a7b8ce29aefa108fa2888bd48a98;p=vuplus_dvbapp diff --git a/lib/python/Components/config.py b/lib/python/Components/config.py index e3a29b5..e249caf 100755 --- a/lib/python/Components/config.py +++ b/lib/python/Components/config.py @@ -281,13 +281,13 @@ class ConfigSelection(ConfigElement): self._descr = None self.default = self._value = self.last_value = default - self.changed() def setChoices(self, choices, default = None): self.choices = choicesList(choices) if default is None: default = self.choices.default() + self.default = default if self.value not in self.choices: self.value = default @@ -385,7 +385,7 @@ class ConfigBoolean(ConfigElement): self.value = self.last_value = self.default = default def handleKey(self, key): - if key in [KEY_LEFT, KEY_RIGHT]: + if key in (KEY_LEFT, KEY_RIGHT): self.value = not self.value elif key == KEY_HOME: self.value = False @@ -913,13 +913,14 @@ class ConfigText(ConfigElement, NumericalTextInput): self.timeout() self.overwrite = not self.overwrite elif key == KEY_ASCII: - self.timeout() - newChar = unichr(getPrevAsciiCode()) - if self.allmarked: - self.deleteAllChars() - self.allmarked = False - self.insertChar(newChar, self.marked_pos, False) - self.marked_pos += 1 + self.timeout() + newChar = unichr(getPrevAsciiCode()) + if not self.useableChars or newChar in self.useableChars: + if self.allmarked: + self.deleteAllChars() + self.allmarked = False + self.insertChar(newChar, self.marked_pos, False) + self.marked_pos += 1 elif key in KEY_NUMBERS: owr = self.lastKey == getKeyNumber(key) newChar = self.getKey(getKeyNumber(key)) @@ -1029,6 +1030,13 @@ class ConfigNumber(ConfigText): value = property(getValue, setValue) _value = property(getValue, setValue) + def isChanged(self): + sv = self.saved_value + strv = self.tostring(self.value) + if sv is None and strv == self.default: + return False + return strv != sv + def conform(self): pos = len(self.text) - self.marked_pos self.text = self.text.lstrip("0") @@ -1187,7 +1195,7 @@ class ConfigSet(ConfigElement): self.pos = -1 else: self.pos += 1 - elif key in [KEY_HOME, KEY_END]: + elif key in (KEY_HOME, KEY_END): self.pos = -1 def genString(self, lst): @@ -1352,7 +1360,7 @@ class ConfigLocations(ConfigElement): self.pos += 1 if self.pos >= len(self.value): self.pos = -1 - elif key in [KEY_HOME, KEY_END]: + elif key in (KEY_HOME, KEY_END): self.pos = -1 def getText(self): @@ -1486,7 +1494,7 @@ class ConfigSubDict(dict, object): self.stored_values = dict(values) for (key, val) in self.items(): if str(key) in self.stored_values: - val = self.stored_values[str(key)] + val.saved_value = self.stored_values[str(key)] saved_value = property(getSavedValue, setSavedValue) @@ -1614,8 +1622,9 @@ class Config(ConfigSubsection): self.setSavedValue(tree["config"]) def saveToFile(self, filename): + text = self.pickle() f = open(filename, "w") - f.write(self.pickle()) + f.write(text) f.close() def loadFromFile(self, filename):