fix selection when delete latest timer in list
[enigma2.git] / lib / python / Screens / TimerEdit.py
index 6df05c6ff4e4eb3446aaebec648e7a5ce5770679..c0896f4107ff1953fddaba589e37dfed672dd0f7 100644 (file)
@@ -4,7 +4,6 @@ from Components.ActionMap import ActionMap
 from Components.TimeInput import TimeInput
 from Components.Label import Label
 from Components.Button import Button
-from Components.TextInput import TextInput
 from TimerEntry import TimerEntry
 from RecordTimer import RecordTimerEntry, parseEvent
 from time import *
@@ -33,6 +32,7 @@ class TimerEditList(Screen):
                                "red": self.removeTimer,
                                "green": self.addCurrentTimer
                        })
+               self.session.nav.RecordTimer.on_state_change.append(self.onStateChange)
 
        def fillTimerList(self):
                del self.list[:]
@@ -48,8 +48,16 @@ class TimerEditList(Screen):
                #self.session.open(TimerEdit, self["timerlist"].getCurrent()[0])
                
        def removeTimer(self):
-               # FIXME doesn't work...
-               self.session.nav.RecordTimer.removeEntry(self["timerlist"].getCurrent()[0])
+               list = self["timerlist"]
+               currentIndex = list.getCurrentIndex()
+               list.moveDown()
+               if list.getCurrentIndex() == currentIndex:
+                       currentIndex -= 1
+                       list.moveToIndex(currentIndex)
+               self.session.nav.RecordTimer.removeEntry(list.getCurrent()[0])
+               self.refill()
+       
+       def refill(self):
                self.fillTimerList()
                self["timerlist"].invalidate()
        
@@ -94,4 +102,8 @@ class TimerEditList(Screen):
 
        def leave(self):
                self.session.nav.RecordTimer.saveTimer()
+               self.session.nav.RecordTimer.on_state_change.remove(self.onStateChange)
                self.close()
+
+       def onStateChange(self, entry):
+               self.refill()