update timerlist when timerstate changes
authorFelix Domke <tmbinc@elitedvb.net>
Sun, 15 Jan 2006 21:38:30 +0000 (21:38 +0000)
committerFelix Domke <tmbinc@elitedvb.net>
Sun, 15 Jan 2006 21:38:30 +0000 (21:38 +0000)
lib/python/Screens/TimerEdit.py
timer.py

index 6df05c6..ff2a017 100644 (file)
@@ -33,6 +33,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[:]
@@ -50,6 +51,9 @@ class TimerEditList(Screen):
        def removeTimer(self):
                # FIXME doesn't work...
                self.session.nav.RecordTimer.removeEntry(self["timerlist"].getCurrent()[0])
+               self.refill()
+       
+       def refill(self):
                self.fillTimerList()
                self["timerlist"].invalidate()
        
@@ -94,4 +98,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()
index 7123a84..9fa0ab2 100644 (file)
--- a/timer.py
+++ b/timer.py
@@ -53,6 +53,9 @@ class TimerEntry:
                                print time.strftime("%c", time.localtime(self.end))
                                self.begin += 86400
                                self.end += 86400
+                       
+                       self.timeChanged()
+                       
 
        def __lt__(self, o):
                return self.getNextActivation() < o.getNextActivation()
@@ -102,9 +105,11 @@ class Timer:
                self.lastActivation = time.time()
                
                self.calcNextActivation()
+               self.on_state_change = [ ]
        
        def stateChanged(self, entry):
-               pass
+               for f in self.on_state_change:
+                       f(entry)
        
        def addTimerEntry(self, entry, noRecalc=0):
                entry.processRepeated()