menu.append((_("add service to favourites"), self.addServiceToBouquetSelected))
elif haveBouquets:
if not inBouquet and csel.getCurrentSelection().getPath().find("PROVIDERS") == -1:
- menu.append((_("copy to favourites"), csel.copyCurrentToBouquetList))
+ menu.append((_("copy to favourites"), self.copyCurrentToBouquetList))
if inBouquet:
menu.append((_("remove service"), self.removeCurrentService))
elif haveBouquets:
- menu.append((_("remove bouquet"), csel.removeBouquet))
+ menu.append((_("remove bouquet"), self.removeBouquet))
if inBouquet: # current list is editable?
if not csel.bouquet_mark_edit:
def __init__(self, csel, contexts = [ ], actions = { }, prio=0):
ActionMap.__init__(self, contexts, actions, prio)
self.csel = csel
+
def action(self, contexts, action):
if action == "cancel":
self.csel.handleEditCancel()
+ return 0 # fall-trough
elif action == "ok":
- pass # avoid typo warning...
+ return 0 # fall-trough
else:
- ActionMap.action(self, contexts, action)
+ return ActionMap.action(self, contexts, action)
+
self["ChannelSelectEditActions"] = ChannelSelectionEditActionMap(self, ["ChannelSelectEditActions", "OkCancelActions"],
{
"contextMenu": self.doContext,
self.mutableList = None
self.setTitle(self.saved_title)
self.saved_title = None
- self.servicePath = self.savedPath[:]
+ # self.servicePath is just a reference to servicePathTv or Radio...
+ # so we never ever do use the asignment operator in self.servicePath
+ del self.servicePath[:] # remove all elements
+ self.servicePath += self.savedPath # add saved elements
del self.savedPath
self.setRoot(self.servicePath[len(self.servicePath)-1])
self.servicePathTV = [ ]
self.servicePathRadio = [ ]
self.servicePath = None
+
+ self.mode = MODE_TV
self.pathChangedDisabled = False
"7": self.keyNumberGlobal,
"8": self.keyNumberGlobal,
"9": self.keyNumberGlobal,
- "0": self.keyNumberGlobal
+ "0": self.keyNumber0
})
def appendDVBTypes(self, ref):
length = len(self.servicePath)
if length:
current = self.servicePath[length-1]
- self.setRoot(current, justSet)
- if not justSet:
- self.setCurrentSelection(prev)
+ self.setRoot(current, justSet)
+ if not justSet:
+ self.setCurrentSelection(prev)
return prev
def isBasePathEqual(self, ref):
return bouquets
return None
+ def keyNumber0(self, num):
+ if len(self.servicePath) > 1:
+ self.keyGoUp()
+ else:
+ self.keyNumberGlobal(num)
+
+ def keyGoUp(self):
+ if len(self.servicePath) > 1:
+ if self.isBasePathEqual(self.bouquet_root):
+ self.showFavourites()
+ else:
+ ref = eServiceReference('%s FROM SATELLITES ORDER BY satellitePosition'%(self.service_types))
+ if self.isBasePathEqual(ref):
+ self.showSatellites()
+ else:
+ ref = eServiceReference('%s FROM PROVIDERS ORDER BY name'%(self.service_types))
+ if self.isBasePathEqual(ref):
+ self.showProviders()
+ else:
+ self.showAllServices()
+
HISTORYSIZE = 20
class ChannelSelection(ChannelSelectionBase, ChannelSelectionEdit, ChannelSelectionEPG):
config.tv = ConfigSubsection();
config.tv.lastservice = configElement("config.tv.lastservice", configText, "", 0);
config.tv.lastroot = configElement("config.tv.lastroot", configText, "", 0);
- config.tv.prevservice = configElement("config.tv.prevservice", configText, "", 0);
- config.tv.prevroot = configElement("config.tv.prevroot", configText, "", 0);
self["actions"] = ActionMap(["OkCancelActions"],
{
def setHistoryPath(self):
path = self.history[self.history_pos][:]
ref = path.pop()
- self.servicePath = path
+ del self.servicePath[:]
+ self.servicePath += path
self.saveRoot()
plen = len(path)
root = path[plen-1]
for i in self.servicePathTV:
path += i.toString()
path += ';'
- if config.tv.prevroot.value != config.tv.lastroot.value:
- config.tv.prevroot.value = config.tv.lastroot.value
- config.tv.prevroot.save()
if len(path) and path != config.tv.lastroot.value:
config.tv.lastroot.value = path
config.tv.lastroot.save()
else:
refstr = ""
if refstr != config.tv.lastservice.value:
- config.tv.prevservice.value = config.tv.lastservice.value
- config.tv.prevservice.save()
config.tv.lastservice.value = refstr
config.tv.lastservice.save()
def recallPrevService(self):
- if len(config.tv.prevservice.value) and len(config.tv.prevroot.value):
- if config.tv.lastroot.value != config.tv.prevroot.value:
- tmp = config.tv.lastroot.value
- config.tv.lastroot.value = config.tv.prevroot.value
- config.tv.lastroot.save()
- config.tv.prevroot.value = tmp
- config.tv.prevroot.save()
- self.restoreRoot()
- if config.tv.lastservice.value != config.tv.prevservice.value:
- tmp = config.tv.lastservice.value
- config.tv.lastservice.value = config.tv.prevservice.value
- config.tv.lastservice.save()
- config.tv.prevservice.value = tmp
- config.tv.prevservice.save()
- lastservice=eServiceReference(config.tv.lastservice.value)
- self.session.nav.playService(lastservice)
- self.setCurrentSelection(lastservice)
+ hlen = len(self.history)
+ if hlen > 1:
+ if self.history_pos == hlen-1:
+ tmp = self.history[self.history_pos]
+ self.history[self.history_pos] = self.history[self.history_pos-1]
+ self.history[self.history_pos-1] = tmp
+ else:
+ tmp = self.history[self.history_pos+1]
+ self.history[self.history_pos+1] = self.history[self.history_pos]
+ self.history[self.history_pos] = tmp
+ self.setHistoryPath()
def cancel(self):
self.close(None)