X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/c06f79c0451ca844f89809058a2767a1a319b137..19a5240f06c750794a9a8ab43a3124d569a89199:/lib/python/Components/config.py diff --git a/lib/python/Components/config.py b/lib/python/Components/config.py index 2b51d169..e1c0bf8a 100644 --- a/lib/python/Components/config.py +++ b/lib/python/Components/config.py @@ -48,7 +48,18 @@ class configFile: fileHandle.write(wstr) - fileHandle.close() + fileHandle.close() + +def currentConfigSelectionElement(element): + return element.vals[element.value][0] + +def getConfigSelectionElement(element, value): + count = 0 + for x in element.vals: + if x[0] == value: + return count + count += 1 + return -1 class configSelection: def __init__(self, parent): @@ -82,9 +93,6 @@ class configSelection: returnValue = _(self.parent.vals[self.parent.value]) else: returnValue = _(self.parent.vals[self.parent.value][1]) - - - print self.parent.vals[self.parent.value] return ("text", returnValue) @@ -173,6 +181,9 @@ class configSequenceArg: # configsequencearg.get("FLOAT", [(min,max),(min1,max1)]) => x.y with min <= x <= max and min1 <= y <= max1 if (type == "FLOAT"): return (("."), args, "") + + def getFloat(self, element): + return float(("%d.%0" + str(len(str(element.vals[1][1][1]))) + "d") % (element.value[0], element.value[1])) configsequencearg = configSequenceArg() @@ -246,23 +257,17 @@ class configSequence: olddec = oldvalue % 10 ** (numberLen - posinblock) - (oldvalue % 10 ** (numberLen - posinblock - 1)) newvalue = oldvalue - olddec + (10 ** (numberLen - posinblock - 1) * number) - print "You actually pressed a number (" + str(number) + ") which will be added at block number " + str(blocknumber) + " on position " + str(posinblock) - print "Old value: " + str(oldvalue) + " olddec: " + str(olddec) + " newvalue: " + str(newvalue) self.parent.value[blocknumber] = newvalue self.markedPos += 1 self.checkValues() - print "markPos:", - print self.markedPos - #FIXME: dont call when press left/right self.parent.change() def __call__(self, selected): #needed by configlist value = "" mPos = self.markedPos - print "Positon: " + str(mPos) num = 0; for i in self.parent.value: if len(value): #fixme no heading separator possible @@ -274,7 +279,6 @@ class configSequence: #if diff > 0: ## if this helps?! #value += " " * diff - print (("%0" + str(len(str(self.valueBounds[num][1]))) + "d") % i) if (self.censorChar == ""): value += ("%0" + str(len(str(self.valueBounds[num][1]))) + "d") % i else: @@ -312,7 +316,6 @@ class configText: self.parent.save() def nextEntry(self): - print self.parent self.parent.vals[1](self.parent.getConfigPath()) def handleKey(self, key): @@ -455,6 +458,8 @@ class configElement: if control == ConfigSlider: return str(data) elif control == configSelection: + if len(self.vals) < data + 1: + return "0" if isinstance(self.vals[data], str): return str(data) else: @@ -474,17 +479,20 @@ class configElement: return str(data.strip()) elif control == configSequence: - print data + print self.vals + print self.value try: - value = ((len(data) * ("%d" + self.vals[0]))[0:-1]) % tuple(data) + value = "" + count = 0 + for i in data: + if value !="": + value += self.vals[0] + value += (("%0" + str(len(str(self.vals[1][count][1]))) + "d") % i) + count += 1 + #value = ((len(data) * ("%d" + self.vals[0]))[0:-1]) % tuple(data) except: value = str(data) -# just in case you don't understand the above, here an equivalent: -# value = "" -# for i in data: -# if value !="": -# value += self.vals[0] -# value += str(i) + return value elif control == configSatlist: return str(self.vals[self.value][1]); @@ -514,13 +522,14 @@ class configElement: #is this right? activate settings after load/cancel and use default self.change() - def __init__(self, configPath, control, defaultValue, vals): + def __init__(self, configPath, control, defaultValue, vals, saveDefaults = True): self.configPath = configPath self.defaultValue = defaultValue self.controlType = control self.vals = vals self.notifierList = [ ] self.enabled = True + self.saveDefaults = saveDefaults self.loadData() def getConfigPath(self): @@ -535,7 +544,8 @@ class configElement: def reload(self): self.loadData() def save(self): - configfile.setKey(self.configPath, self.datatoFile(self.controlType,self.value)) + if self.defaultValue != self.value or self.saveDefaults == True: + configfile.setKey(self.configPath, self.datatoFile(self.controlType,self.value)) class configElement_nonSave(configElement): def __init__(self, configPath, control, defaultValue, vals):