[hamster-applet] menu and keyboard accelerators
- From: Toms Baugis <tbaugis src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [hamster-applet] menu and keyboard accelerators
- Date: Sat, 23 Jan 2010 01:08:13 +0000 (UTC)
commit 8663dace2fc6c58ae40bd5a7a9c60979d3bc5b83
Author: Toms Bauģis <toms baugis gmail com>
Date: Sat Jan 23 01:08:06 2010 +0000
menu and keyboard accelerators
data/hamster.ui | 54 ++++++++++++++++++++++++++++++++++++++++++++--------
src/standalone.py | 53 ++++++++++++++++++++++++---------------------------
2 files changed, 70 insertions(+), 37 deletions(-)
---
diff --git a/data/hamster.ui b/data/hamster.ui
index 9c74e39..7cd2838 100644
--- a/data/hamster.ui
+++ b/data/hamster.ui
@@ -7,7 +7,6 @@
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="title" translatable="yes">Time Tracker</property>
<property name="icon_name">hamster-applet</property>
- <signal name="key_press_event" handler="on_windows_keys"/>
<signal name="configure_event" handler="on_window_configure_event"/>
<child>
<object class="GtkVBox" id="vbox1">
@@ -15,36 +14,42 @@
<property name="orientation">vertical</property>
<property name="spacing">10</property>
<child>
- <object class="GtkMenuBar" id="menubar1">
+ <object class="GtkMenuBar" id="menu">
<property name="visible">True</property>
<child>
<object class="GtkMenuItem" id="menuitem1">
<property name="visible">True</property>
+ <property name="accel_path"><hamster-applet>/Tracking</property>
<property name="label" translatable="yes">_Tracking</property>
<property name="use_underline">True</property>
<child type="submenu">
<object class="GtkMenu" id="menu1">
<property name="visible">True</property>
+ <property name="accel_group">accelgroup</property>
+ <property name="accel_path"><hamster-applet>/tracking</property>
<child>
<object class="GtkMenuItem" id="menu_add_earlier">
<property name="visible">True</property>
- <property name="accel_path">/hamster/add</property>
+ <property name="accel_path"><hamster-applet>/tracking/add</property>
<property name="label" translatable="yes">Add earlier activity</property>
+ <signal name="activate" handler="on_menu_add_earlier_activate"/>
</object>
</child>
<child>
<object class="GtkMenuItem" id="menu_overview">
<property name="visible">True</property>
- <property name="accel_path">/hamster/overview</property>
+ <property name="accel_path"><hamster-applet>/tracking/overview</property>
<property name="label" translatable="yes">Overview</property>
+ <signal name="activate" handler="on_menu_overview_activate"/>
</object>
</child>
<child>
<object class="GtkMenuItem" id="menu_statistics">
<property name="visible">True</property>
- <property name="accel_path">/hamster/statistics</property>
+ <property name="accel_path"><hamster-applet>/tracking/stats</property>
<property name="label" translatable="yes">Statistics</property>
<property name="use_underline">True</property>
+ <signal name="activate" handler="on_menu_statistics_activate"/>
</object>
</child>
<child>
@@ -56,9 +61,34 @@
<object class="GtkImageMenuItem" id="quit">
<property name="label">gtk-quit</property>
<property name="visible">True</property>
- <property name="accel_path">/hamster/quit</property>
+ <property name="accel_path"><hamster-applet>/tracking/quit</property>
<property name="use_underline">True</property>
<property name="use_stock">True</property>
+ <signal name="activate" handler="close_window"/>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkMenuItem" id="menuitem2">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">_Edit</property>
+ <property name="use_underline">True</property>
+ <child type="submenu">
+ <object class="GtkMenu" id="menu2">
+ <property name="visible">True</property>
+ <property name="accel_group">accelgroup</property>
+ <property name="accel_path"><hamster-applet>/edit</property>
+ <child>
+ <object class="GtkImageMenuItem" id="menu_preferences">
+ <property name="label">gtk-preferences</property>
+ <property name="visible">True</property>
+ <property name="accel_path"><hamster-applet>/edit/prefs</property>
+ <property name="use_underline">True</property>
+ <property name="use_stock">True</property>
+ <signal name="activate" handler="on_menu_preferences_activate"/>
</object>
</child>
</object>
@@ -68,26 +98,31 @@
<child>
<object class="GtkMenuItem" id="menuitem4">
<property name="visible">True</property>
+ <property name="accel_path"><hamster-applet>/help</property>
<property name="label" translatable="yes">_Help</property>
<property name="use_underline">True</property>
<child type="submenu">
<object class="GtkMenu" id="menu3">
<property name="visible">True</property>
+ <property name="accel_group">accelgroup</property>
+ <property name="accel_path"><hamster-applet>/help</property>
<child>
- <object class="GtkMenuItem" id="menu_contents">
+ <object class="GtkMenuItem" id="menu_help_contents">
<property name="visible">True</property>
- <property name="accel_path">/hamster/contents</property>
+ <property name="accel_path"><hamster-applet>/help/contents</property>
<property name="label" translatable="yes">Contents</property>
<property name="use_underline">True</property>
+ <signal name="activate" handler="on_menu_help_contents_activate"/>
</object>
</child>
<child>
<object class="GtkImageMenuItem" id="menu_about">
<property name="label">gtk-about</property>
<property name="visible">True</property>
- <property name="accel_path">/hamster/about</property>
+ <property name="accel_path"><hamster-applet>/help/about</property>
<property name="use_underline">True</property>
<property name="use_stock">True</property>
+ <signal name="activate" handler="on_menu_about_activate"/>
</object>
</child>
</object>
@@ -422,4 +457,5 @@
</object>
</child>
</object>
+ <object class="GtkAccelGroup" id="accelgroup"/>
</interface>
diff --git a/src/standalone.py b/src/standalone.py
index d61d8cb..9d4e0f7 100755
--- a/src/standalone.py
+++ b/src/standalone.py
@@ -138,8 +138,19 @@ class ProjectHamster(object):
else:
self.window.set_position(gtk.WIN_POS_CENTER)
- self.window.show_all()
+ # bindings
+ self.accel_group = self.get_widget("accelgroup")
+ self.window.add_accel_group(self.accel_group)
+
+ gtk.accel_map_add_entry("<hamster-applet>/tracking/add", gtk.keysyms.n, gtk.gdk.CONTROL_MASK)
+ gtk.accel_map_add_entry("<hamster-applet>/tracking/overview", gtk.keysyms.o, gtk.gdk.CONTROL_MASK)
+ gtk.accel_map_add_entry("<hamster-applet>/tracking/stats", gtk.keysyms.i, gtk.gdk.CONTROL_MASK)
+ gtk.accel_map_add_entry("<hamster-applet>/tracking/quit", gtk.keysyms.Escape, 0)
+ gtk.accel_map_add_entry("<hamster-applet>/edit/prefs", gtk.keysyms.p, gtk.gdk.CONTROL_MASK)
+ gtk.accel_map_add_entry("<hamster-applet>/help/contents", gtk.keysyms.F1, 0)
+
+ self.window.show_all()
def init_workspace_tracking(self):
if not wnck: # can't track if we don't have the trackable
@@ -183,11 +194,6 @@ class ProjectHamster(object):
self.notification.update(_("Time Tracker"), message, "hamster-applet")
self.notification.show()
-
- def edit_cb(self, n, action):
- dialogs.edit.show(self.applet, activity_id = self.last_activity['id'])
-
-
def load_day(self):
"""sets up today's tree and fills it with records
returns information about last activity"""
@@ -293,7 +299,7 @@ class ProjectHamster(object):
def _open_edit_activity(self, row, fact):
"""opens activity editor for selected row"""
- dialogs.edit.show(self.applet, fact_id = fact["id"])
+ dialogs.edit.show(self.window, fact_id = fact["id"])
def on_today_row_activated(self, tree, path, column):
fact = tree.get_selected_fact()
@@ -306,34 +312,25 @@ class ProjectHamster(object):
runtime.dispatcher.dispatch('panel_visible', False)
- def on_windows_keys(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)):
- if self.new_name.popup.get_property("visible") == False \
- and self.new_tags.popup.get_property("visible") == False:
- runtime.dispatcher.dispatch('panel_visible', False)
- return True
- return False
-
"""button events"""
- def on_overview(self, menu_item):
- runtime.dispatcher.dispatch('panel_visible', False)
- dialogs.overview.show(self.applet)
+ def on_menu_add_earlier_activate(self, menu):
+ dialogs.edit.show(self.window)
- def show_overview(self, menu_item, verb):
- return self.on_overview(menu_item)
+ def on_menu_overview_activate(self, menu_item):
+ dialogs.overview.show(self.window)
- def on_custom_fact(self, menu_item):
- dialogs.edit.show(self.applet)
+ def on_menu_about_activate(self, component):
+ dialogs.about.show(self.window)
- def on_about (self, component, verb):
- dialogs.about.show()
+ def on_menu_statistics_activate(self, component):
+ dialogs.stats.show(self.window)
- def show_preferences(self, menu_item, verb):
+ def on_menu_preferences_activate(self, menu_item):
runtime.dispatcher.dispatch('panel_visible', False)
- dialogs.prefs.show(self.applet)
+ dialogs.prefs.show(self.window)
+ def on_menu_help_contents_activate(self, *args):
+ gtk.show_uri(gtk.gdk.Screen(), "ghelp:hamster-applet", 0L)
"""signals"""
def after_activity_update(self, widget, renames):
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]