Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/sugar
diff options
context:
space:
mode:
authorTomeu Vizoso <tomeu@tomeuvizoso.net>2008-03-10 16:17:09 (GMT)
committer Tomeu Vizoso <tomeu@tomeuvizoso.net>2008-04-02 09:23:10 (GMT)
commitbb924b48cd8970dadddf01456e5a0c40a825754a (patch)
treea6ea74503313f2b9cf8b6d85e703975ea1b2a8d1 /sugar
parent70901268c3b2edb30f01079800a58abac7018721 (diff)
Add favorite support to the activity registry.
Diffstat (limited to 'sugar')
-rw-r--r--sugar/activity/registry.py28
1 files changed, 19 insertions, 9 deletions
diff --git a/sugar/activity/registry.py b/sugar/activity/registry.py
index ac672d5..e327cf0 100644
--- a/sugar/activity/registry.py
+++ b/sugar/activity/registry.py
@@ -31,11 +31,11 @@ def _activity_info_from_dict(info_dict):
return ActivityInfo(info_dict['name'], info_dict['icon'],
info_dict['bundle_id'], info_dict['version'],
info_dict['path'], info_dict['show_launcher'],
- info_dict['command'])
+ info_dict['command'], info_dict['favorite'])
class ActivityInfo(object):
def __init__(self, name, icon, bundle_id, version,
- path, show_launcher, command):
+ path, show_launcher, command, favorite):
self.name = name
self.icon = icon
self.bundle_id = bundle_id
@@ -43,13 +43,16 @@ class ActivityInfo(object):
self.path = path
self.command = command
self.show_launcher = show_launcher
+ self.favorite = favorite
class ActivityRegistry(gobject.GObject):
__gsignals__ = {
- 'activity-added': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
- ([gobject.TYPE_PYOBJECT])),
+ 'activity-added': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
+ ([gobject.TYPE_PYOBJECT])),
'activity-removed': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
- ([gobject.TYPE_PYOBJECT]))
+ ([gobject.TYPE_PYOBJECT])),
+ 'activity-changed': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
+ ([gobject.TYPE_PYOBJECT]))
}
def __init__(self):
gobject.GObject.__init__(self)
@@ -67,6 +70,7 @@ class ActivityRegistry(gobject.GObject):
self._registry = dbus.Interface(bus_object, _ACTIVITY_REGISTRY_IFACE)
self._registry.connect_to_signal('ActivityAdded', self._activity_added_cb)
self._registry.connect_to_signal('ActivityRemoved', self._activity_removed_cb)
+ self._registry.connect_to_signal('ActivityChanged', self._activity_changed_cb)
# Two caches fo saving some travel across dbus.
self._service_name_to_activity_info = {}
@@ -148,16 +152,22 @@ class ActivityRegistry(gobject.GObject):
self._mime_type_to_activities.clear()
def remove_bundle(self, bundle_path):
- self._service_name_to_activity_info.clear()
- self._mime_type_to_activities.clear()
+ self._invalidate_cache()
return self._registry.RemoveBundle(bundle_path)
def _activity_removed_cb(self, info_dict):
logging.debug('ActivityRegistry._activity_removed_cb: flushing caches')
- self._service_name_to_activity_info.clear()
- self._mime_type_to_activities.clear()
+ self._invalidate_cache()
self.emit('activity-removed', _activity_info_from_dict(info_dict))
+ def _activity_changed_cb(self, info_dict):
+ logging.debug('ActivityRegistry._activity_changed_cb: flushing caches')
+ self._invalidate_cache()
+ self.emit('activity-changed', _activity_info_from_dict(info_dict))
+
+ def set_activity_favorite(self, bundle_id, version, favorite):
+ self._registry.SetActivityFavorite(bundle_id, version, favorite)
+
_registry = None
def get_registry():