small fix
[enigma2.git] / lib / python / Screens / Ci.py
index 09083f4e2742b6675cfd0bc4381a05c3b28fde91..75bdd5bcd6a29c28bd3eac47d50bc4f6db9551a4 100644 (file)
@@ -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,
@@ -273,6 +268,12 @@ class CiSelection(Screen):
                menuList.list = self.list
                menuList.l.setList(self.list)
                self["entries"] = menuList
+               self["entries"].onSelectionChanged.append(self.selectionChanged)
+               self["text"] = Label(_("Slot %d")%(1))
+
+       def selectionChanged(self):
+               cur_idx = self["entries"].getCurrentIndex()
+               self["text"].setText(_("Slot %d")%((cur_idx / 4)+1))
 
        def keyConfigEntry(self, key):
                try:
@@ -353,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()