X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/5824a5dd33390117c70ff1cdfdf76afaaaac71ac..063271e1465b87f8d8aa42f16dbbeab18d12cf99:/lib/python/Screens/ChannelSelection.py diff --git a/lib/python/Screens/ChannelSelection.py b/lib/python/Screens/ChannelSelection.py index 31e86967..c376d4fa 100644 --- a/lib/python/Screens/ChannelSelection.py +++ b/lib/python/Screens/ChannelSelection.py @@ -73,7 +73,7 @@ class ChannelContextMenu(Screen): current_sel_flags = csel.getCurrentSelection().flags inBouquetRootList = current_root and current_root.getPath().find('FROM BOUQUET "bouquets.') != -1 #FIXME HACK inBouquet = csel.getMutableList() is not None - haveBouquets = csel.bouquet_root.getPath().find('FROM BOUQUET "bouquets.') != -1 + haveBouquets = config.usage.multibouquet.value if not csel.bouquet_mark_edit and not csel.movemode: if not inBouquetRootList: @@ -90,7 +90,7 @@ class ChannelContextMenu(Screen): else: if haveBouquets: if not inBouquet and current_sel_path.find("PROVIDERS") == -1: - menu.append((_("copy to favourites"), self.copyCurrentToBouquetList)) + menu.append((_("copy to bouquets"), self.copyCurrentToBouquetList)) if current_sel_path.find("flags == %d" %(FLAG_SERVICE_NEW_FOUND)) != -1: menu.append((_("remove all new found flags"), self.removeAllNewFoundFlags)) if inBouquet: @@ -151,7 +151,6 @@ class ChannelContextMenu(Screen): self.close() else: self.session.openWithCallback(self.close, MessageBox, _("The pin code you entered is wrong."), MessageBox.TYPE_ERROR) - def addServiceToBouquetSelected(self): bouquets = self.csel.getBouquetList() @@ -163,8 +162,6 @@ class ChannelContextMenu(Screen): self.bsel = self.session.openWithCallback(self.bouquetSelClosed, BouquetSelector, bouquets, self.addCurrentServiceToBouquet) elif cnt == 1: # add to only one existing bouquet self.addCurrentServiceToBouquet(bouquets[0][1]) - else: #no bouquets in root.. so assume only one favourite list is used - self.addCurrentServiceToBouquet(self.csel.bouquet_root) def bouquetSelClosed(self, recursive): self.bsel = None @@ -341,6 +338,13 @@ class ChannelSelectionEdit: mutableBouquet.flushChanges() else: print "get mutable list for new created bouquet failed" + # do some voodoo to check if current_root is equal to bouquet_root + cur_root = self.getRoot(); + str1 = cur_root.toString() + pos1 = str1.find("FROM BOUQUET") + pos2 = self.bouquet_rootstr.find("FROM BOUQUET") + if pos1 != -1 and pos2 != -1 and str1[pos1:] == self.bouquet_rootstr[pos2:]: + self.setMode() #reload else: print "add", str, "to bouquets failed" else: @@ -357,6 +361,7 @@ class ChannelSelectionEdit: refstr = self.getCurrentSelection().toString() self.bouquetNumOffsetCache = { } pos = refstr.find('FROM BOUQUET "') + filename = None if pos != -1: refstr = refstr[pos+14:] pos = refstr.find('"') @@ -364,7 +369,8 @@ class ChannelSelectionEdit: filename = '/etc/enigma2/' + refstr[:pos] # FIXMEEE !!! HARDCODED /etc/enigma2 self.removeCurrentService() try: - remove(filename) + if filename is not None: + remove(filename) except OSError: print "error during remove of", filename @@ -376,7 +382,7 @@ class ChannelSelectionEdit: self.saved_title = self.instance.getTitle() pos = self.saved_title.find(')') new_title = self.saved_title[:pos+1] - if self.bouquet_root.getPath().find('FROM BOUQUET "bouquets.') != -1: + if config.usage.multibouquet.value: new_title += ' ' + _("[bouquet edit]") else: new_title += ' ' + _("[favourite edit]") @@ -546,7 +552,7 @@ class ChannelSelectionBase(Screen): return ref def getBouquetNumOffset(self, bouquet): - if self.bouquet_root.getPath().find('FROM BOUQUET "bouquets.') == -1: #FIXME HACK + if config.usage.multibouquet.value: return 0 bouquet = self.appendDVBTypes(bouquet) try: @@ -847,25 +853,24 @@ class ChannelSelectionBase(Screen): self.servicelist.setCurrent(service) def getBouquetList(self): - serviceCount=0 bouquets = [ ] serviceHandler = eServiceCenter.getInstance() - list = serviceHandler.list(self.bouquet_root) - if not list is None: - while True: - s = list.getNext() - if not s.valid(): - break - if ((s.flags & eServiceReference.flagDirectory) == eServiceReference.flagDirectory): - info = serviceHandler.info(s) - if not info is None: - bouquets.append((info.getName(s), s)) - else: - serviceCount += 1 - if len(bouquets) == 0 and serviceCount > 0: - info = serviceHandler.info(self.bouquet_root) - if not info is None: - bouquets.append((info.getName(self.bouquet_root), self.bouquet_root)) + if config.usage.multibouquet.value: + list = serviceHandler.list(self.bouquet_root) + if not list is None: + while True: + s = list.getNext() + if not s.valid(): + break + if ((s.flags & eServiceReference.flagDirectory) == eServiceReference.flagDirectory): + info = serviceHandler.info(s) + if not info is None: + bouquets.append((info.getName(s), s)) + return bouquets + else: + info = serviceHandler.info(self.bouquet_root) + if not info is None: + bouquets.append((info.getName(self.bouquet_root), self.bouquet_root)) return bouquets return None