aboutsummaryrefslogtreecommitdiff
path: root/lib/python
diff options
context:
space:
mode:
Diffstat (limited to 'lib/python')
-rw-r--r--lib/python/Components/MovieList.py11
-rw-r--r--lib/python/Components/ServiceList.py6
-rw-r--r--lib/python/Screens/ChannelSelection.py46
-rw-r--r--lib/python/Screens/MovieSelection.py9
4 files changed, 63 insertions, 9 deletions
diff --git a/lib/python/Components/MovieList.py b/lib/python/Components/MovieList.py
index 2e010ab6..7121772c 100644
--- a/lib/python/Components/MovieList.py
+++ b/lib/python/Components/MovieList.py
@@ -62,7 +62,13 @@ class MovieList(HTMLComponent, GUIComponent):
self.l.setList(self.list)
self.l.setFont(0, gFont("Arial", 30))
self.l.setFont(1, gFont("Arial", 18))
-
+
+ def moveToIndex(self, index):
+ self.instance.moveSelectionTo(index)
+
+ def getCurrentIndex(self):
+ return self.instance.getCurrentIndex()
+
def getCurrent(self):
return self.l.getCurrentSelection()
@@ -103,3 +109,6 @@ class MovieList(HTMLComponent, GUIComponent):
def reload(self):
self.load(self.root)
self.l.setList(self.list)
+
+ def moveDown(self):
+ self.instance.moveSelection(self.instance.moveDown)
diff --git a/lib/python/Components/ServiceList.py b/lib/python/Components/ServiceList.py
index d008c475..d24f956a 100644
--- a/lib/python/Components/ServiceList.py
+++ b/lib/python/Components/ServiceList.py
@@ -43,6 +43,12 @@ class ServiceList(HTMLComponent, GUIComponent):
self.instance.moveSelectionTo(index)
print "Moving to character " + str(char)
+ def moveToIndex(self, index):
+ self.instance.moveSelectionTo(index)
+
+ def getCurrentIndex(self):
+ return self.instance.getCurrentIndex()
+
def GUIcreate(self, parent):
self.instance = eListbox(parent)
self.instance.setContent(self.l)
diff --git a/lib/python/Screens/ChannelSelection.py b/lib/python/Screens/ChannelSelection.py
index b98df0f3..c7d8d167 100644
--- a/lib/python/Screens/ChannelSelection.py
+++ b/lib/python/Screens/ChannelSelection.py
@@ -31,10 +31,14 @@ class ChannelContextMenu(FixedMenu):
inBouquetRootList = csel.servicelist.getRoot().getPath().find('FROM BOUQUET "bouquets.') != -1 #FIXME HACK
inBouquet = csel.getMutableList() is not None
+ haveBouquets = csel.bouquet_root.getPath().find('FROM BOUQUET "bouquets.') != -1
if not csel.bouquet_mark_edit and not csel.movemode and not inBouquetRootList:
if (csel.getCurrentSelection().type & eServiceReference.flagDirectory) != eServiceReference.flagDirectory:
- menu.append((_("add service to bouquet"), self.addServiceToBouquetSelected))
+ if haveBouquets:
+ menu.append((_("add service to bouquet"), self.addServiceToBouquetSelected))
+ else:
+ menu.append((_("add service to favourites"), self.addServiceToBouquetSelected))
if inBouquet:
menu.append((_("remove service"), self.removeCurrentService))
@@ -43,12 +47,19 @@ class ChannelContextMenu(FixedMenu):
if not csel.movemode:
menu.append((_("enable move mode"), self.toggleMoveMode))
if not inBouquetRootList:
- menu.append((_("enable bouquet edit"), self.bouquetMarkStart))
+ if haveBouquets:
+ menu.append((_("enable bouquet edit"), self.bouquetMarkStart))
+ else:
+ menu.append((_("enable favourite edit"), self.bouquetMarkStart))
else:
menu.append((_("disable move mode"), self.toggleMoveMode))
elif not inBouquetRootList:
- menu.append((_("end bouquet edit"), self.bouquetMarkEnd))
- menu.append((_("abort bouquet edit"), self.bouquetMarkAbort))
+ if haveBouquets:
+ menu.append((_("end bouquet edit"), self.bouquetMarkEnd))
+ menu.append((_("abort bouquet edit"), self.bouquetMarkAbort))
+ else:
+ menu.append((_("end favourites edit"), self.bouquetMarkEnd))
+ menu.append((_("abort favourites edit"), self.bouquetMarkAbort))
menu.append((_("back"), self.close))
@@ -107,6 +118,8 @@ class ChannelSelectionEdit:
self.bouquet_mark_edit = False
self.mutableList = None
self.__marked = [ ]
+ self.saved_title = None
+ self.saved_root = None
def getMutableList(self, root=eServiceReference()):
if not self.mutableList is None:
@@ -125,10 +138,19 @@ class ChannelSelectionEdit:
# add all services from the current list to internal marked set in listboxservicecontent
self.bouquetRoot = self.servicelist.getRoot()
self.clearMarks() # this clears the internal marked set in the listboxservicecontent
+ self.saved_title = self.instance.getTitle()
+ new_title = self.saved_title
+ if self.bouquet_root.getPath().find('FROM BOUQUET "bouquets.') != -1:
+ new_title += ' ' + _("[bouquet edit]")
+ else:
+ new_title += ' ' + _("[favourite edit]")
+ self.instance.setTitle(new_title)
self.bouquet_mark_edit = True
self.__marked = self.servicelist.getRootServices()
for x in self.__marked:
self.servicelist.addMarked(eServiceReference(x))
+ self.saved_root = self.getRoot()
+ self.showAllServices()
def endMarkedEdit(self, abort):
if not abort and self.mutableList is not None:
@@ -145,13 +167,14 @@ class ChannelSelectionEdit:
self.mutableList.addService(eServiceReference(x))
if changed:
self.mutableList.flushChanges()
- self.setRoot(self.bouquetRoot)
- #self.showFavourites()
self.__marked = []
self.clearMarks()
self.bouquet_mark_edit = False
self.bouquetRoot = None
self.mutableList = None
+ self.instance.setTitle(self.saved_title)
+ self.saved_title = None
+ self.setRoot(self.saved_root)
def clearMarks(self):
self.servicelist.clearMarks()
@@ -168,8 +191,13 @@ class ChannelSelectionEdit:
mutableList = self.getMutableList()
if ref.valid() and mutableList is not None:
if not mutableList.removeService(ref):
+ currentIndex = self.servicelist.getCurrentIndex()
+ self.servicelist.moveDown()
+ if self.servicelist.getCurrentIndex() == currentIndex:
+ currentIndex -= 1
mutableList.flushChanges() #FIXME dont flush on each single removed service
self.setRoot(self.servicelist.getRoot())
+ self.servicelist.moveToIndex(currentIndex)
def addCurrentServiceToBouquet(self, dest):
mutableList = self.getMutableList(dest)
@@ -185,9 +213,15 @@ class ChannelSelectionEdit:
self.movemode = False
self.mutableList.flushChanges() # FIXME add check if changes was made
self.mutableList = None
+ self.instance.setTitle(self.saved_title)
+ self.saved_title = None
else:
self.mutableList = self.getMutableList()
self.movemode = True
+ self.saved_title = self.instance.getTitle()
+ new_title = self.saved_title
+ new_title += ' ' + _("[move mode]");
+ self.instance.setTitle(new_title);
def handleEditCancel(self):
if self.movemode: #movemode active?
diff --git a/lib/python/Screens/MovieSelection.py b/lib/python/Screens/MovieSelection.py
index ce3a9732..86d25473 100644
--- a/lib/python/Screens/MovieSelection.py
+++ b/lib/python/Screens/MovieSelection.py
@@ -49,9 +49,14 @@ class ChannelContextMenu(FixedMenu):
if result == False:
self.session.openWithCallback(self.close, MessageBox, "Delete failed!")
else:
- self.csel["list"].reload()
+ list = self.csel["list"]
+ currentIndex = list.getCurrentIndex()
+ list.moveDown()
+ if list.getCurrentIndex() == currentIndex:
+ currentIndex -= 1
+ list.reload()
+ list.moveToIndex(currentIndex)
self.close()
-
class MovieSelection(Screen):
def __init__(self, session):