update status on startup, In/Out handling
This commit is contained in:
parent
e125972edd
commit
3b48bce57b
23
Window.py
23
Window.py
@ -28,8 +28,6 @@ class Window:
|
||||
self.window.connect("destroy", self.destroy_event)
|
||||
self.window.connect("key-press-event", self.window_key_press_event)
|
||||
|
||||
gobject.timeout_add(1000, self.update_status_event)
|
||||
|
||||
# Menu Bar
|
||||
self.menubar = gtk.MenuBar()
|
||||
m = gtk.Menu()
|
||||
@ -57,12 +55,14 @@ class Window:
|
||||
self.updateProjects()
|
||||
|
||||
# Bottom Control Bar
|
||||
self.status_label = gtk.Label('No mark set')
|
||||
self.status_label = gtk.Label()
|
||||
self.status_label.set_alignment(0.0, 0.5)
|
||||
self.status_label.set_padding(5, 0)
|
||||
adjust_button = gtk.Button('Adjust')
|
||||
in_button = gtk.Button('In')
|
||||
in_button.connect("clicked", self.in_event)
|
||||
out_button = gtk.Button('Out')
|
||||
out_button.connect("clicked", self.out_event)
|
||||
exit_button = gtk.Button('Exit')
|
||||
exit_button.connect("clicked", self.destroy_event)
|
||||
|
||||
@ -79,6 +79,9 @@ class Window:
|
||||
vbox.pack_end(hbox, expand = False)
|
||||
vbox.pack_end(gtk.HSeparator(), expand = False)
|
||||
|
||||
self.update_status_event()
|
||||
gobject.timeout_add(1000, self.update_status_event)
|
||||
|
||||
self.window.add(vbox)
|
||||
|
||||
def updateProjects(self):
|
||||
@ -376,6 +379,10 @@ class Window:
|
||||
def destroy_event(self, widget, data=None):
|
||||
# could be called by window or exit button
|
||||
# save any config changes
|
||||
if self.mark is not None:
|
||||
self.config.set('mark', self.mark.strftime(DT_FORMAT))
|
||||
else:
|
||||
self.config.clear('mark')
|
||||
self.config.write()
|
||||
gtk.main_quit()
|
||||
|
||||
@ -393,6 +400,16 @@ class Window:
|
||||
hours = td.seconds / 60 / 60
|
||||
mins = (td.seconds - hours * 60 * 60) / 60
|
||||
secs = (td.seconds - hours * 60 * 60 - mins * 60)
|
||||
# TODO: smarter / shorter status text
|
||||
self.status_label.set_text('Mark: %s; Elapsed: %dd %dh %dm %ds' % \
|
||||
(self.mark.strftime(DT_FORMAT), days, hours, mins, secs))
|
||||
else:
|
||||
self.status_label.set_text('No mark set')
|
||||
return True
|
||||
|
||||
def in_event(self, widget, data=None):
|
||||
if self.mark is None:
|
||||
self.mark = datetime.now()
|
||||
|
||||
def out_event(self, widget, data=None):
|
||||
self.mark = None
|
||||
|
Loading…
x
Reference in New Issue
Block a user