From 8d22c234622439727d1b14c82959300ce5b58ed0 Mon Sep 17 00:00:00 2001 From: ghost Date: Thu, 20 Aug 2009 20:54:44 +0200 Subject: [PATCH] timer.py: revert change needed for recordtimer add own doActivate to recordtimer --- RecordTimer.py | 31 ++++++++++++++++++++++++++++++- timer.py | 4 ++-- 2 files changed, 32 insertions(+), 3 deletions(-) diff --git a/RecordTimer.py b/RecordTimer.py index a6c19c0..cdd37eb 100644 --- a/RecordTimer.py +++ b/RecordTimer.py @@ -440,7 +440,36 @@ class RecordTimer(timer.Timer): self.loadTimer() except IOError: print "unable to load timers from file!" - + + def doActivate(self, w): + # when activating a timer which has already passed, + # simply abort the timer. don't run trough all the stages. + if w.shouldSkip(): + w.state = TimerEntry.StateEnded + else: + # when active returns true, this means "accepted". + # otherwise, the current state is kept. + # the timer entry itself will fix up the delay then. + if w.activate(): + w.state += 1 + + self.timer_list.remove(w) + + # did this timer reached the last state? + if w.state < TimerEntry.StateEnded: + # no, sort it into active list + insort(self.timer_list, w) + else: + # yes. Process repeated, and re-add. + if w.repeated: + w.processRepeated() + w.state = TimerEntry.StateWaiting + self.addTimerEntry(w) + else: + insort(self.processed_timers, w) + + self.stateChanged(w) + def isRecording(self): isRunning = False for timer in self.timer_list: diff --git a/timer.py b/timer.py index 35578ed..aaae0b2 100644 --- a/timer.py +++ b/timer.py @@ -245,6 +245,8 @@ class Timer: self.addTimerEntry(timer) def doActivate(self, w): + self.timer_list.remove(w) + # when activating a timer which has already passed, # simply abort the timer. don't run trough all the stages. if w.shouldSkip(): @@ -256,8 +258,6 @@ class Timer: if w.activate(): w.state += 1 - self.timer_list.remove(w) - # did this timer reached the last state? if w.state < TimerEntry.StateEnded: # no, sort it into active list -- 2.7.4