move more code to onCreate
[enigma2.git] / lib / python / Screens / ChannelSelection.py
index ae344dcce554f215338aec7458f29da372937e74..93b55a8e8ff56ca512a8482612568b5972f69bcc 100644 (file)
@@ -217,8 +217,8 @@ class ChannelSelectionBase(Screen):
 
                self.service_types = self.service_types_tv
 
-               #self.bouquet_root = eServiceReference('1:7:1:0:0:0:0:0:0:0:(type == 1) FROM BOUQUET "bouquets.tv" ORDER BY bouquet')
-               self.bouquet_root = eServiceReference('%s FROM BOUQUET "userbouquet.favourites.tv" ORDER BY bouquet'%(self.service_types))
+               self.bouquet_root = eServiceReference('1:7:1:0:0:0:0:0:0:0:(type == 1) FROM BOUQUET "bouquets.tv" ORDER BY bouquet')
+               #self.bouquet_root = eServiceReference('%s FROM BOUQUET "userbouquet.favourites.tv" ORDER BY bouquet'%(self.service_types))
 
                self["key_red"] = Button("All")
                self["key_green"] = Button("Satellites")
@@ -332,8 +332,6 @@ class ChannelSelection(ChannelSelectionBase, ChannelSelectionEdit):
                #if config.tv.lastroot.value == "":
                #allways defaults to fav
                #self.servicelist.setRoot(eServiceReference('1:7:1:0:0:0:0:0:0:0:(type == 1) FROM BOUQUET "userbouquet.favourites.tv" ORDER BY bouquet'))
-               self.showFavourites()
-               self.session.nav.playService(eServiceReference(config.tv.lastservice.value))
 
                class ChannelActionMap(NumberActionMap):
                        def action(self, contexts, action):
@@ -364,6 +362,26 @@ class ChannelSelection(ChannelSelectionBase, ChannelSelectionEdit):
                                "0": self.keyNumberGlobal
                        })
                self["actions"].csel = self
+               self.onShown.append(self.onShow)
+               self.onLayoutFinish.append(self.onCreate)
+
+       def onCreate(self):
+               lastroot=eServiceReference(config.tv.lastroot.value)
+               if lastroot.valid():
+                       self.setRoot(lastroot)
+               else:
+                       self.showFavourites()
+               lastservice=eServiceReference(config.tv.lastservice.value)
+               if lastservice.valid():
+                       self.session.nav.playService(lastservice)
+                       self.servicelist.setCurrent(lastservice)
+
+       def onShow(self):
+               ref = self.session.nav.getCurrentlyPlayingServiceReference()
+               if ref is not None and ref.valid() and ref.getPath() == "":
+                       self.servicelist.setPlayableIgnoreService(ref)
+               else:
+                       self.servicelist.setPlayableIgnoreService(eServiceReference())
 
        def showEPGList(self):
                ref=self.servicelist.getCurrent()
@@ -430,6 +448,9 @@ class SimpleChannelSelection(ChannelSelectionBase):
                                "cancel": self.cancel,
                                "ok": self.channelSelected,
                                "showFavourites": self.showFavourites,
+                               "showAllServices": self.showAllServices,
+                               "showProviders": self.showProviders,
+                               "showSatellites": self.showSatellites,
                                "1": self.keyNumberGlobal,
                                "2": self.keyNumberGlobal,
                                "3": self.keyNumberGlobal,
@@ -445,6 +466,7 @@ class SimpleChannelSelection(ChannelSelectionBase):
 
        def onExecCallback(self):
                print "onExecCallback"
+               self.showFavourites()
                self.session.currentDialog.instance.setTitle(self.title)
 
        def channelSelected(self): # just return selected service