Merge remote-tracking branch 'origin/bug_453_multiepg_no_more_ask_bouquet' into exper...
authorghost <andreas.monzner@multimedia-labs.de>
Thu, 10 Mar 2011 18:34:07 +0000 (19:34 +0100)
committerghost <andreas.monzner@multimedia-labs.de>
Thu, 10 Mar 2011 18:34:07 +0000 (19:34 +0100)
lib/python/Plugins/Extensions/GraphMultiEPG/plugin.py
lib/python/Screens/ChannelSelection.py
lib/python/Screens/InfoBarGenerics.py

index bcc7b9b..9f901e9 100644 (file)
@@ -1,6 +1,6 @@
 from Plugins.Plugin import PluginDescriptor
 from GraphMultiEpg import GraphMultiEPG
-from Screens.ChannelSelection import BouquetSelector
+from Screens.ChannelSelection import SilentBouquetSelector
 from enigma import eServiceCenter, eServiceReference
 from ServiceReference import ServiceReference
 
@@ -79,16 +79,16 @@ def main(session, servicelist, **kwargs):
        global Servicelist
        Servicelist = servicelist
        bouquets = Servicelist.getBouquetList()
+       root = Servicelist.getRoot()
        if bouquets is None:
                cnt = 0
        else:
                cnt = len(bouquets)
-       if cnt > 1: # show bouquet list
+       if cnt > 1: # create bouquet list
                global bouquetSel
-               bouquetSel = Session.openWithCallback(closed, BouquetSelector, bouquets, openBouquetEPG, enableWrapAround=True)
-               dlg_stack.append(bouquetSel)
-       elif cnt == 1:
-               if not openBouquetEPG(bouquets[0][1]):
+               bouquetSel = SilentBouquetSelector(bouquets, True, Servicelist.getBouquetNumOffset(root))
+       if cnt >= 1: # open current bouquet
+               if not openBouquetEPG(root):
                        cleanup()
 
 def Plugins(**kwargs):
index c07e349..912d678 100644 (file)
@@ -65,6 +65,24 @@ class BouquetSelector(Screen):
        def cancelClick(self):
                self.close(False)
 
+class SilentBouquetSelector:
+       def __init__(self, bouquets, enableWrapAround=False, current=0):
+               self.bouquets = [b[1] for b in bouquets]
+               self.pos = current
+               self.count = len(bouquets)
+               self.enableWrapAround = enableWrapAround
+
+       def up(self):
+               if self.pos > 0 or self.enableWrapAround:
+                       self.pos = (self.pos - 1) % self.count
+
+       def down(self):
+               if self.pos < (self.count - 1) or self.enableWrapAround:
+                       self.pos = (self.pos + 1) % self.count
+
+       def getCurrent(self):
+               return self.bouquets[self.pos]
+
 # csel.bouquet_mark_edit values
 OFF = 0
 EDIT_BOUQUET = 1
index 0bb7fd3..2abeb89 100644 (file)
@@ -1,4 +1,4 @@
-from ChannelSelection import ChannelSelection, BouquetSelector
+from ChannelSelection import ChannelSelection, BouquetSelector, SilentBouquetSelector
 
 from Components.ActionMap import ActionMap, HelpableActionMap
 from Components.ActionMap import NumberActionMap
@@ -555,18 +555,15 @@ class InfoBarEPG:
 
        def openMultiServiceEPG(self, withCallback=True):
                bouquets = self.servicelist.getBouquetList()
+               root = self.servicelist.getRoot()
                if bouquets is None:
                        cnt = 0
                else:
                        cnt = len(bouquets)
-               if cnt > 1: # show bouquet list
-                       if withCallback:
-                               self.bouquetSel = self.session.openWithCallback(self.closed, BouquetSelector, bouquets, self.openBouquetEPG, enableWrapAround=True)
-                               self.dlg_stack.append(self.bouquetSel)
-                       else:
-                               self.bouquetSel = self.session.open(BouquetSelector, bouquets, self.openBouquetEPG, enableWrapAround=True)
-               elif cnt == 1:
-                       self.openBouquetEPG(bouquets[0][1], withCallback)
+               if cnt > 1: # create bouquet list for bouq+/-
+                       self.bouquetSel = SilentBouquetSelector(bouquets, True, self.servicelist.getBouquetNumOffset(root))
+               if cnt >= 1:
+                       self.openBouquetEPG(root, withCallback)
 
        def changeServiceCB(self, direction, epg):
                if self.serviceSel: