aboutsummaryrefslogtreecommitdiff
path: root/RecordTimer.py
diff options
context:
space:
mode:
Diffstat (limited to 'RecordTimer.py')
-rw-r--r--RecordTimer.py31
1 files changed, 30 insertions, 1 deletions
diff --git a/RecordTimer.py b/RecordTimer.py
index a6c19c05..cdd37eb5 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: