def create_hamster_window(self): if self.window is None: # load window of activity switcher and todays view self._gui = load_ui_file("today.ui") self.window = self._gui.get_object('hamster-window') self.window.connect("delete_event", self.on_delete_window) gtk.window_set_default_icon_name("hamster-time-tracker") self.new_name = widgets.ActivityEntry() self.new_name.connect("value-entered", self.on_switch_activity_clicked) widgets.add_hint(self.new_name, _("Activity")) self.get_widget("new_name_box").add(self.new_name) self.new_name.connect("changed", self.on_activity_text_changed) self.new_tags = widgets.TagsEntry() self.new_tags.connect("tags_selected", self.on_switch_activity_clicked) widgets.add_hint(self.new_tags, _("Tags")) self.get_widget("new_tags_box").add(self.new_tags) self.tag_box = widgets.TagBox(interactive = False) self.get_widget("tag_box").add(self.tag_box) self.treeview = widgets.FactTree() self.treeview.connect("key-press-event", self.on_todays_keys) self.treeview.connect("edit-clicked", self._open_edit_activity) self.treeview.connect("row-activated", self.on_today_row_activated) self.get_widget("today_box").add(self.treeview) # connect the accelerators self.accel_group = self.get_widget("accelgroup") self.window.add_accel_group(self.accel_group) self._gui.connect_signals(self)
def create_hamster_window(self): if self.window is None: # load window of activity switcher and todays view self._gui = load_ui_file("today.ui") self.window = self._gui.get_object('hamster-window') self.window.connect("delete_event", self.on_delete_window) gtk.window_set_default_icon_name("hamster-time-tracker") self.new_name = widgets.ActivityEntry() self.new_name.connect("value-entered", self.on_switch_activity_clicked) widgets.add_hint(self.new_name, _("Activity")) self.get_widget("new_name_box").add(self.new_name) self.new_name.connect("changed", self.on_activity_text_changed) self.new_tags = widgets.TagsEntry() self.new_tags.connect("tags_selected", self.on_switch_activity_clicked) widgets.add_hint(self.new_tags, _("Tags")) self.get_widget("new_tags_box").add(self.new_tags) self.tag_box = widgets.TagBox(interactive=False) self.get_widget("tag_box").add(self.tag_box) self.treeview = widgets.FactTree() self.treeview.connect("key-press-event", self.on_todays_keys) self.treeview.connect("edit-clicked", self._open_edit_activity) self.treeview.connect("row-activated", self.on_today_row_activated) self.get_widget("today_box").add(self.treeview) # connect the accelerators self.accel_group = self.get_widget("accelgroup") self.window.add_accel_group(self.accel_group) self._gui.connect_signals(self) # Signal for Redmine issue combo self.get_widget("issue_combo").connect( "changed", self.on_redmine_issue_combo_change) # Signal for Redmine arbitrary issue id entry self.get_widget("arbitrary_issue_id_entry").connect( "changed", self.on_redmine_arbitrary_issue_id_entry_change) # Redmine combos additional setup cell = gtk.CellRendererText() self.get_widget("issue_combo").pack_start(cell, True) self.get_widget("issue_combo").add_attribute(cell, 'text', 0) cell = gtk.CellRendererText() self.get_widget("time_activity_combo").pack_start(cell, True) self.get_widget("time_activity_combo").add_attribute( cell, 'text', 0)
def create_hamster_window(self): if self.window is None: # load window of activity switcher and todays view self._gui = load_ui_file("today.ui") self.window = self._gui.get_object('hamster-window') self.window.connect("delete_event", self.on_delete_window) gtk.window_set_default_icon_name("hamster-time-tracker") self.new_name = widgets.ActivityEntry() self.new_name.connect("value-entered", self.on_switch_activity_clicked) widgets.add_hint(self.new_name, _("Activity")) self.get_widget("new_name_box").add(self.new_name) self.new_name.connect("changed", self.on_activity_text_changed) self.new_tags = widgets.TagsEntry() self.new_tags.connect("tags_selected", self.on_switch_activity_clicked) widgets.add_hint(self.new_tags, _("Tags")) self.get_widget("new_tags_box").add(self.new_tags) self.tag_box = widgets.TagBox(interactive = False) self.get_widget("tag_box").add(self.tag_box) self.treeview = widgets.FactTree() self.treeview.connect("key-press-event", self.on_todays_keys) self.treeview.connect("edit-clicked", self._open_edit_activity) self.treeview.connect("row-activated", self.on_today_row_activated) self.get_widget("today_box").add(self.treeview) # connect the accelerators self.accel_group = self.get_widget("accelgroup") self.window.add_accel_group(self.accel_group) self._gui.connect_signals(self) # Signal for Redmine issue combo self.get_widget("issue_combo").connect("changed", self.on_redmine_issue_combo_change) # Signal for Redmine arbitrary issue id entry self.get_widget("arbitrary_issue_id_entry").connect("changed", self.on_redmine_arbitrary_issue_id_entry_change) # Redmine combos additional setup cell = gtk.CellRendererText() self.get_widget("issue_combo").pack_start(cell, True) self.get_widget("issue_combo").add_attribute(cell, 'text',0) cell = gtk.CellRendererText() self.get_widget("time_activity_combo").pack_start(cell, True) self.get_widget("time_activity_combo").add_attribute(cell, 'text',0)
def __init__(self, applet): self.applet = applet self.button = PanelButton() self.button.connect('toggled', self.on_toggle) self.applet.add(self.button) self.applet.setup_menu_from_file (runtime.data_dir, "Hamster_Applet.xml", None, [("about", self.on_about), ("overview", self.show_overview), ("preferences", self.show_preferences), ("help", self.on_help_clicked), ]) # load window of activity switcher and todays view self._gui = load_ui_file("applet.ui") self.window = self._gui.get_object('hamster-window') # on close don't destroy the popup, just hide it instead self.window.connect("delete_event", lambda *args: self.__show_toggle(False)) self.window.connect("window-state-event", self.on_window_state_changed) self.new_name = widgets.ActivityEntry() self.new_name.connect("value-entered", self.on_switch_activity_clicked) self.new_name.set_property("secondary-icon-name", "help-contents") self.new_name.connect("icon-press", self.on_more_info_button_clicked) widgets.add_hint(self.new_name, _("Activity")) self.get_widget("new_name_box").add(self.new_name) self.new_name.connect("changed", self.on_activity_text_changed) self.new_tags = widgets.TagsEntry() self.new_tags.connect("tags_selected", self.on_switch_activity_clicked) widgets.add_hint(self.new_tags, _("Tags")) self.get_widget("new_tags_box").add(self.new_tags) self.tag_box = widgets.TagBox(interactive = False) self.get_widget("tag_box").add(self.tag_box) self.treeview = widgets.FactTree() self.treeview.connect("key-press-event", self.on_todays_keys) self.treeview.connect("edit-clicked", self._open_edit_activity) self.treeview.connect("row-activated", self.on_today_row_activated) self.get_widget("today_box").add(self.treeview) # configuration self.workspace_tracking = conf.get("workspace_tracking") conf.connect('conf-changed', self.on_conf_changed) # Load today's data, activities and set label self.last_activity = None self.todays_facts = None runtime.storage.connect('activities-changed', self.after_activity_update) runtime.storage.connect('facts-changed', self.after_fact_update) runtime.storage.connect('toggle-called', self.on_toggle_called) self.screen = None if self.workspace_tracking: self.init_workspace_tracking() self._gui.connect_signals(self) self.prev_size = None self.load_day() gobject.timeout_add_seconds(60, self.refresh_hamster) # refresh hamster every 60 seconds to update duration self.refresh_hamster()