From: Stefan Pluecken Date: Thu, 22 Jul 2010 17:37:35 +0000 (+0200) Subject: fixes bug #556 X-Git-Url: http://code.vuplus.com/gitweb/?p=vuplus_dvbapp;a=commitdiff_plain;h=ddef990f9a2b56ef9c63dda46d1b84c9438410c5 fixes bug #556 - fixes adding timers from inside the movie player: the .ts service was added as channel - fixes a small bug in ConfigSelection to allow empty strings inside the ChoicesList --- diff --git a/RecordTimer.py b/RecordTimer.py index 1608caa..def7568 100755 --- a/RecordTimer.py +++ b/RecordTimer.py @@ -102,7 +102,10 @@ class RecordTimerEntry(timer.TimerEntry, object): assert isinstance(serviceref, ServiceReference) - self.service_ref = serviceref + if serviceref.getType() == eServiceReference.idDVB and serviceref.getPath() == "": + self.service_ref = serviceref + else: + self.service_ref = ServiceReference(None) self.eit = eit self.dontSave = False self.name = name diff --git a/ServiceReference.py b/ServiceReference.py index 11e2878..5d11ae7 100644 --- a/ServiceReference.py +++ b/ServiceReference.py @@ -20,3 +20,9 @@ class ServiceReference(eServiceReference): def list(self): return self.serviceHandler.list(self.ref) + + def getType(self): + return self.ref.type + + def getPath(self): + return self.ref.getPath() diff --git a/lib/python/Components/config.py b/lib/python/Components/config.py index 471b59e..1afd398 100755 --- a/lib/python/Components/config.py +++ b/lib/python/Components/config.py @@ -178,7 +178,7 @@ class choicesList(object): # XXX: we might want a better name for this def __list__(self): if self.type == choicesList.LIST_TYPE_LIST: - ret = [not isinstance(x, tuple) and x or x[0] for x in self.choices] + ret = [not isinstance(x, tuple) and x or len(x) > 0 and x[0] or len(x) == 0 and x for x in self.choices] else: ret = self.choices.keys() return ret or [""] diff --git a/lib/python/Screens/TimerEntry.py b/lib/python/Screens/TimerEntry.py index 64fa9f1..62faf9b 100644 --- a/lib/python/Screens/TimerEntry.py +++ b/lib/python/Screens/TimerEntry.py @@ -13,8 +13,9 @@ from Components.UsageConfig import defaultMoviePath from Screens.MovieSelection import getPreferredTagEditor from Screens.LocationBox import MovieLocationBox from Screens.ChoiceBox import ChoiceBox +from Screens.MessageBox import MessageBox from RecordTimer import AFTEREVENT -from enigma import eEPGCache +from enigma import eEPGCache, eServiceReference from time import localtime, mktime, time, strftime from datetime import datetime @@ -245,7 +246,7 @@ class TimerEntry(Screen, ConfigListScreen): self.timerentry_service_ref = ServiceReference(args[0]) self.timerentry_service.setCurrentText(self.timerentry_service_ref.getServiceName()) self["config"].invalidate(self.channelEntry) - + def getTimestamp(self, date, mytime): d = localtime(date) dt = datetime(d.tm_year, d.tm_mon, d.tm_mday, mytime[0], mytime[1]) @@ -264,7 +265,22 @@ class TimerEntry(Screen, ConfigListScreen): end += 86400 return begin, end - def keyGo(self): + def selectChannelSelector(self, *args): + self.session.openWithCallback( + self.finishedChannelSelectionCorrection, + ChannelSelection.SimpleChannelSelection, + _("Select channel to record from") + ) + + def finishedChannelSelectionCorrection(self, *args): + if args: + self.finishedChannelSelection(*args) + self.keyGo() + + def keyGo(self, result = None): + if self.timerentry_service_ref.getType() != eServiceReference.idDVB or self.timerentry_service_ref.getPath() != "": + self.session.openWithCallback(self.selectChannelSelector, MessageBox, _("You didn't select a channel to record from."), MessageBox.TYPE_ERROR) + return self.timer.name = self.timerentry_name.value self.timer.description = self.timerentry_description.value self.timer.justplay = self.timerentry_justplay.value == "zap"