hamster-applet r801 - trunk/hamster
- From: tbaugis svn gnome org
- To: svn-commits-list gnome org
- Subject: hamster-applet r801 - trunk/hamster
- Date: Thu, 26 Feb 2009 09:16:33 +0000 (UTC)
Author: tbaugis
Date: Thu Feb 26 09:16:33 2009
New Revision: 801
URL: http://svn.gnome.org/viewvc/hamster-applet?rev=801&view=rev
Log:
now it is possible to start all the windows from command line.
except for about, because that does not make particular sense
Modified:
trunk/hamster/applet.py
trunk/hamster/edit_activity.py
trunk/hamster/hamster-applet.py
trunk/hamster/preferences.py
trunk/hamster/stats.py
Modified: trunk/hamster/applet.py
==============================================================================
--- trunk/hamster/applet.py (original)
+++ trunk/hamster/applet.py Thu Feb 26 09:16:33 2009
@@ -361,7 +361,7 @@
(model, iter) = selection.get_selected()
fact_id = model[iter][0]
- custom_fact = CustomFactController(None, fact_id)
+ custom_fact = CustomFactController(self, None, fact_id)
custom_fact.show()
return True
@@ -422,7 +422,7 @@
self.notify.msg(msg, self.edit_cb, self.switch_cb)
def edit_cb(self, n, action):
- custom_fact = CustomFactController(None, self.last_activity['id'])
+ custom_fact = CustomFactController(self, None, self.last_activity['id'])
custom_fact.show()
def switch_cb(self, n, action):
@@ -622,14 +622,14 @@
def on_overview(self, menu_item):
dispatcher.dispatch('panel_visible', False)
- stats_viewer = StatsViewer()
+ stats_viewer = StatsViewer(self)
stats_viewer.show()
def show_overview(self, menu_item, verb):
return self.on_overview(menu_item)
def on_custom_fact(self, menu_item):
- custom_fact = CustomFactController()
+ custom_fact = CustomFactController(self)
custom_fact.show()
def on_about (self, component, verb):
@@ -644,7 +644,7 @@
if self.preferences_editor and self.preferences_editor.window:
self.preferences_editor.window.present()
else:
- self.preferences_editor = PreferencesEditor()
+ self.preferences_editor = PreferencesEditor(self)
self.preferences_editor.show()
"""signals"""
Modified: trunk/hamster/edit_activity.py
==============================================================================
--- trunk/hamster/edit_activity.py (original)
+++ trunk/hamster/edit_activity.py Thu Feb 26 09:16:33 2009
@@ -245,11 +245,9 @@
context.stroke()
-
-
-
class CustomFactController:
- def __init__(self, fact_date = None, fact_id = None):
+ def __init__(self, parent = None, fact_date = None, fact_id = None):
+ self.parent = parent
self.glade = gtk.glade.XML(os.path.join(SHARED_DATA_DIR, GLADE_FILE))
self.window = self.get_widget('custom_fact_window')
@@ -280,12 +278,6 @@
self.get_widget("save_button").set_label("gtk-save")
self.window.set_title(_("Update activity"))
- if not end_date:
- if start_date.date() == dt.date.today():
- end_date = dt.datetime.now()
- else:
- end_date = end_date or start_date + dt.timedelta(minutes = 30)
-
elif fact_date and fact_date != dt.date.today():
# we are asked to add task in some day, but time has not
# been specified - two things we can do
@@ -305,9 +297,13 @@
fact_date.month,
fact_date.day,
8)
- else:
- start_date = dt.datetime.now()
- end_date = start_date + dt.timedelta(minutes = 30)
+
+ start_date = start_date or dt.datetime.now()
+ if not end_date:
+ if start_date.date() == dt.date.today():
+ end_date = dt.datetime.now()
+ else:
+ end_date = end_date or start_date + dt.timedelta(minutes = 30)
self.dayline = Dayline()
self.dayline.on_time_changed = self.update_time
@@ -561,7 +557,7 @@
if not self.fact_id:
dispatcher.dispatch('panel_visible', False)
- self.window.destroy()
+ self.close_window()
def figure_date(self, date_str):
if not date_str:
@@ -785,7 +781,7 @@
def on_cancel_clicked(self, button):
- self.window.destroy()
+ self.close_window()
def on_activity_combo_changed(self, combo):
self.validate_fields()
@@ -820,7 +816,16 @@
if self.calendar_window.get_property("visible") or \
self.time_window.get_property("visible"):
return False
-
- self.window.destroy()
+ self.close_window()
+
+ def on_close(self, widget, event):
+ self.close_window()
+ def close_window(self):
+ if not self.parent:
+ gtk.main_quit()
+ else:
+ self.window.destroy()
+ return False
+
\ No newline at end of file
Modified: trunk/hamster/hamster-applet.py
==============================================================================
--- trunk/hamster/hamster-applet.py (original)
+++ trunk/hamster/hamster-applet.py Thu Feb 26 09:16:33 2009
@@ -74,34 +74,31 @@
gtk.main_quit()
def usage():
- print _(u"""=== Time tracking applet: Usage
+ print _(u"""Time tracker: Usage
$ hamster-applet [OPTIONS]
OPTIONS:
- -w, --window Launch the applet in a standalone window for test purposes (default=no).
- -o, --overview Launch just the overview window
+ -w, --window Launch the applet in a standalone window for test purposes (default=no).
+ -s, --start [stats|edit|prefs] Which window to launch on startup.
+ Use "stats" for overview window, "edit" to add new activity
+ and "prefs" to launch preferences
""")
sys.exit()
if __name__ == "__main__":
standalone = False
- show_overview = False
+ start_window = None
try:
- opts, args = getopt.getopt(sys.argv[1:], "wo", ["window", "overview"])
+ opts, args = getopt.getopt(sys.argv[1:], "ws:", ["window", "start="])
except getopt.GetoptError:
- # Unknown args were passed, we fallback to bahave as if
- # no options were passed
- print "WARNING: Unknown arguments passed, using defaults."
- opts = []
- args = sys.argv[1:]
+ usage()
- for o, a in opts:
- if o in ("-w", "--window"):
+ for opt, args in opts:
+ if opt in ("-w", "--window"):
standalone = True
- elif o in ("-o", "--overview"):
- show_overview = True
-
+ elif opt in ("-s", "--start"):
+ start_window = args
gtk.window_set_default_icon_name("hamster-applet")
@@ -118,10 +115,17 @@
gtk.main()
- elif show_overview:
- from hamster.stats import StatsViewer
- stats_viewer = StatsViewer(True)
- stats_viewer.show()
+ elif start_window:
+ if start_window == "stats":
+ from hamster.stats import StatsViewer
+ stats_viewer = StatsViewer().show()
+ elif start_window == "edit":
+ from hamster.edit_activity import CustomFactController
+ CustomFactController().show()
+ elif start_window == "prefs":
+ from hamster.preferences import PreferencesEditor
+ PreferencesEditor().show()
+
gtk.main()
else:
Modified: trunk/hamster/preferences.py
==============================================================================
--- trunk/hamster/preferences.py (original)
+++ trunk/hamster/preferences.py Thu Feb 26 09:16:33 2009
@@ -89,7 +89,8 @@
]
- def __init__(self):
+ def __init__(self, parent = None):
+ self.parent = parent
self.glade = gtk.glade.XML(os.path.join(SHARED_DATA_DIR, "preferences.glade"))
self.config = GconfStore.get_instance()
self.window = self.get_widget('preferences_window')
@@ -488,7 +489,7 @@
# ctrl+w means close window
if (event.keyval == gtk.keysyms.w \
and event.state & gtk.gdk.CONTROL_MASK):
- self.window.destroy()
+ self.close_window()
# escape can mean several things
if event.keyval == gtk.keysyms.Escape:
@@ -500,7 +501,7 @@
self.categoryCell.set_property("editable", False)
return
- self.window.destroy()
+ self.close_window()
"""button events"""
def on_add_category_clicked(self, button):
@@ -554,7 +555,17 @@
self.activity_changed(self.selection, model)
def on_close_button_clicked(self, button):
- self.window.destroy()
+ self.close_window()
+
+ def on_close(self, widget, event):
+ self.close_window()
+
+ def close_window(self):
+ if not self.parent:
+ gtk.main_quit()
+ else:
+ self.window.destroy()
+ return False
def on_shutdown_track_toggled(self, checkbox):
self.config.set_stop_on_shutdown(checkbox.get_active())
Modified: trunk/hamster/stats.py
==============================================================================
--- trunk/hamster/stats.py (original)
+++ trunk/hamster/stats.py Thu Feb 26 09:16:33 2009
@@ -35,8 +35,8 @@
import time
class StatsViewer(object):
- def __init__(self, main_window = False):
- self.main_window = main_window
+ def __init__(self, parent = None):
+ self.parent = parent# determine if app shut shut down on close
self.glade = gtk.glade.XML(os.path.join(SHARED_DATA_DIR, "stats.glade"))
self.window = self.get_widget('stats_window')
@@ -482,7 +482,7 @@
if model[iter][0] == -1:
return #not a fact
- custom_fact = CustomFactController(None, model[iter][0])
+ custom_fact = CustomFactController(self, None, model[iter][0])
custom_fact.show()
def delete_selected(self):
@@ -524,7 +524,7 @@
def on_facts_row_activated(self, tree, path, column):
selection = tree.get_selection()
(model, iter) = selection.get_selected()
- custom_fact = CustomFactController(None, model[iter][0])
+ custom_fact = CustomFactController(self, None, model[iter][0])
custom_fact.show()
def on_add_clicked(self, button):
@@ -538,7 +538,7 @@
int(selected_date[1]),
int(selected_date[2]))
- custom_fact = CustomFactController(selected_date)
+ custom_fact = CustomFactController(self, selected_date)
custom_fact.show()
def on_report_button_clicked(self, widget):
@@ -556,18 +556,22 @@
def on_close(self, widget, event):
dispatcher.del_handler('activity_updated', self.after_activity_update)
dispatcher.del_handler('day_updated', self.after_fact_update)
-
- if self.main_window:
- gtk.main_quit()
- else:
- return False
+ self.close_window()
def on_window_key_pressed(self, tree, event_key):
if (event_key.keyval == gtk.keysyms.Escape
or (event_key.keyval == gtk.keysyms.w
and event_key.state & gtk.gdk.CONTROL_MASK)):
- self.window.destroy()
+ self.close_window()
+
+ def close_window(self):
+ if not self.parent:
+ gtk.main_quit()
+ else:
+ self.window.destroy()
+ return False
+
def show(self):
self.window.show()
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]