def __init__(self, parent = None): self.parent = parent# determine if app should shut down on close self._gui = load_ui_file("overview.ui") self.report_chooser = None self.window = self.get_widget("tabs_window") self.window.connect("delete_event", self.on_delete_window) self.range_pick = widgets.RangePick() self.get_widget("range_pick_box").add(self.range_pick) self.range_pick.connect("range-selected", self.on_range_selected) self.overview = OverviewBox() self.get_widget("overview_tab").add(self.overview) self.fact_tree = self.overview.fact_tree # TODO - this is upside down, should maybe get the overview tab over here self.fact_tree.connect("cursor-changed", self.on_fact_selection_changed) self.fact_tree.connect("button-press-event", self.on_fact_tree_button_press) self.reports = TotalsBox() self.get_widget("reports_tab").add(self.reports) self.timechart = widgets.TimeChart() self.timechart.connect("zoom-out-clicked", self.on_timechart_zoom_out_clicked) self.timechart.connect("range-picked", self.on_timechart_new_range) self.get_widget("by_day_box").add(self.timechart) self._gui.connect_signals(self) runtime.storage.connect('activities-changed',self.after_activity_update) runtime.storage.connect('facts-changed',self.after_activity_update) conf.connect('conf-changed', self.on_conf_change) self.show()
def __init__(self, parent = None): self.parent = parent# determine if app should shut down on close self._gui = load_ui_file("overview.ui") self.report_chooser = None self.facts = None self.window = self.get_widget("tabs_window") self.day_start = conf.get("day_start_minutes") self.day_start = dt.time(self.day_start / 60, self.day_start % 60) self.view_date = (dt.datetime.today() - dt.timedelta(hours = self.day_start.hour, minutes = self.day_start.minute)).date() self.range_pick = widgets.RangePick() self.get_widget("range_pick_box").add(self.range_pick) self.range_pick.connect("range-selected", self.on_range_selected) #set to monday self.start_date = self.view_date - dt.timedelta(self.view_date.weekday() + 1) # look if we need to start on sunday or monday self.start_date = self.start_date + dt.timedelta(stuff.locale_first_weekday()) # see if we have not gotten carried away too much in all these calculations if (self.view_date - self.start_date) == dt.timedelta(7): self.start_date += dt.timedelta(7) self.end_date = self.start_date + dt.timedelta(6) self.overview = OverviewBox() self.get_widget("overview_tab").add(self.overview) self.fact_tree = self.overview.fact_tree # TODO - this is upside down, should maybe get the overview tab over here self.fact_tree.connect("cursor-changed", self.on_fact_selection_changed) self.fact_tree.connect("button-press-event", self.on_fact_tree_button_press) self.reports = TotalsBox() self.get_widget("reports_tab").add(self.reports) self.current_range = "week" self.timechart = widgets.TimeChart() self.timechart.connect("zoom-out-clicked", self.on_timechart_zoom_out_clicked) self.timechart.connect("range-picked", self.on_timechart_new_range) self.timechart.day_start = self.day_start self.get_widget("by_day_box").add(self.timechart) self._gui.connect_signals(self) runtime.storage.connect('activities-changed',self.after_activity_update) runtime.storage.connect('facts-changed',self.after_activity_update) conf.connect('conf-changed', self.on_conf_change) if conf.get("overview_window_maximized"): self.window.maximize() else: window_box = conf.get("overview_window_box") if window_box: x, y, w, h = (int(i) for i in window_box) self.window.move(x, y) self.window.resize(w, h) else: self.window.set_position(gtk.WIN_POS_CENTER) self.window.show_all() self.search()
class HamsterApplet(object): 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) # DBus Setup try: dbus.mainloop.glib.DBusGMainLoop(set_as_default=True) # Set up connection to the screensaver self.dbusIdleListener = idle.DbusIdleListener() self.dbusIdleListener.connect('idle-changed', self.on_idle_changed) except dbus.DBusException, e: logging.error("Can't init dbus: %s" % e) # configuration self.timeout_enabled = conf.get("enable_timeout") self.notify_on_idle = conf.get("notify_on_idle") self.notify_interval = conf.get("notify_interval") 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.notification = None if pynotify: self.notification = pynotify.Notification( "Oh hi", "Greetings from hamster!") self.notification.set_urgency( pynotify.URGENCY_LOW) # lower than grass 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()
def __init__(self, parent=None): self.parent = parent # determine if app should shut down on close self._gui = load_ui_file("overview.ui") self.report_chooser = None self.facts = None self.window = self.get_widget("tabs_window") self.day_start = conf.get("day_start_minutes") self.day_start = dt.time(self.day_start / 60, self.day_start % 60) self.view_date = (dt.datetime.today() - dt.timedelta( hours=self.day_start.hour, minutes=self.day_start.minute)).date() self.range_pick = widgets.RangePick() self.get_widget("range_pick_box").add(self.range_pick) self.range_pick.connect("range-selected", self.on_range_selected) #set to monday self.start_date = self.view_date - dt.timedelta( self.view_date.weekday() + 1) # look if we need to start on sunday or monday self.start_date = self.start_date + dt.timedelta( stuff.locale_first_weekday()) # see if we have not gotten carried away too much in all these calculations if (self.view_date - self.start_date) == dt.timedelta(7): self.start_date += dt.timedelta(7) self.end_date = self.start_date + dt.timedelta(6) self.overview = OverviewBox() self.get_widget("overview_tab").add(self.overview) self.fact_tree = self.overview.fact_tree # TODO - this is upside down, should maybe get the overview tab over here self.fact_tree.connect("cursor-changed", self.on_fact_selection_changed) self.fact_tree.connect("button-press-event", self.on_fact_tree_button_press) self.reports = TotalsBox() self.get_widget("reports_tab").add(self.reports) self.current_range = "week" self.timechart = widgets.TimeChart() self.timechart.connect("zoom-out-clicked", self.on_timechart_zoom_out_clicked) self.timechart.connect("range-picked", self.on_timechart_new_range) self.timechart.day_start = self.day_start self.get_widget("by_day_box").add(self.timechart) self._gui.connect_signals(self) runtime.storage.connect('activities-changed', self.after_activity_update) runtime.storage.connect('facts-changed', self.after_activity_update) conf.connect('conf-changed', self.on_conf_change) if conf.get("overview_window_maximized"): self.window.maximize() else: window_box = conf.get("overview_window_box") if window_box: x, y, w, h = (int(i) for i in window_box) self.window.move(x, y) self.window.resize(w, h) else: self.window.set_position(gtk.WIN_POS_CENTER) self.window.show_all() self.search()
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()