added counting timer to CmdWindow for current task

This commit is contained in:
Josh Holtrop 2011-01-03 12:50:46 -05:00
parent 1acaefb193
commit 6c2b6df94c

View File

@ -1,8 +1,12 @@
import gtk
import gobject
from datetime import datetime
class CmdWindow:
def __init__(self, status = '', starttime = None):
self.starttime = starttime
self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
self.window.set_geometry_hints(min_width = 350);
self.window.connect("delete_event", self.delete_event)
@ -18,8 +22,9 @@ class CmdWindow:
lbl = gtk.Label(status)
hbox.pack_start(lbl, expand = False)
if starttime is not None:
lbl = gtk.Label('Start: ' + starttime.strftime('%I:%M%p'))
hbox.pack_end(lbl, expand = False)
self.elapsedlabel = gtk.Label(self.getElapsed())
gobject.timeout_add(1000, self.updateElapsed)
hbox.pack_end(self.elapsedlabel, expand = False)
vbox.pack_start(hbox)
hbox = gtk.HBox()
@ -44,3 +49,22 @@ class CmdWindow:
def activate_event(self, widget, data=None):
self.text = self.entry.get_text()
self.window.destroy()
def getElapsed(self):
delta = datetime.now() - self.starttime
days = delta.days
dsecs = delta.seconds
hours = dsecs / (60 * 60)
dsecs -= hours * 60 * 60
minutes = dsecs / 60
dsecs -= minutes * 60
seconds = dsecs
elapsed = ''
if days > 0:
elapsed = '%dd ' % days
elapsed += '%d:%02d:%02d' % (hours, minutes, seconds)
return elapsed
def updateElapsed(self):
self.elapsedlabel.set_text(self.getElapsed())
return True