X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/e5c978e7b1a76e5439165124d3c08aa0e4e0e630..c224c2a18e15eaa4e41377b0ed03c4807e25aa2d:/lib/python/Screens/Ci.py diff --git a/lib/python/Screens/Ci.py b/lib/python/Screens/Ci.py index 881ad10d..75bdd5bc 100644 --- a/lib/python/Screens/Ci.py +++ b/lib/python/Screens/Ci.py @@ -1,15 +1,12 @@ -from Screen import * -from Components.MenuList import MenuList +from Screen import Screen from Components.ActionMap import ActionMap from Components.ActionMap import NumberActionMap -from Components.Header import Header -from Components.Button import Button from Components.Label import Label from Components.config import config, ConfigSubsection, ConfigSelection, ConfigSubList, getConfigListEntry, KEY_LEFT, KEY_RIGHT, KEY_0, ConfigNothing, ConfigPIN from Components.ConfigList import ConfigList -from enigma import eTimer, eDVBCI_UI, eListboxPythonStringContent, eListboxPythonConfigContent +from enigma import eTimer, eDVBCI_UI MAX_NUM_CI = 4 @@ -231,11 +228,10 @@ class CiMessageHandler: elif eDVBCI_UI.getInstance().availableMMI(slot) == 1: if self.session: self.dlgs[slot] = self.session.openWithCallback(self.dlgClosed, CiMmi, slot, 3) - else: - print "no session" def dlgClosed(self, slot): - del self.dlgs[slot] + if slot in self.dlgs: + del self.dlgs[slot] def registerCIMessageHandler(self, slot, func): self.unregisterCIMessageHandler(slot) @@ -250,7 +246,6 @@ CiHandler = CiMessageHandler() class CiSelection(Screen): def __init__(self, session): Screen.__init__(self, session) - self["actions"] = ActionMap(["OkCancelActions", "CiSelectionActions"], { "left": self.keyLeft, @@ -359,5 +354,8 @@ class CiSelection(Screen): self.dlg = self.session.openWithCallback(self.dlgClosed, CiMmi, slot, action) def cancel(self): - CiHandler.unregisterCIMessageHandler(0) + for slot in range(MAX_NUM_CI): + state = eDVBCI_UI.getInstance().getState(slot) + if state != -1: + CiHandler.unregisterCIMessageHandler(slot) self.close()