X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/b540dcd4b6df8789cf4a515593e42f62bf9424e0..2c22c1f1eab171b4a760365e501ee6313075e993:/lib/python/Screens/Satconfig.py diff --git a/lib/python/Screens/Satconfig.py b/lib/python/Screens/Satconfig.py index b1757807..eb9de2fb 100644 --- a/lib/python/Screens/Satconfig.py +++ b/lib/python/Screens/Satconfig.py @@ -5,7 +5,7 @@ from Components.ActionMap import ActionMap from Components.ConfigList import ConfigListScreen from Components.MenuList import MenuList from Components.NimManager import nimmanager -from Components.config import getConfigListEntry, config, ConfigNothing, ConfigSelection +from Components.config import getConfigListEntry, config, ConfigNothing, ConfigSelection, updateConfigElement from Screens.MessageBox import MessageBox from time import mktime, localtime @@ -46,7 +46,22 @@ class NimSetup(Screen, ConfigListScreen): if nim.powerMeasurement.value: nim.powerMeasurement.value = False nim.powerMeasurement.save() - + + def createConfigMode(self): + choices = { "nothing": _("nothing connected"), + "simple": _("simple"), + "advanced": _("advanced")} + #if len(nimmanager.getNimListOfType(nimmanager.getNimType(self.slotid), exception = x)) > 0: + # choices["equal"] = _("equal to") + # choices["satposdepends"] = _("second cable of motorized LNB") + if len(nimmanager.canEqualTo(self.slotid)) > 0: + choices["equal"] = _("equal to") + if len(nimmanager.canDependOn(self.slotid)) > 0: + choices["satposdepends"] = _("second cable of motorized LNB") + if len(nimmanager.canConnectTo(self.slotid)) > 0: + choices["loopthrough"] = _("loopthrough to") + self.nimConfig.configMode.setChoices(choices) + def createSetup(self): print "Creating setup" self.list = [ ] @@ -77,21 +92,32 @@ class NimSetup(Screen, ConfigListScreen): self.createSimpleSetup(self.list, self.nimConfig.diseqcMode.value) if self.nimConfig.diseqcMode.value == "positioner": self.createPositionerSetup(self.list) - elif self.nimConfig.configMode.value in ["satposdepends", "equal"]: + elif self.nimConfig.configMode.value == "equal": + choices = [] + nimlist = nimmanager.canEqualTo(self.nim.slot) + for id in nimlist: + #choices.append((str(id), str(chr(65 + id)))) + choices.append((str(id), nimmanager.getNimDescription(id))) + self.nimConfig.connectedTo.setChoices(choices) + #self.nimConfig.connectedTo = updateConfigElement(self.nimConfig.connectedTo, ConfigSelection(choices = choices)) + self.list.append(getConfigListEntry(_("Tuner"), self.nimConfig.connectedTo)) + elif self.nimConfig.configMode.value == "satposdepends": choices = [] - nimlist = nimmanager.getNimListOfType(self.nim.type, exception = self.nim.slot) + nimlist = nimmanager.canDependOn(self.nim.slot) for id in nimlist: #choices.append((str(id), str(chr(65 + id)))) choices.append((str(id), nimmanager.getNimDescription(id))) - self.nimConfig.connectedTo = ConfigSelection(choices = choices) + self.nimConfig.connectedTo.setChoices(choices) + #self.nimConfig.connectedTo = updateConfigElement(self.nimConfig.connectedTo, ConfigSelection(choices = choices)) self.list.append(getConfigListEntry(_("Tuner"), self.nimConfig.connectedTo)) elif self.nimConfig.configMode.value == "loopthrough": choices = [] - print "connectable to:", nimmanager.connectableTo(self.slotid) - connectable = nimmanager.connectableTo(self.slotid) + print "connectable to:", nimmanager.canConnectTo(self.slotid) + connectable = nimmanager.canConnectTo(self.slotid) for id in connectable: choices.append((str(id), nimmanager.getNimDescription(id))) - self.nimConfig.connectedTo = ConfigSelection(choices = choices) + self.nimConfig.connectedTo.setChoices(choices) + #self.nimConfig.connectedTo = updateConfigElement(self.nimConfig.connectedTo, ConfigSelection(choices = choices)) self.list.append(getConfigListEntry(_("Connected to"), self.nimConfig.connectedTo)) elif self.nimConfig.configMode.value == "nothing": pass @@ -265,6 +291,7 @@ class NimSetup(Screen, ConfigListScreen): self.unconfed_sats = old_configured_sats - new_configured_sats self.satpos_to_remove = None self.deleteConfirmed(False) + self.saveAll() def deleteConfirmed(self, confirmed): if confirmed: @@ -307,7 +334,10 @@ class NimSetup(Screen, ConfigListScreen): self.slotid = slotid self.nim = nimmanager.nim_slots[slotid] self.nimConfig = self.nim.config + self.createConfigMode() self.createSetup() + # safeAll is needed, so that keyCancel works properly + ConfigListScreen.saveAll(self) def keyLeft(self): ConfigListScreen.keyLeft(self) @@ -316,7 +346,18 @@ class NimSetup(Screen, ConfigListScreen): def keyRight(self): ConfigListScreen.keyRight(self) self.newConfig() - + + def saveAll(self): + if self.nim.isCompatible("DVB-S"): + # reset connectedTo to all choices to properly store the default value + choices = [] + nimlist = nimmanager.getNimListOfType("DVB-S", self.slotid) + for id in nimlist: + choices.append((str(id), nimmanager.getNimDescription(id))) + self.nimConfig.connectedTo.setChoices(choices) + for x in self["config"].list: + x[1].save() + class NimSelection(Screen): def __init__(self, session): Screen.__init__(self, session)