fix stupid code
[enigma2.git] / lib / python / Screens / Ci.py
index d23fb0447ee1a70b85e148ca24981bb1d4d3976c..b6f315b418dfdb9fd732cd3c592b6554c075d118 100644 (file)
@@ -235,7 +235,8 @@ class CiMessageHandler:
                                        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)
@@ -265,7 +266,6 @@ class CiSelection(Screen):
 
                for slot in range(MAX_NUM_CI):
                        state = eDVBCI_UI.getInstance().getState(slot)
-                       print "slot", slot, "state", state
                        if state != -1:
                                self.appendEntries(slot, state)
                                CiHandler.registerCIMessageHandler(slot, self.ciStateChanged)
@@ -274,6 +274,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:
@@ -309,7 +315,7 @@ class CiSelection(Screen):
                self.state[slot] = state
 
                slotidx=0
-               while self.list[slotidx][3] != slot:
+               while len(self.list[slotidx]) < 3 or self.list[slotidx][3] != slot:
                        slotidx += 1
 
                slotidx += 1 # do not change Reset