X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/cfb43dc930adbbf59879abf8f3f0297caa94a050..55526774d926e19f8e34e94262a9fc939ddf91fc:/lib/python/Components/config.py diff --git a/lib/python/Components/config.py b/lib/python/Components/config.py index c999f2aa..4cc40633 100755 --- a/lib/python/Components/config.py +++ b/lib/python/Components/config.py @@ -279,6 +279,7 @@ class ConfigSelection(ConfigElement): if default is None: default = self.choices.default() + self._descr = None self.default = self._value = self.last_value = default self.changed() @@ -296,6 +297,7 @@ class ConfigSelection(ConfigElement): self._value = value else: self._value = self.default + self._descr = None self.changed() def tostring(self, val): @@ -307,7 +309,7 @@ class ConfigSelection(ConfigElement): def setCurrentText(self, text): i = self.choices.index(self.value) self.choices[i] = text - self.description[text] = text + self._descr = self.description[text] = text self._value = text value = property(getValue, setValue) @@ -336,13 +338,18 @@ class ConfigSelection(ConfigElement): self.value = self.choices[(i + 1) % nchoices] def getText(self): - descr = self.description[self.value] + if self._descr is not None: + return self._descr + descr = self._descr = self.description[self.value] if descr: return _(descr) return descr def getMulti(self, selected): - descr = self.description[self.value] + if self._descr is not None: + descr = self._descr + else: + descr = self._descr = self.description[self.value] if descr: return ("text", _(descr)) return ("text", descr) @@ -378,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 @@ -1180,7 +1187,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): @@ -1345,7 +1352,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): @@ -1385,7 +1392,7 @@ class ConfigLocations(ConfigElement): # nothing. class ConfigNothing(ConfigSelection): def __init__(self): - ConfigSelection.__init__(self, choices = [""]) + ConfigSelection.__init__(self, choices = [("","")]) # until here, 'saved_value' always had to be a *string*. # now, in ConfigSubsection, and only there, saved_value @@ -1426,8 +1433,8 @@ class ConfigSubList(list, object): def getSavedValue(self): res = { } - for i in range(len(self)): - sv = self[i].saved_value + for i, val in enumerate(self): + sv = val.saved_value if sv is not None: res[str(i)] = sv return res @@ -1448,7 +1455,7 @@ class ConfigSubList(list, object): item.load() def dict(self): - return dict([(str(index), value) for index, value in self.enumerate()]) + return dict([(str(index), value) for index, value in enumerate(self)]) # same as ConfigSubList, just as a dictionary. # care must be taken that the 'key' has a proper @@ -1607,8 +1614,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):