diff options
| author | Andreas Monzner <andreas.monzner@multimedia-labs.de> | 2006-01-08 14:55:16 +0000 |
|---|---|---|
| committer | Andreas Monzner <andreas.monzner@multimedia-labs.de> | 2006-01-08 14:55:16 +0000 |
| commit | 4cdeb9ebe328382bb4ef6a01b67ff840adcc84ad (patch) | |
| tree | f7ee69a1e042d2d766309b0a7fb2ea3d96df1c7c /lib/python | |
| parent | e441555fa867c277985766fcf84af8fdde72d52d (diff) | |
| download | enigma2-4cdeb9ebe328382bb4ef6a01b67ff840adcc84ad.tar.gz enigma2-4cdeb9ebe328382bb4ef6a01b67ff840adcc84ad.zip | |
add subservice selection to timer (when linkage services are avail for the selected event)
better layout in timerlist (more space for service name and event description)
Diffstat (limited to 'lib/python')
| -rw-r--r-- | lib/python/Components/TimerList.py | 14 | ||||
| -rw-r--r-- | lib/python/Screens/SubserviceSelection.py | 21 | ||||
| -rw-r--r-- | lib/python/Screens/TimerEntry.py | 17 |
3 files changed, 37 insertions, 15 deletions
diff --git a/lib/python/Components/TimerList.py b/lib/python/Components/TimerList.py index e48b7a0d..47c49d3f 100644 --- a/lib/python/Components/TimerList.py +++ b/lib/python/Components/TimerList.py @@ -26,7 +26,9 @@ RT_WRAP = 32 def TimerEntryComponent(timer, processed): res = [ timer ] - res.append((eListboxPythonMultiContent.TYPE_TEXT, 0, 0, 220, 30, 0, RT_HALIGN_LEFT, timer.service_ref.getServiceName())) + res.append((eListboxPythonMultiContent.TYPE_TEXT, 0, 0, 560, 30, 0, RT_HALIGN_LEFT|RT_VALIGN_CENTER, timer.service_ref.getServiceName())) + res.append((eListboxPythonMultiContent.TYPE_TEXT, 0, 30, 560, 20, 1, RT_HALIGN_LEFT|RT_VALIGN_CENTER, timer.name)) + repeatedtext = "" days = [ "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun" ] if (timer.repeated != 0): @@ -39,12 +41,10 @@ def TimerEntryComponent(timer, processed): repeatedtext += days[x] count += 1 flags = flags >> 1 - res.append((eListboxPythonMultiContent.TYPE_TEXT, 0, 30, 300, 20, 1, RT_HALIGN_LEFT, repeatedtext + (" %s ... %s" % (FuzzyTime(timer.begin)[1], FuzzyTime(timer.end)[1])))) + res.append((eListboxPythonMultiContent.TYPE_TEXT, 0, 50, 300, 20, 1, RT_HALIGN_LEFT|RT_VALIGN_CENTER, repeatedtext + (" %s ... %s" % (FuzzyTime(timer.begin)[1], FuzzyTime(timer.end)[1])))) else: - res.append((eListboxPythonMultiContent.TYPE_TEXT, 0, 30, 300, 20, 1, RT_HALIGN_LEFT, repeatedtext + ("%s, %s ... %s" % (FuzzyTime(timer.begin) + FuzzyTime(timer.end)[1:])))) + res.append((eListboxPythonMultiContent.TYPE_TEXT, 0, 50, 300, 20, 1, RT_HALIGN_LEFT|RT_VALIGN_CENTER, repeatedtext + ("%s, %s ... %s" % (FuzzyTime(timer.begin) + FuzzyTime(timer.end)[1:])))) - res.append((eListboxPythonMultiContent.TYPE_TEXT, 240, 0, 320, 20, 1, RT_HALIGN_RIGHT, timer.name)) - if not processed: if timer.state == TimerEntry.StateWait: state = "waiting" @@ -57,7 +57,7 @@ def TimerEntryComponent(timer, processed): else: state = "done!" - res.append((eListboxPythonMultiContent.TYPE_TEXT, 320, 30, 240, 20, 1, RT_HALIGN_RIGHT, state)) + res.append((eListboxPythonMultiContent.TYPE_TEXT, 320, 50, 240, 20, 1, RT_HALIGN_RIGHT|RT_VALIGN_CENTER, state)) return res @@ -75,7 +75,7 @@ class TimerList(HTMLComponent, GUIComponent): def GUIcreate(self, parent): self.instance = eListbox(parent) self.instance.setContent(self.l) - self.instance.setItemHeight(50) + self.instance.setItemHeight(70) def GUIdelete(self): self.instance.setContent(None) diff --git a/lib/python/Screens/SubserviceSelection.py b/lib/python/Screens/SubserviceSelection.py index a73cf0e4..0aa34b61 100644 --- a/lib/python/Screens/SubserviceSelection.py +++ b/lib/python/Screens/SubserviceSelection.py @@ -2,7 +2,7 @@ from Screen import Screen from Components.ActionMap import ActionMap from Components.MenuList import MenuList from Components.Label import Label -from enigma import eServiceReferencePtr, eServiceReference +from enigma import eServiceReferencePtr, eServiceReference, iSubserviceListPtr, eServiceEventPtrPtr class SubserviceSelection(Screen): def KeyOk(self): @@ -10,7 +10,7 @@ class SubserviceSelection(Screen): self.close(selection[1]) def Cancel(self): self.close(None) - def __init__(self, session, subservices): + def __init__(self, session, subservices, parent=None): Screen.__init__(self, session) self["actions"] = ActionMap(["OkCancelActions"], @@ -21,10 +21,19 @@ class SubserviceSelection(Screen): self.subservices = subservices + print subservices tlist = [] - n = subservices.getNumberOfSubservices() - for x in range(n): - i = subservices.getSubservice(x) - tlist.append((i.getName(), i)) + if isinstance(subservices, iSubserviceListPtr): + n = subservices.getNumberOfSubservices() + for x in range(n): + i = subservices.getSubservice(x) + tlist.append((i.getName(), i)) + elif isinstance(subservices, eServiceEventPtrPtr): + n = subservices.getNumOfLinkageServices() + for x in range(n): + i = subservices.getLinkageService(parent, x) + tlist.append((i.getName(), i)) + else: + print "unknown type of subservices" self["subservices"] = MenuList(tlist) diff --git a/lib/python/Screens/TimerEntry.py b/lib/python/Screens/TimerEntry.py index ea18d892..703e4aba 100644 --- a/lib/python/Screens/TimerEntry.py +++ b/lib/python/Screens/TimerEntry.py @@ -7,6 +7,8 @@ from Components.ConfigList import ConfigList from Components.NimManager import nimmanager from Components.Label import Label from Components.Pixmap import Pixmap +from Screens.SubserviceSelection import SubserviceSelection +from enigma import eEPGCache import time import datetime @@ -256,8 +258,19 @@ class TimerEntry(Screen): if (config.timerentry.day[x].value == 0): self.timer.setRepeated(x) self.timer.begin = self.getTimestamp(time.time(), config.timerentry.starttime.value) - self.timer.end = self.getTimestamp(time.time(), config.timerentry.endtime.value) - + self.timer.end = self.getTimestamp(time.time(), config.timerentry.endtime.value) + + if self.timer.eit is not None: + event = eEPGCache.getInstance().lookupEventId(self.timer.service_ref.ref, self.timer.eit) + if event is not None: + if event.getNumOfLinkageServices() > 0: + self.session.openWithCallback(self.subserviceSelected, SubserviceSelection, event, self.timer.service_ref.ref) + return + self.close((True, self.timer)) + + def subserviceSelected(self, service): + if not service is None: + self.timer.service_ref = ServiceReference(service) self.close((True, self.timer)) def keyCancel(self): |
