restore last channel
[enigma2.git] / lib / python / Screens / ChannelSelection.py
index 8951770a511e26b427871a56c18e8547a82e13da..b69c8b372f0a540dce950f84fdd8a597ae0c6ea9 100644 (file)
@@ -1,11 +1,12 @@
 from Screen import Screen
 from Components.Button import Button
 from Components.ServiceList import ServiceList
 from Screen import Screen
 from Components.Button import Button
 from Components.ServiceList import ServiceList
-from Components.ActionMap import ActionMap
+from Components.ActionMap import NumberActionMap
 from EpgSelection import EPGSelection
 from enigma import eServiceReference, eEPGCache, eEPGCachePtr, eServiceCenter, eServiceCenterPtr, iMutableServiceListPtr, iStaticServiceInformationPtr, eTimer
 from Components.config import config, configElement, ConfigSubsection, configText
 from Screens.FixedMenu import FixedMenu
 from EpgSelection import EPGSelection
 from enigma import eServiceReference, eEPGCache, eEPGCachePtr, eServiceCenter, eServiceCenterPtr, iMutableServiceListPtr, iStaticServiceInformationPtr, eTimer
 from Components.config import config, configElement, ConfigSubsection, configText
 from Screens.FixedMenu import FixedMenu
+from Tools.NumericalTextInput import NumericalTextInput
 
 import xml.dom.minidom
 
 
 import xml.dom.minidom
 
@@ -223,6 +224,10 @@ class ChannelSelectionBase(Screen):
                self.servicelist = self["list"]
 
                #self["okbutton"] = Button("ok", [self.channelSelected])
                self.servicelist = self["list"]
 
                #self["okbutton"] = Button("ok", [self.channelSelected])
+               
+               self.numericalTextInput = NumericalTextInput()
+               
+               self.lastService = None
 
                self.lastServiceTimer = eTimer()
                self.lastServiceTimer.timeout.get().append(self.lastService)
 
                self.lastServiceTimer = eTimer()
                self.lastServiceTimer.timeout.get().append(self.lastService)
@@ -270,6 +275,11 @@ class ChannelSelectionBase(Screen):
        def showFavourites(self):
                self.setRoot(self.bouquet_root)
 
        def showFavourites(self):
                self.setRoot(self.bouquet_root)
 
+       def keyNumberGlobal(self, number):
+               print "You pressed number " + str(number)
+               print "You would go to character " + str(self.numericalTextInput.getKey(number))
+               # TODO let the servicelist jump to the next entry strating with the chosen character
+
        def enterBouquet(self, action):
                if action[:7] == "bouquet":
                        if action.find("FROM BOUQUET") != -1:
        def enterBouquet(self, action):
                if action[:7] == "bouquet":
                        if action.find("FROM BOUQUET") != -1:
@@ -304,12 +314,14 @@ class ChannelSelection(ChannelSelectionBase, ChannelSelectionEdit):
                if config.tv.lastroot.value == "":
                        self.servicelist.setRoot(eServiceReference("""1:0:1:0:0:0:0:0:0:0:(type == 1)"""))
 
                if config.tv.lastroot.value == "":
                        self.servicelist.setRoot(eServiceReference("""1:0:1:0:0:0:0:0:0:0:(type == 1)"""))
 
-               class ChannelActionMap(ActionMap):
+               self.session.nav.playService(eServiceReference(config.tv.lastservice.value))
+
+               class ChannelActionMap(NumberActionMap):
                        def action(self, contexts, action):
                                if not self.csel.enterBouquet(action):
                                        if action == "cancel":
                                                self.csel.handleEditCancel()
                        def action(self, contexts, action):
                                if not self.csel.enterBouquet(action):
                                        if action == "cancel":
                                                self.csel.handleEditCancel()
-                                       ActionMap.action(self, contexts, action)
+                                       NumberActionMap.action(self, contexts, action)
                self["actions"] = ChannelActionMap(["ChannelSelectActions", "OkCancelActions", "ContextMenuActions"],
                        {
                                "cancel": self.cancel,
                self["actions"] = ChannelActionMap(["ChannelSelectActions", "OkCancelActions", "ContextMenuActions"],
                        {
                                "cancel": self.cancel,
@@ -317,7 +329,17 @@ class ChannelSelection(ChannelSelectionBase, ChannelSelectionEdit):
                                "mark": self.doMark,
                                "contextMenu": self.doContext,
                                "showFavourites": self.showFavourites,
                                "mark": self.doMark,
                                "contextMenu": self.doContext,
                                "showFavourites": self.showFavourites,
-                               "showEPGList": self.showEPGList
+                               "showEPGList": self.showEPGList,
+                               "1": self.keyNumberGlobal,
+                               "2": self.keyNumberGlobal,
+                               "3": self.keyNumberGlobal,
+                               "4": self.keyNumberGlobal,
+                               "5": self.keyNumberGlobal,
+                               "6": self.keyNumberGlobal,
+                               "7": self.keyNumberGlobal,
+                               "8": self.keyNumberGlobal,
+                               "9": self.keyNumberGlobal,
+                               "0": self.keyNumberGlobal
                        })
                self["actions"].csel = self
 
                        })
                self["actions"].csel = self
 
@@ -385,6 +407,16 @@ class SimpleChannelSelection(ChannelSelectionBase):
                                "cancel": self.cancel,
                                "ok": self.channelSelected,
                                "showFavourites": self.showFavourites,
                                "cancel": self.cancel,
                                "ok": self.channelSelected,
                                "showFavourites": self.showFavourites,
+                               "1": self.keyNumberGlobal,
+                               "2": self.keyNumberGlobal,
+                               "3": self.keyNumberGlobal,
+                               "4": self.keyNumberGlobal,
+                               "5": self.keyNumberGlobal,
+                               "6": self.keyNumberGlobal,
+                               "7": self.keyNumberGlobal,
+                               "8": self.keyNumberGlobal,
+                               "9": self.keyNumberGlobal,
+                               "0": self.keyNumberGlobal
                        })
                self["actions"].csel = self
 
                        })
                self["actions"].csel = self