fix timer disable/reenable
authorFelix Domke <tmbinc@elitedvb.net>
Sun, 9 Apr 2006 22:16:43 +0000 (22:16 +0000)
committerFelix Domke <tmbinc@elitedvb.net>
Sun, 9 Apr 2006 22:16:43 +0000 (22:16 +0000)
RecordTimer.py
lib/python/Screens/TimerEdit.py
timer.py

index b131e5b..9a874a4 100644 (file)
@@ -370,10 +370,6 @@ class RecordTimer(timer.Timer):
                                                if time_match < diff:
                                                        time_match = diff
                return time_match
-                                                       
-                                               
-                                               
-                       
 
        def removeEntry(self, entry):
                print "[Timer] Remove " + str(entry)
index 2c7afef..bbbf6b5 100644 (file)
@@ -63,8 +63,14 @@ class TimerEditList(Screen):
                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])
+               t = self["timerlist"].getCurrent()[0]
+               
+               if t.disabled:
+                       t.enable()
+               else:
+                       t.disable()
+
+               self.session.nav.RecordTimer.timeChanged(t)
                self.updateState()
                self.refill()
                
index 3caa288..a912f1c 100644 (file)
--- a/timer.py
+++ b/timer.py
@@ -88,6 +88,12 @@ class TimerEntry:
        def getNextActivation():
                pass
 
+       def disable(self):
+               self.disabled = True
+       
+       def enable(self):
+               self.disabled = False
+
 class Timer:
        # the time between "polls". We do this because
        # we want to account for time jumps etc.
@@ -131,6 +137,9 @@ class Timer:
                # right into the processedTimers.
                if entry.shouldSkip() or entry.state == TimerEntry.StateEnded or (entry.state == TimerEntry.StateWaiting and entry.disabled):
                        print "already passed, skipping"
+                       print "shouldSkip:", entry.shouldSkip()
+                       print "state == ended", entry.state == TimerEntry.StateEnded
+                       print "waiting && disabled:", (entry.state == TimerEntry.StateWaiting and entry.disabled)
                        bisect.insort(self.processed_timers, entry)
                        entry.state = TimerEntry.StateEnded
                else:
@@ -169,12 +178,16 @@ class Timer:
                self.setNextActivation(min)
        
        def timeChanged(self, timer):
+               print "time changed"
                timer.timeChanged()
                if timer.state == TimerEntry.StateEnded:
                        self.processed_timers.remove(timer)
                else:
                        self.timer_list.remove(timer)
 
+               # give the timer a chance to re-enqueue
+               if timer.state == TimerEntry.StateEnded:
+                       timer.state = TimerEntry.StateWaiting
                self.addTimerEntry(timer)
        
        def doActivate(self, w):