aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xRecordTimer.py5
-rw-r--r--ServiceReference.py6
-rwxr-xr-xlib/python/Components/config.py2
-rw-r--r--lib/python/Screens/TimerEntry.py22
4 files changed, 30 insertions, 5 deletions
diff --git a/RecordTimer.py b/RecordTimer.py
index 1608caaf..def75684 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 11e28786..5d11ae77 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 471b59ec..1afd398e 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 64fa9f19..62faf9bf 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"