aboutsummaryrefslogtreecommitdiff
path: root/lib/python/Screens/ChannelSelection.py
diff options
context:
space:
mode:
authorFelix Domke <tmbinc@elitedvb.net>2005-07-22 21:50:17 +0000
committerFelix Domke <tmbinc@elitedvb.net>2005-07-22 21:50:17 +0000
commit1f3de605b9be5751d14c39f785adc5d4af2fced7 (patch)
tree47472e85d1a03f1ee0729da28930e3a0c80a6632 /lib/python/Screens/ChannelSelection.py
parent02f8f9a6d959adf568c0ea16a2d3f4e09bcc2ba8 (diff)
downloadenigma2-1f3de605b9be5751d14c39f785adc5d4af2fced7.tar.gz
enigma2-1f3de605b9be5751d14c39f785adc5d4af2fced7.zip
- add mark in channellist
Diffstat (limited to 'lib/python/Screens/ChannelSelection.py')
-rw-r--r--lib/python/Screens/ChannelSelection.py89
1 files changed, 85 insertions, 4 deletions
diff --git a/lib/python/Screens/ChannelSelection.py b/lib/python/Screens/ChannelSelection.py
index 289d2e5b..465d3de3 100644
--- a/lib/python/Screens/ChannelSelection.py
+++ b/lib/python/Screens/ChannelSelection.py
@@ -5,17 +5,63 @@ from Components.ActionMap import ActionMap
from enigma import eServiceReference
+from Screens.Menu import FixedMenu
+
+import xml.dom.minidom
+
+class ChannelContextMenu(FixedMenu):
+ def __init__(self, session, csel):
+ self.csel = csel
+
+ menu = [("back", self.close)]
+
+ if csel.movemode:
+ menu.append(("disable move mode", self.moveMode))
+ else:
+ menu.append(("enable move mode", self.moveMode))
+
+ if csel.bouquet_mark_edit:
+ menu.append(("end bouquet edit", self.bouquetMarkEnd))
+ menu.append(("abort bouquet edit", self.bouquetMarkAbort))
+ else:
+ menu.append(("edit bouquet...", self.bouquetMarkStart))
+
+ FixedMenu.__init__(self, session, "Channel Selection", menu)
+ self.skinName = "Menu"
+
+ def moveMode(self):
+ self.csel.setMoveMode(self.csel.movemode)
+ self.close()
+
+ def bouquetMarkStart(self):
+ self.csel.startMarkedEdit()
+ self.close()
+
+ def bouquetMarkEnd(self):
+ self.csel.endMarkedEdit(abort=False)
+ self.close()
+
+ def bouquetMarkAbort(self):
+ self.csel.endMarkedEdit(abort=True)
+ self.close()
+
class ChannelSelection(Screen):
def __init__(self, session):
Screen.__init__(self, session)
-
+
+ self.movemode = False
+ self.bouquet_mark_edit = False
+
+ ## FIXME
+ self.__marked = [ ]
+
self["key_red"] = Button("red")
self["key_green"] = Button("green")
self["key_yellow"] = Button("yellow")
self["key_blue"] = Button("blue")
self["list"] = ServiceList()
- self["list"].setRoot(eServiceReference("""1:0:1:0:0:0:0:0:0:0:(provider=="ARD") && (type == 1)"""))
+ self["list"].setRoot(eServiceReference("""1:0:1:0:0:0:0:0:0:0:(type == 1)"""))
#self["okbutton"] = Button("ok", [self.channelSelected])
@@ -31,17 +77,46 @@ class ChannelSelection(Screen):
{
"cancel": self.close,
"ok": self.channelSelected,
- "mark": self.doMark
+ "mark": self.doMark,
+ "contextMenu": self.doContext
})
self["actions"].csel = self
+ # marked edit mode
+
+ def startMarkedEdit(self):
+ self.bouquet_mark_edit = True
+ self.clearMarks()
+
+ # TODO
+ marked = self.__marked
+
+ l = self["list"]
+ for x in marked:
+ print "mark: " + str(x)
+ l.addMarked(x)
+
+ def endMarkedEdit(self, abort):
+ self.bouquet_mark_edit = True
+ new_marked = self["list"].getMarked()
+ self.__marked = new_marked
+ self.clearMarks()
+ self.bouquet_mark_edit = False
+
+ def clearMarks(self):
+ self["list"].clearMarks()
+
def doMark(self):
+ if not self.bouquet_mark_edit:
+ return
+
ref = self["list"].getCurrent()
if self["list"].isMarked(ref):
self["list"].removeMarked(ref)
else:
self["list"].addMarked(ref)
-
+
+ # ...
def channelSelected(self):
self.session.nav.playService(self["list"].getCurrent())
self.close()
@@ -56,3 +131,9 @@ class ChannelSelection(Screen):
def moveDown(self):
self["list"].moveDown()
+ def doContext(self):
+ self.session.open(ChannelContextMenu, self)
+
+ def setMoveMode(self, mode):
+ self.movemode = mode
+