[hamster-applet] touch_fact -> stop_tracking; also connect to dbus signals on the client side only if we have somebod
- From: Toms Baugis <tbaugis src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [hamster-applet] touch_fact -> stop_tracking; also connect to dbus signals on the client side only if we have somebod
- Date: Tue, 13 Apr 2010 16:41:13 +0000 (UTC)
commit d16aea166d0e3d89f99ce07f764ded410359bd08
Author: Toms Bauģis <toms baugis gmail com>
Date: Tue Apr 13 17:39:21 2010 +0100
touch_fact -> stop_tracking; also connect to dbus signals on the client side only if we have somebody to report to
src/hamster-applet | 2 +-
src/hamster-standalone | 5 ++---
src/hamster/applet.py | 5 ++---
src/hamster/client.py | 17 +++++++++--------
src/hamster/db.py | 4 ++--
src/hamster/storage.py | 8 +++++---
6 files changed, 21 insertions(+), 20 deletions(-)
---
diff --git a/src/hamster-applet b/src/hamster-applet
index 0f0079a..d739609 100755
--- a/src/hamster-applet
+++ b/src/hamster-applet
@@ -47,7 +47,7 @@ def on_destroy(event):
if conf.get("stop_on_shutdown"):
last_activity = runtime.storage.get_last_activity()
if last_activity and last_activity['end_time'] is None:
- runtime.storage.touch_fact(last_activity)
+ runtime.storage.stop_tracking()
if gtk.main_level():
gtk.main_quit()
diff --git a/src/hamster-standalone b/src/hamster-standalone
index 7ff890a..6830968 100755
--- a/src/hamster-standalone
+++ b/src/hamster-standalone
@@ -349,8 +349,7 @@ class ProjectHamster(object):
elif self.timeout_enabled and self.last_activity and \
self.last_activity['end_time'] is None:
- runtime.storage.touch_fact(self.last_activity,
- end_time = self.dbusIdleListener.getIdleFrom())
+ runtime.storage.stop_tracking(end_time = self.dbusIdleListener.getIdleFrom())
def on_workspace_changed(self, screen, previous_workspace):
if not previous_workspace:
@@ -471,7 +470,7 @@ class ProjectHamster(object):
runtime.dispatcher.dispatch('panel_visible', False)
def on_stop_tracking_clicked(self, widget):
- runtime.storage.touch_fact(self.last_activity)
+ runtime.storage.stop_tracking()
self.last_activity = None
runtime.dispatcher.dispatch('panel_visible', False)
diff --git a/src/hamster/applet.py b/src/hamster/applet.py
index 323ffd9..f9bb5cb 100755
--- a/src/hamster/applet.py
+++ b/src/hamster/applet.py
@@ -578,8 +578,7 @@ class HamsterApplet(object):
elif self.timeout_enabled and self.last_activity and \
self.last_activity['end_time'] is None:
- runtime.storage.touch_fact(self.last_activity,
- end_time = self.dbusIdleListener.getIdleFrom())
+ runtime.storage.stop_tracking(self.dbusIdleListener.getIdleFrom())
def on_workspace_changed(self, screen, previous_workspace):
if not previous_workspace:
@@ -705,7 +704,7 @@ class HamsterApplet(object):
runtime.dispatcher.dispatch('panel_visible', False)
def on_stop_tracking_clicked(self, widget):
- runtime.storage.touch_fact(self.last_activity)
+ runtime.storage.stop_tracking()
self.last_activity = None
runtime.dispatcher.dispatch('panel_visible', False)
diff --git a/src/hamster/client.py b/src/hamster/client.py
index 58b241b..23eac78 100644
--- a/src/hamster/client.py
+++ b/src/hamster/client.py
@@ -60,7 +60,7 @@ def from_dbus_fact(fact):
return fact
class Storage(object):
- def __init__(self, parent):
+ def __init__(self, parent = None):
self.parent = parent
dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
@@ -70,9 +70,10 @@ class Storage(object):
dbus_interface='org.gnome.Hamster')
self.conn = hamster_conn
- bus.add_signal_receiver(self.on_tags_changed, 'TagsChanged', 'org.gnome.Hamster')
- bus.add_signal_receiver(self.on_facts_changed, 'FactsChanged', 'org.gnome.Hamster')
- bus.add_signal_receiver(self.on_activities_changed, 'ActivitiesChanged', 'org.gnome.Hamster')
+ if parent:
+ bus.add_signal_receiver(self.on_tags_changed, 'TagsChanged', 'org.gnome.Hamster')
+ bus.add_signal_receiver(self.on_facts_changed, 'FactsChanged', 'org.gnome.Hamster')
+ bus.add_signal_receiver(self.on_activities_changed, 'ActivitiesChanged', 'org.gnome.Hamster')
def on_tags_changed(self):
@@ -117,7 +118,7 @@ class Storage(object):
def get_fact(self, id):
return from_dbus_fact(self.conn.GetFact(id))
- def add_fact(self, activity_name, tags, start_time = None, end_time = 0,
+ def add_fact(self, activity_name, tags = '', start_time = None, end_time = 0,
category_name = None, description = None):
if start_time:
@@ -135,9 +136,9 @@ class Storage(object):
return self.conn.AddFact(activity_name, tags, start_time, end_time, category_name, description)
- def touch_fact(self, fact, end_time = None):
- # TODO - rename and remove all the attributes
- return self.conn.StopTracking()
+ def stop_tracking(self, end_time = None):
+ end_time = timegm((end_time or dt.datetime.now()).timetuple())
+ return self.conn.StopTracking(end_time)
def remove_fact(self, fact_id):
self.conn.RemoveFact(fact_id)
diff --git a/src/hamster/db.py b/src/hamster/db.py
index cd57d5e..099452a 100644
--- a/src/hamster/db.py
+++ b/src/hamster/db.py
@@ -364,8 +364,8 @@ class Storage(storage.Storage):
last_activity = facts[-1]
return last_activity
- def __touch_fact(self, fact):
- end_time = dt.datetime.now()
+ def __touch_fact(self, fact, end_time):
+ end_time = end_time or dt.datetime.now()
# tasks under one minute do not count
if end_time - fact['start_time'] < datetime.timedelta(minutes = 1):
self.__remove_fact(fact['id'])
diff --git a/src/hamster/storage.py b/src/hamster/storage.py
index 466e959..5a26b4b 100644
--- a/src/hamster/storage.py
+++ b/src/hamster/storage.py
@@ -154,11 +154,13 @@ class Storage(dbus.service.Object):
@dbus.service.method("org.gnome.Hamster")
- def StopTracking(self):
- """Stops the current fact tracking"""
+ def StopTracking(self, end_time):
+ """Stops tracking the current activity"""
+ end_time = dt.datetime.utcfromtimestamp(end_time)
+
fact = self.__get_last_activity()
if fact:
- self.__touch_fact(fact)
+ self.__touch_fact(fact, end_time)
self.FactsChanged()
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]