from Components.ActionMap import ActionMap
from EpgSelection import EPGSelection
from enigma import eServiceReference, eEPGCache, eEPGCachePtr, eServiceCenter, eServiceCenterPtr, iMutableServiceListPtr
+from Components.config import config
from Screens.FixedMenu import FixedMenu
def __init__(self, session, csel):
self.csel = csel
- menu = [("back", self.close)]
-
+ menu = [ ]
+
if csel.mutableList is not None:
if not csel.bouquet_mark_edit:
if csel.movemode:
else:
menu.append(("edit bouquet...", self.bouquetMarkStart))
+ if not csel.bouquet_mark_edit and not csel.movemode:
+ menu.append(("remove service", self.removeCurrentService))
+ menu.append(("back", self.close))
+ else:
+ menu.append(("back", self.close))
+
FixedMenu.__init__(self, session, "Channel Selection", menu)
self.skinName = "Menu"
+ def removeCurrentService(self):
+ self.close()
+ self.csel.removeCurrentService()
+
def toggleMoveMode(self):
self.csel.toggleMoveMode()
self.close()
def bouquetMarkStart(self):
- self.csel.startMarkedEdit()
self.close()
+ self.csel.startMarkedEdit()
def bouquetMarkEnd(self):
self.csel.endMarkedEdit(abort=False)
def action(self, contexts, action):
if action[:7] == "bouquet":
l = self.csel
+ list = l["list"]
+ list.setMode(list.MODE_NORMAL)
l.setRoot(eServiceReference("1:7:1:0:0:0:0:0:0:0:" + action[8:]))
else:
if action == "cancel":
if l.movemode: #movemode active?
l.channelSelected() # unmark
l.toggleMoveMode() # disable move mode
+ elif l.bouquet_mark_edit:
+ l.endMarkedEdit(True) # abort edit mode
ActionMap.action(self, contexts, action)
self["actions"] = ChannelActionMap(["ChannelSelectActions", "OkCancelActions", "ContextMenuActions"],
"ok": self.channelSelected,
"mark": self.doMark,
"contextMenu": self.doContext,
- "showEPGList": self.showEPGList
+ "showFavourites": self.showFavourites,
+ "showEPGList": self.showEPGList
})
self["actions"].csel = self
for x in self.__marked:
l.addMarked(eServiceReference(x))
+ def removeCurrentService(self):
+ l = self["list"]
+ ref=l.getCurrent()
+ if ref.valid() and self.mutableList is not None:
+ self.mutableList.removeService(ref)
+ self.mutableList.flushChanges() #FIXME dont flush on each single removed service
+ self.setRoot(l.getRoot())
+
def endMarkedEdit(self, abort):
l = self["list"]
if not abort and self.mutableList is not None:
changed = True
self.mutableList.addService(eServiceReference(x))
if changed:
- l.setRoot(self.bouquetRoot)
+ self.mutableList.flushChanges()
+ #self.setRoot(self.bouquetRoot)
+ self.showFavourites()
self.__marked = []
self.clearMarks()
self.bouquet_mark_edit = False
self.doMark()
else:
self.session.nav.playService(ref)
+ self.saveChannel()
self.close()
#called from infoBar
def zap(self):
self.session.nav.playService(self["list"].getCurrent())
+ self.saveChannel()
def moveUp(self):
self["list"].moveUp()
def toggleMoveMode(self):
if self.movemode:
+ if self.entry_marked:
+ self.channelSelected() # unmark current entry
self.movemode = False
+ self.mutableList.flushChanges() # FIXME add check if changes was made
else:
self.movemode = True
+
+ def showFavourites(self):
+ self.setRoot(eServiceReference('1:7:1:0:0:0:0:0:0:0:(type == 1) FROM BOUQUET "userbouquet.favourites.tv" ORDER BY bouquet'))
+ list = self["list"]
+ list.setMode(list.MODE_FAVOURITES)
+
+ def saveChannel(self):
+ ref = self.session.nav.getCurrentlyPlayingServiceReference()
+ if ref is not None:
+ refstr = ref.toString()
+ else:
+ refstr = ""
+ config.tv.lastservice.value = refstr
+ config.tv.lastservice.save()