ask when deleting timers which are not done
[enigma2.git] / lib / python / Screens / TimerEdit.py
index c424417f1232e0c85e791d124c0ba1ab054186d7..681d3a2580687f000788c38da340522ba10edf87 100644 (file)
@@ -1,17 +1,14 @@
 from Screen import Screen
 from Components.TimerList import TimerList, TimerEntryComponent
 from Screen import Screen
 from Components.TimerList import TimerList, TimerEntryComponent
-from Components.ConfigList import ConfigList
 from Components.MenuList import MenuList
 from Components.ActionMap import ActionMap
 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 time import *
 from ServiceReference import ServiceReference
-from Components.config import *
 from Components.TimerSanityCheck import TimerSanityCheck
 
 class TimerEditList(Screen):
 from Components.TimerSanityCheck import TimerSanityCheck
 
 class TimerEditList(Screen):
@@ -33,7 +30,7 @@ class TimerEditList(Screen):
                        {
                                "ok": self.openEdit,
                                "cancel": self.leave,
                        {
                                "ok": self.openEdit,
                                "cancel": self.leave,
-                               "red": self.removeTimer,
+                               "red": self.removeTimerQuestion,
                                "green": self.addCurrentTimer,
                                "blue": self.cleanupQuestion,
                                "yellow": self.toggleDisabledState,
                                "green": self.addCurrentTimer,
                                "blue": self.cleanupQuestion,
                                "yellow": self.toggleDisabledState,
@@ -63,10 +60,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:
@@ -84,14 +89,18 @@ class TimerEditList(Screen):
                
                for timer in self.session.nav.RecordTimer.processed_timers:
                        self.list.append(TimerEntryComponent(timer, processed=True))
                
                for timer in self.session.nav.RecordTimer.processed_timers:
                        self.list.append(TimerEntryComponent(timer, processed=True))
+               self.list.sort(cmp = lambda x, y: x[0].begin < y[0].begin)
 
        def showLog(self):
 
        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?"))
        
@@ -99,17 +108,20 @@ class TimerEditList(Screen):
                if delete:
                        self.session.nav.RecordTimer.cleanup()
                        self.refill()
                if delete:
                        self.session.nav.RecordTimer.cleanup()
                        self.refill()
+       
+       def removeTimerQuestion(self):
+               self.session.openWithCallback(self.removeTimer, MessageBox, _("Really delete this timer?"))
                
                
-       def removeTimer(self):
+       def removeTimer(self, result):
+               if not result:
+                       return
                list = self["timerlist"]
                list = self["timerlist"]
-               timer = list.getCurrent()[0]
-               currentIndex = list.getCurrentIndex()
-               self.session.nav.RecordTimer.removeEntry(timer)
-               list.moveDown()
-               if list.getCurrentIndex() == currentIndex:
-                       currentIndex -= 1
-               self.refill()
-               list.moveToIndex(currentIndex)
+               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()
@@ -131,7 +143,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)
@@ -181,7 +193,7 @@ class TimerSanityConflict(Screen):
        def __init__(self, session, timer):
                Screen.__init__(self, session)
                self.timer = timer
        def __init__(self, session, timer):
                Screen.__init__(self, session)
                self.timer = timer
-               print timer
+               print "TimerSanityConflict", timer
                        
                self["timer1"] = TimerList(self.getTimerList(timer[0]))
                if len(timer) > 1:
                        
                self["timer1"] = TimerList(self.getTimerList(timer[0]))
                if len(timer) > 1: