some nicer code
[enigma2.git] / lib / python / Screens / InfoBarGenerics.py
index dc5ddecc3fef92950a89cc96f5e576b2c31f28ad..389e119f4b794dcd76538ec84120b380bf54234a 100644 (file)
@@ -221,7 +221,7 @@ class InfoBarNumberZap:
                bouquet = self.servicelist.bouquet_root
                service = None
                serviceHandler = eServiceCenter.getInstance()
-               if bouquet.toString().find('FROM BOUQUET "bouquets.') == -1: #FIXME HACK
+               if not config.usage.multibouquet.value:
                        service, number = self.searchNumberHelper(serviceHandler, number, bouquet)
                else:
                        bouquetlist = serviceHandler.list(bouquet)
@@ -1478,11 +1478,13 @@ class InfoBarSubserviceSelection:
                                        tlist = [(_("Quickzap"), "quickzap", service.subServices()), (_("Add to bouquet"), "CALLFUNC", self.addSubserviceToBouquetCallback), ("--", "")] + tlist
                                else:
                                        tlist = [(_("Quickzap"), "quickzap", service.subServices()), (_("Add to favourites"), "CALLFUNC", self.addSubserviceToBouquetCallback), ("--", "")] + tlist
+                               selection += 3
                        else:
                                tlist = [(_("Quickzap"), "quickzap", service.subServices()), ("--", "")] + tlist
                                keys = ["red", "",  "0", "1", "2", "3", "4", "5", "6", "7", "8", "9" ] + [""] * n
+                               selection += 2
 
-                       self.session.openWithCallback(self.subserviceSelected, ChoiceBox, title=_("Please select a subservice..."), list = tlist, selection = selection + 2, keys = keys)
+                       self.session.openWithCallback(self.subserviceSelected, ChoiceBox, title=_("Please select a subservice..."), list = tlist, selection = selection, keys = keys)
 
        def subserviceSelected(self, service):
                del self.bouquets
@@ -1508,31 +1510,18 @@ class InfoBarSubserviceSelection:
                                self.bsel = self.session.openWithCallback(self.bouquetSelClosed, BouquetSelector, self.bouquets, self.addSubserviceToBouquet)
                        elif cnt == 1: # add to only one existing bouquet
                                self.addSubserviceToBouquet(self.bouquets[0][1])
-                       else: #no bouquets in root.. so assume only one favourite list is used
-                               self.addSubserviceToBouquet(self.servicelist.bouquet_root)
+                               self.session.open(MessageBox, _("Service has been added to the favourites."), MessageBox.TYPE_INFO)
 
-       def bouquetSelClosed(self, **args):
+       def bouquetSelClosed(self, confirmed):
                self.bsel = None
                del self.selectedSubservice
+               if confirmed:
+                       self.session.open(MessageBox, _("Service has been added to the selected bouquet."), MessageBox.TYPE_INFO)
 
        def addSubserviceToBouquet(self, dest):
-               serviceHandler = eServiceCenter.getInstance()
-               list = dest and serviceHandler.list(dest)
-               mutableList = dest and list and list.startEdit()
-               if mutableList:
-                       if not mutableList.addService(self.selectedSubservice[1]):
-                               mutableList.flushChanges()
-                               # do some voodoo to check if the subservice is added to the
-                               # current selected bouquet in channellist
-                               cur_root = self.servicelist.getRoot();
-                               str1 = cur_root.toString()
-                               str2 = dest.toString()
-                               pos1 = str1.find("FROM BOUQUET")
-                               pos2 = str2.find("FROM BOUQUET")
-                               if pos1 != -1 and pos2 != -1 and str1[pos1:] == str2[pos2:]:
-                                       self.servicelist.setMode()
+               self.servicelist.addServiceToBouquet(dest, self.selectedSubservice[1])
                if self.bsel:
-                       self.bsel.close()
+                       self.bsel.close(True)
                else:
                        del self.selectedSubservice