diff options
| author | Andreas Monzner <andreas.monzner@multimedia-labs.de> | 2005-11-14 02:40:16 +0000 |
|---|---|---|
| committer | Andreas Monzner <andreas.monzner@multimedia-labs.de> | 2005-11-14 02:40:16 +0000 |
| commit | 059982cc102de394ac316abc3ee0806673d003d5 (patch) | |
| tree | 8066c48f450395c0966177834add07e1f196d82f /lib/python | |
| parent | b84057facdcc2e242611c312240f389fd2c11c99 (diff) | |
| download | enigma2-059982cc102de394ac316abc3ee0806673d003d5.tar.gz enigma2-059982cc102de394ac316abc3ee0806673d003d5.zip | |
working on move, edit mode and add remove service to context menu
Diffstat (limited to 'lib/python')
| -rw-r--r-- | lib/python/Components/ServiceList.py | 6 | ||||
| -rw-r--r-- | lib/python/Screens/ChannelSelection.py | 25 |
2 files changed, 29 insertions, 2 deletions
diff --git a/lib/python/Components/ServiceList.py b/lib/python/Components/ServiceList.py index efe928dd..76e1c822 100644 --- a/lib/python/Components/ServiceList.py +++ b/lib/python/Components/ServiceList.py @@ -52,6 +52,12 @@ class ServiceList(HTMLComponent, GUIComponent): self.l.setRoot(root) self.l.sort() + def cursorGet(self): + return self.l.cursorGet() + + def cursorSet(self, val): + self.l.cursorSet(val) + # stuff for multiple marks (edit mode / later multiepg) def clearMarks(self): self.l.initMarked() diff --git a/lib/python/Screens/ChannelSelection.py b/lib/python/Screens/ChannelSelection.py index 14bc4dce..496131bd 100644 --- a/lib/python/Screens/ChannelSelection.py +++ b/lib/python/Screens/ChannelSelection.py @@ -29,16 +29,23 @@ class ChannelContextMenu(FixedMenu): else: menu.append(("edit bouquet...", self.bouquetMarkStart)) + if not csel.bouquet_mark_edit and not csel.movemode: + menu.append(("remove service", self.removeCurrentService)) + 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) @@ -80,6 +87,8 @@ class ChannelSelection(Screen): 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"], @@ -112,6 +121,16 @@ class ChannelSelection(Screen): 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) + pos = l.cursorGet() + self.mutableList.flushChanges() #FIXME dont flush on each single removed service + self.setRoot(l.getRoot()) +# l.cursorSet(pos) #whats going wrong here???? + def endMarkedEdit(self, abort): l = self["list"] if not abort and self.mutableList is not None: @@ -127,7 +146,8 @@ class ChannelSelection(Screen): changed = True self.mutableList.addService(eServiceReference(x)) if changed: - l.setRoot(self.bouquetRoot) + self.mutableList.flushChanges() + self.setRoot(self.bouquetRoot) self.__marked = [] self.clearMarks() self.bouquet_mark_edit = False @@ -189,5 +209,6 @@ class ChannelSelection(Screen): def toggleMoveMode(self): if self.movemode: self.movemode = False + self.mutableList.flushChanges() # FIXME add check if changes was made else: self.movemode = True |
