add very simple scan
[enigma2.git] / lib / python / Screens / ChannelSelection.py
index e421c5c90bbabf6f0f5990ef4f849e91f5e3de58..c8bfb2cb4021a43cef90e2a10eb219d4b8c3167d 100644 (file)
@@ -5,7 +5,7 @@ from Components.ActionMap import ActionMap
 
 from enigma import eServiceReference
 
-from Screens.Menu import FixedMenu
+from Screens.FixedMenu import FixedMenu
 
 import xml.dom.minidom
 
@@ -49,6 +49,7 @@ class ChannelSelection(Screen):
        def __init__(self, session):
                Screen.__init__(self, session)
                
+               self.entry_marked = False
                self.movemode = False
                self.bouquet_mark_edit = False
                
@@ -56,9 +57,9 @@ class ChannelSelection(Screen):
                self.__marked = [ ]
                
                self["key_red"] = Button("All")
-               self["key_green"] = Button("ARD")
-               self["key_yellow"] = Button("ZDF")
-               self["key_blue"] = Button("Custom")
+               self["key_green"] = Button("Provider")
+               self["key_yellow"] = Button("Satellite")
+               self["key_blue"] = Button("Favourites")
                
                self["list"] = ServiceList()
                self["list"].setRoot(eServiceReference("""1:0:1:0:0:0:0:0:0:0:(type == 1)"""))
@@ -68,7 +69,6 @@ class ChannelSelection(Screen):
                class ChannelActionMap(ActionMap):
                        def action(self, contexts, action):
                                if action[:7] == "bouquet":
-                                       print "setting root to " + action[8:]
                                        l = self.csel["list"]
                                        l.setMode(l.MODE_NORMAL)
                                        l.setRoot(eServiceReference("1:0:1:0:0:0:0:0:0:0:" + action[8:]))
@@ -96,7 +96,6 @@ class ChannelSelection(Screen):
                
                l = self["list"]
                for x in marked:
-                       print "mark: " + str(x)
                        l.addMarked(x)
                
        def endMarkedEdit(self, abort):
@@ -121,9 +120,21 @@ class ChannelSelection(Screen):
        
        # ...
        def channelSelected(self):
-               self.session.nav.playService(self["list"].getCurrent())
-               print "current: " + self["list"].getCurrent().toString()
-               self.close()
+               ref = self["list"].getCurrent()
+               if self.movemode:
+                       if self.entry_marked:
+                               self["list"].setCurrentMarked(False)
+                               self.entry_marked = False
+                       else:
+                               self["list"].setCurrentMarked(True)
+                               self.entry_marked = True
+               elif (ref.flags & 7) == 7:
+                       l = self["list"]
+                       l.setMode(l.MODE_NORMAL)
+                       l.setRoot(ref)
+               else:
+                       self.session.nav.playService(ref)
+                       self.close()
 
        #called from infoBar
        def zap(self):
@@ -139,8 +150,14 @@ class ChannelSelection(Screen):
                self.session.open(ChannelContextMenu, self)
 
        def setMoveMode(self, mode):
-               self.movemode = mode
-       
+               if mode:
+                       self.movemode = False
+               else:
+                       self.movemode = True
+
+       def getCurrent(self):
+               return self["list"].getCurrent()
+
        def showFavourites(self):
                l = self["list" ]
                l.setRoot(eServiceReference('1:0:1:0:0:0:0:0:0:0:(provider == "fav")'))