add some checks, use SkinError exception instead of string
[enigma2.git] / lib / python / Screens / ChannelSelection.py
index 47a9d9e66aef0dfd1637d352759e91cf8ef4a03c..df1bd6c089a1cc01a8b2add62e50b1207866d3a7 100644 (file)
@@ -128,7 +128,7 @@ class ChannelContextMenu(Screen):
 
        def bouquetInputCallback(self, bouquet):
                if bouquet is not None:
-                       self.csel.addBouquet(bouquet, True)
+                       self.csel.addBouquet(bouquet, None, True)
 
        def addServiceToBouquetSelected(self):
                bouquets = self.csel.getBouquetList()
@@ -441,7 +441,7 @@ class ChannelSelectionBase(Screen):
                Screen.__init__(self, session)
 
                # this makes it much simple to implement a selectable radio or tv mode :)
-               self.service_types_tv = '1:7:1:0:0:0:0:0:0:0:(type == 1) || (type == 17) || (type == 195)'
+               self.service_types_tv = '1:7:1:0:0:0:0:0:0:0:(type == 1) || (type == 17) || (type == 195) || (type == 25)'
                self.service_types_radio = '1:7:2:0:0:0:0:0:0:0:(type == 2)'
 
                self["key_red"] = Button(_("All"))
@@ -836,17 +836,17 @@ class ChannelSelectionBase(Screen):
 
 HISTORYSIZE = 20
 
+#config for lastservice
+config.tv = ConfigSubsection();
+config.tv.lastservice = configElement("config.tv.lastservice", configText, "", 0);
+config.tv.lastroot = configElement("config.tv.lastroot", configText, "", 0);
+
 class ChannelSelection(ChannelSelectionBase, ChannelSelectionEdit, ChannelSelectionEPG):
        def __init__(self, session):
                ChannelSelectionBase.__init__(self,session)
                ChannelSelectionEdit.__init__(self)
                ChannelSelectionEPG.__init__(self)
 
-               #config for lastservice
-               config.tv = ConfigSubsection();
-               config.tv.lastservice = configElement("config.tv.lastservice", configText, "", 0);
-               config.tv.lastroot = configElement("config.tv.lastroot", configText, "", 0);
-
                self["actions"] = ActionMap(["OkCancelActions"],
                        {
                                "cancel": self.cancel,
@@ -895,11 +895,14 @@ class ChannelSelection(ChannelSelectionBase, ChannelSelectionEdit, ChannelSelect
                nref = self.getCurrentSelection()
                if ref is None or ref != nref:
                        self.session.nav.playService(nref)
-               self.saveRoot()
-               self.saveChannel()
+                       self.saveRoot()
+                       self.saveChannel()
+                       self.addToHistory(nref)
+
+       def addToHistory(self, ref):
                if self.servicePath is not None:
                        tmp=self.servicePath[:]
-                       tmp.append(nref)
+                       tmp.append(ref)
                        try:
                                del self.history[self.history_pos+1:]
                        except: