self.value = self.choices[(i + 1) % nchoices]
def getText(self):
- return _(self.description[self.value])
+ descr = self.description[self.value]
+ if len(descr):
+ return _(descr)
+ return descr
def getMulti(self, selected):
- return ("text", _(self.description[self.value]))
+ descr = self.description[self.value]
+ if len(descr):
+ return ("text", _(descr))
+ return ("text", descr)
# HTML
def getHTML(self, id):
self.value = not self.value
def getText(self):
- return _(self.descriptions[self.value])
+ descr = self.descriptions[self.value]
+ if len(descr):
+ return _(descr)
+ return descr
def getMulti(self, selected):
- return ("text", _(self.descriptions[self.value]))
+ descr = self.descriptions[self.value]
+ if len(descr):
+ return ("text", _(descr))
+ return ("text", descr)
- def tostring(self, value):
+ def tostring(self, value):
if not value:
return "false"
else:
if key == KEY_RIGHT:
self.value = self.value + self.increment
-
def getText(self):
return time.strftime(self.formatstring, time.localtime(self.value))
max_pos += len(str(self.limits[num][1]))
while self._value[num] < self.limits[num][0]:
- self.value[num] += 1
+ self._value[num] += 1
while self._value[num] > self.limits[num][1]:
self._value[num] -= 1
self.value = self.default = default
def validateMarker(self):
- if self.marked_pos < 0:
- self.marked_pos = 0
if self.marked_pos >= len(self.text):
self.marked_pos = len(self.text) - 1
+ if self.marked_pos < 0:
+ self.marked_pos = 0
#def nextEntry(self):
# self.vals[1](self.getConfigPath())
self.marked_pos -= 1
elif key == KEY_RIGHT:
self.marked_pos += 1
- if not self.fixed_size:
- if self.marked_pos >= len(self.text):
- self.text = self.text.ljust(len(self.text) + 1)
+ self.maybeExpand()
elif key in KEY_NUMBERS:
number = self.getKey(getKeyNumber(key))
self.text = self.text[0:self.marked_pos] + unicode(number) + self.text[self.marked_pos + 1:]
self.validateMarker()
self.changed()
+ def maybeExpand(self):
+ if not self.fixed_size:
+ if self.marked_pos >= len(self.text):
+ self.text = self.text.ljust(len(self.text) + 1)
+
def nextFunc(self):
self.marked_pos += 1
+ self.maybeExpand()
self.validateMarker()
self.changed()
item.saved_value = self.stored_values[i]
item.load()
+ def dict(self):
+ res = dict()
+ for index in range(len(self)):
+ res[str(index)] = self[index]
+ return res
+
# same as ConfigSubList, just as a dictionary.
# care must be taken that the 'key' has a proper
# str() method, because it will be used in the config
item.saved_value = self.stored_values[str(key)]
item.load()
+ def dict(self):
+ return self
+
# Like the classes above, just with a more "native"
# syntax.
#
for x in self.content.items.values():
x.load()
+ def dict(self):
+ return self.content.items
+
# the root config object, which also can "pickle" (=serialize)
# down the whole config tree.
#
def __resolveValue(self, pickles, cmap):
if cmap.has_key(pickles[0]):
if len(pickles) > 1:
- return self.__resolveValue(pickles[1:], cmap[pickles[0]].content.items)
+ return self.__resolveValue(pickles[1:], cmap[pickles[0]].dict())
else:
return str(cmap[pickles[0]].value)
return None
configfile.load()
-def getConfigListEntry(desc, config):
- return (desc, config)
+def getConfigListEntry(*args):
+ assert len(args) > 1, "getConfigListEntry needs a minimum of two arguments (descr, configElement)"
+ return args
#def _(x):
# return x