add videowizard
[enigma2.git] / lib / python / Screens / TimerEdit.py
index 6240c676888e854a3d6c1eb2e8ddb0df4f7561c3..5a7109f2784346f35ac6c8fc72590f6ae6e7fbc3 100644 (file)
@@ -1,7 +1,7 @@
 from Components.ActionMap import ActionMap
 from Components.Button import Button
 from Components.MenuList import MenuList
 from Components.ActionMap import ActionMap
 from Components.Button import Button
 from Components.MenuList import MenuList
-from Components.TimerList import TimerList, TimerEntryComponent
+from Components.TimerList import TimerList
 from Components.TimerSanityCheck import TimerSanityCheck
 from RecordTimer import RecordTimerEntry, parseEvent, AFTEREVENT
 from Screen import Screen
 from Components.TimerSanityCheck import TimerSanityCheck
 from RecordTimer import RecordTimerEntry, parseEvent, AFTEREVENT
 from Screen import Screen
@@ -63,7 +63,7 @@ class TimerEditList(Screen):
        def toggleDisabledState(self):
                cur=self["timerlist"].getCurrent()
                if cur:
        def toggleDisabledState(self):
                cur=self["timerlist"].getCurrent()
                if cur:
-                       t = cur[0]
+                       t = cur
                
                        if t.disabled:
                                t.enable()
                
                        if t.disabled:
                                t.enable()
@@ -97,7 +97,7 @@ class TimerEditList(Screen):
                
        def updateState(self):
                if len(self.list) > 0:
                
        def updateState(self):
                if len(self.list) > 0:
-                       if self["timerlist"].getCurrent()[0].disabled:
+                       if self["timerlist"].getCurrent().disabled:
                                self["key_yellow"].setText(_("Enable"))
                        else:
                                self["key_yellow"].setText(_("Disable"))
                                self["key_yellow"].setText(_("Enable"))
                        else:
                                self["key_yellow"].setText(_("Disable"))
@@ -107,21 +107,21 @@ class TimerEditList(Screen):
                del self.list[:]
                
                for timer in self.session.nav.RecordTimer.timer_list:
                del self.list[:]
                
                for timer in self.session.nav.RecordTimer.timer_list:
-                       self.list.append(TimerEntryComponent(timer, processed=False))
+                       self.list.append((timer, False))
                
                for timer in self.session.nav.RecordTimer.processed_timers:
                
                for timer in self.session.nav.RecordTimer.processed_timers:
-                       self.list.append(TimerEntryComponent(timer, processed=True))
+                       self.list.append((timer, True))
                self.list.sort(cmp = lambda x, y: x[0].begin < y[0].begin)
 
        def showLog(self):
                cur=self["timerlist"].getCurrent()
                if cur:
                self.list.sort(cmp = lambda x, y: x[0].begin < y[0].begin)
 
        def showLog(self):
                cur=self["timerlist"].getCurrent()
                if cur:
-                       self.session.openWithCallback(self.finishedEdit, TimerLog, cur[0])
+                       self.session.openWithCallback(self.finishedEdit, TimerLog, cur)
 
        def openEdit(self):
                cur=self["timerlist"].getCurrent()
                if cur:
 
        def openEdit(self):
                cur=self["timerlist"].getCurrent()
                if cur:
-                       self.session.openWithCallback(self.finishedEdit, TimerEntry, cur[0])
+                       self.session.openWithCallback(self.finishedEdit, TimerEntry, cur)
 
        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?"))
@@ -130,24 +130,33 @@ class TimerEditList(Screen):
                if delete:
                        self.session.nav.RecordTimer.cleanup()
                        self.refill()
                if delete:
                        self.session.nav.RecordTimer.cleanup()
                        self.refill()
-       
+
        def removeTimerQuestion(self):
        def removeTimerQuestion(self):
+               if not self["timerlist"].getCurrent():
+                       return
                self.session.openWithCallback(self.removeTimer, MessageBox, _("Really delete this timer?"))
                self.session.openWithCallback(self.removeTimer, MessageBox, _("Really delete this timer?"))
-               
+
        def removeTimer(self, result):
                if not result:
                        return
                list = self["timerlist"]
                cur = list.getCurrent()
                if cur:
        def removeTimer(self, result):
                if not result:
                        return
                list = self["timerlist"]
                cur = list.getCurrent()
                if cur:
-                       timer = cur[0]
+                       timer = cur
                        timer.afterEvent = AFTEREVENT.NONE
                        self.session.nav.RecordTimer.removeEntry(timer)
                        self.refill()
        
        def refill(self):
                        timer.afterEvent = AFTEREVENT.NONE
                        self.session.nav.RecordTimer.removeEntry(timer)
                        self.refill()
        
        def refill(self):
+               oldsize = len(self.list)
                self.fillTimerList()
                self.fillTimerList()
-               self["timerlist"].invalidate()
+               lst = self["timerlist"]
+               newsize = len(self.list)
+               if oldsize and oldsize != newsize:
+                       idx = lst.getCurrentIndex()
+                       lst.entryRemoved(idx)
+               else:
+                       lst.invalidate()
        
        def addCurrentTimer(self):
                event = None
        
        def addCurrentTimer(self):
                event = None
@@ -209,7 +218,7 @@ class TimerEditList(Screen):
 
        def onStateChange(self, entry):
                self.refill()
 
        def onStateChange(self, entry):
                self.refill()
-               
+
 class TimerSanityConflict(Screen):
        def __init__(self, session, timer):
                Screen.__init__(self, session)
 class TimerSanityConflict(Screen):
        def __init__(self, session, timer):
                Screen.__init__(self, session)
@@ -252,10 +261,10 @@ class TimerSanityConflict(Screen):
                        }, -1)
 
        def getTimerList(self, timer):
                        }, -1)
 
        def getTimerList(self, timer):
-               return [TimerEntryComponent(timer, processed=False)]
+               return [(timer, False)]
 
        def editTimer1(self):
 
        def editTimer1(self):
-               self.session.openWithCallback(self.finishedEdit, TimerEntry, self["timer1"].getCurrent()[0])
+               self.session.openWithCallback(self.finishedEdit, TimerEntry, self["timer1"].getCurrent())
 
        def disableTimer1(self):
                self.timer[0].disabled = True
 
        def disableTimer1(self):
                self.timer[0].disabled = True
@@ -266,10 +275,8 @@ class TimerSanityConflict(Screen):
 
        def up(self):
                self["list"].instance.moveSelection(self["list"].instance.moveUp)
 
        def up(self):
                self["list"].instance.moveSelection(self["list"].instance.moveUp)
-               self["timer2"].l.setList(self.getTimerList(self["list"].getCurrent()[1]))
+               self["timer2"].l.setList(self.getTimerList(self["list"].getCurrent()))
                
        def down(self):
                self["list"].instance.moveSelection(self["list"].instance.moveDown)
                
        def down(self):
                self["list"].instance.moveSelection(self["list"].instance.moveDown)
-               self["timer2"].l.setList(self.getTimerList(self["list"].getCurrent()[1]))
-                       
-               
\ No newline at end of file
+               self["timer2"].l.setList(self.getTimerList(self["list"].getCurrent()))