git.cweiske.de
/
enigma2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
add ability to filter by tag. they must be created by hand right now.
[enigma2.git]
/
lib
/
python
/
Components
/
config.py
diff --git
a/lib/python/Components/config.py
b/lib/python/Components/config.py
index b255f55aa36600ef6c1018e3420ceb768cdf5c1d..3c01794ab0fdcf92e15a85313a9caae7ad434262 100644
(file)
--- a/
lib/python/Components/config.py
+++ b/
lib/python/Components/config.py
@@
-67,6
+67,11
@@
class ConfigElement(object):
def cancel(self):
self.load()
def cancel(self):
self.load()
+ def isChanged(self):
+ if self.saved_value is None and self.value == self.default:
+ return False
+ return self.tostring(self.value) != self.saved_value
+
def changed(self):
for x in self.notifiers:
x(self)
def changed(self):
for x in self.notifiers:
x(self)
@@
-188,8
+193,17
@@
class ConfigSelection(ConfigElement):
elif key == KEY_RIGHT:
self.value = self.choices[(i + 1) % nchoices]
elif key == KEY_RIGHT:
self.value = self.choices[(i + 1) % nchoices]
+ def getText(self):
+ descr = self.description[self.value]
+ if len(descr):
+ return _(descr)
+ return descr
+
def getMulti(self, selected):
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):
# HTML
def getHTML(self, id):
@@
-220,10
+234,19
@@
class ConfigBoolean(ConfigElement):
if key in [KEY_LEFT, KEY_RIGHT]:
self.value = not self.value
if key in [KEY_LEFT, KEY_RIGHT]:
self.value = not self.value
+ def getText(self):
+ descr = self.descriptions[self.value]
+ if len(descr):
+ return _(descr)
+ return descr
+
def getMulti(self, selected):
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 not value:
return "false"
else:
@@
-274,6
+297,9
@@
class ConfigDateTime(ConfigElement):
if key == KEY_RIGHT:
self.value = self.value + self.increment
if key == KEY_RIGHT:
self.value = self.value + self.increment
+ def getText(self):
+ return time.strftime(self.formatstring, time.localtime(self.value))
+
def getMulti(self, selected):
return ("text", time.strftime(self.formatstring, time.localtime(self.value)))
def getMulti(self, selected):
return ("text", time.strftime(self.formatstring, time.localtime(self.value)))
@@
-376,8
+402,8
@@
class ConfigSequence(ConfigElement):
self.validate()
self.changed()
self.validate()
self.changed()
-
- def ge
tMulti(self, selected
):
+
+ def ge
nText(self
):
value = ""
mPos = self.marked_pos
num = 0;
value = ""
mPos = self.marked_pos
num = 0;
@@
-392,7
+418,14
@@
class ConfigSequence(ConfigElement):
else:
value += (self.censor_char * len(str(self.limits[num][1])))
num += 1
else:
value += (self.censor_char * len(str(self.limits[num][1])))
num += 1
-
+ return (value, mPos)
+
+ def getText(self):
+ (value, mPos) = self.genText()
+ return value
+
+ def getMulti(self, selected):
+ (value, mPos) = self.genText()
# only mark cursor when we are selected
# (this code is heavily ink optimized!)
if self.enabled:
# only mark cursor when we are selected
# (this code is heavily ink optimized!)
if self.enabled:
@@
-527,6
+560,9
@@
class ConfigText(ConfigElement, NumericalTextInput):
value = property(getValue, setValue)
_value = property(getValue, setValue)
value = property(getValue, setValue)
_value = property(getValue, setValue)
+ def getText(self):
+ return self.value
+
def getMulti(self, selected):
return ("mtext"[1-selected:], self.value, [self.marked_pos])
def getMulti(self, selected):
return ("mtext"[1-selected:], self.value, [self.marked_pos])
@@
-567,6
+603,9
@@
class ConfigSlider(ConfigElement):
self.checkValues()
self.changed()
self.checkValues()
self.changed()
+ def getText(self):
+ return "%d / %d" % (self.value, self.max)
+
def getMulti(self, selected):
self.checkValues()
return ("slider", self.value, self.max)
def getMulti(self, selected):
self.checkValues()
return ("slider", self.value, self.max)
@@
-820,7
+859,7
@@
config = Config()
config.misc = ConfigSubsection()
class ConfigFile:
config.misc = ConfigSubsection()
class ConfigFile:
- CONFIG_FILE = resolveFilename(SCOPE_CONFIG, "
config2
")
+ CONFIG_FILE = resolveFilename(SCOPE_CONFIG, "
settings
")
def load(self):
try:
def load(self):
try:
@@
-829,11
+868,26
@@
class ConfigFile:
print "unable to load config (%s), assuming defaults..." % str(e)
def save(self):
print "unable to load config (%s), assuming defaults..." % str(e)
def save(self):
-
config.save()
+
#
config.save()
config.saveToFile(self.CONFIG_FILE)
config.saveToFile(self.CONFIG_FILE)
+ 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)
+ else:
+ return str(cmap[pickles[0]].value)
+ return None
+
def getResolvedKey(self, key):
def getResolvedKey(self, key):
- return None # FIXME
+ names = key.split('.')
+ if len(names) > 1:
+ if names[0] == "config":
+ ret=self.__resolveValue(names[1:], config.content.items)
+ if ret and len(ret):
+ return ret
+ print "getResolvedKey", key, "failed !! (Typo??)"
+ return ""
def NoSave(element):
element.disableSave()
def NoSave(element):
element.disableSave()
@@
-843,8
+897,9
@@
configfile = ConfigFile()
configfile.load()
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
#def _(x):
# return x