add some checks, use SkinError exception instead of string
[enigma2.git] / lib / python / Screens / TimerEdit.py
index 018e28dc09d6815acc7bc4408e38b9098714e236..4a4185c31758e1b28172520a692739efcb0b3664 100644 (file)
@@ -3,12 +3,11 @@ from Components.TimerList import TimerList, TimerEntryComponent
 from Components.ConfigList import ConfigList
 from Components.MenuList import MenuList
 from Components.ActionMap import ActionMap
 from Components.ConfigList import ConfigList
 from Components.MenuList import MenuList
 from Components.ActionMap import ActionMap
-from Components.TimeInput import TimeInput
 from Components.Label import Label
 from Components.Button import Button
 from Screens.MessageBox import MessageBox
 from TimerEntry import TimerEntry, TimerLog
 from Components.Label import Label
 from Components.Button import Button
 from Screens.MessageBox import MessageBox
 from TimerEntry import TimerEntry, TimerLog
-from RecordTimer import RecordTimerEntry, parseEvent
+from RecordTimer import RecordTimerEntry, parseEvent, AFTEREVENT
 from time import *
 from ServiceReference import ServiceReference
 from Components.config import *
 from time import *
 from ServiceReference import ServiceReference
 from Components.config import *
@@ -63,10 +62,18 @@ class TimerEditList(Screen):
                self.updateState()
                
        def toggleDisabledState(self):
                self.updateState()
                
        def toggleDisabledState(self):
-               self["timerlist"].getCurrent()[0].disabled = not self["timerlist"].getCurrent()[0].disabled
-               self.session.nav.RecordTimer.timeChanged(self["timerlist"].getCurrent()[0])
-               self.updateState()
-               self.refill()
+               cur=self["timerlist"].getCurrent()
+               if cur:
+                       t = cur[0]
+               
+                       if t.disabled:
+                               t.enable()
+                       else:
+                               t.disable()
+
+                       self.session.nav.RecordTimer.timeChanged(t)
+                       self.updateState()
+                       self.refill()
                
        def updateState(self):
                if len(self.list) > 0:
                
        def updateState(self):
                if len(self.list) > 0:
@@ -87,12 +94,15 @@ class TimerEditList(Screen):
                self.list.sort(cmp = lambda x, y: x[0].begin < y[0].begin)
 
        def showLog(self):
                self.list.sort(cmp = lambda x, y: x[0].begin < y[0].begin)
 
        def showLog(self):
-               self.session.openWithCallback(self.finishedEdit, TimerLog, self["timerlist"].getCurrent()[0])
+               cur=self["timerlist"].getCurrent()
+               if cur:
+                       self.session.openWithCallback(self.finishedEdit, TimerLog, cur[0])
 
        def openEdit(self):
 
        def openEdit(self):
-               self.session.openWithCallback(self.finishedEdit, TimerEntry, self["timerlist"].getCurrent()[0])
-               #self.session.open(TimerEdit, self["timerlist"].getCurrent()[0])
-               
+               cur=self["timerlist"].getCurrent()
+               if cur:
+                       self.session.openWithCallback(self.finishedEdit, TimerEntry, cur[0])
+
        def cleanupQuestion(self):
                self.session.openWithCallback(self.cleanupTimer, MessageBox, _("Really delete done timers?"))
        
        def cleanupQuestion(self):
                self.session.openWithCallback(self.cleanupTimer, MessageBox, _("Really delete done timers?"))
        
@@ -103,9 +113,12 @@ class TimerEditList(Screen):
                
        def removeTimer(self):
                list = self["timerlist"]
                
        def removeTimer(self):
                list = self["timerlist"]
-               timer = list.getCurrent()[0]
-               self.session.nav.RecordTimer.removeEntry(timer)
-               self.refill()
+               cur = list.getCurrent()
+               if cur:
+                       timer = cur[0]
+                       timer.afterEvent = AFTEREVENT.NONE
+                       self.session.nav.RecordTimer.removeEntry(timer)
+                       self.refill()
        
        def refill(self):
                self.fillTimerList()
        
        def refill(self):
                self.fillTimerList()
@@ -127,7 +140,7 @@ class TimerEditList(Screen):
                else:
                        data = parseEvent(event)
 
                else:
                        data = parseEvent(event)
 
-               self.addTimer(RecordTimerEntry(serviceref, *data))
+               self.addTimer(RecordTimerEntry(serviceref, checkOldTimers = True, *data))
                
        def addTimer(self, timer):
                self.session.openWithCallback(self.finishedAdd, TimerEntry, timer)
                
        def addTimer(self, timer):
                self.session.openWithCallback(self.finishedAdd, TimerEntry, timer)