if default is None:
default = self.choices.default()
+ self._descr = None
self.default = self._value = self.last_value = default
- self.changed()
def setChoices(self, choices, default = None):
self.choices = choicesList(choices)
self._value = value
else:
self._value = self.default
+ self._descr = None
self.changed()
def tostring(self, val):
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)
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)
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
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")
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):
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):
# 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
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
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
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):