diff options
author | Marco Pesenti Gritti <marco@localhost.localdomain> | 2007-07-20 11:15:11 (GMT) |
---|---|---|
committer | Marco Pesenti Gritti <marco@localhost.localdomain> | 2007-07-20 11:15:11 (GMT) |
commit | 19c8532d09fe19d27ef4b6822e0e0ed9e478bf28 (patch) | |
tree | da60a4b1318cdd4de490b79a3f69adedd9f71406 /sugar/datastore/datastore.py | |
parent | ba3b8043f3eea0eef9a7d57a9705092681caf405 (diff) |
Ensure activity uniquness in the shell
Diffstat (limited to 'sugar/datastore/datastore.py')
-rw-r--r-- | sugar/datastore/datastore.py | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/sugar/datastore/datastore.py b/sugar/datastore/datastore.py index 2561733..4249239 100644 --- a/sugar/datastore/datastore.py +++ b/sugar/datastore/datastore.py @@ -24,6 +24,7 @@ from sugar.datastore import dbus_helpers from sugar import activity from sugar.activity.bundle import Bundle from sugar.activity import activityfactory +from sugar.activity.activityhandle import ActivityHandle class DSMetadata(gobject.GObject): __gsignals__ = { @@ -38,7 +39,8 @@ class DSMetadata(gobject.GObject): else: self._props = props - default_keys = ['activity', 'mime_type', 'title_set_by_user'] + default_keys = ['activity', 'activity_id', + 'mime_type', 'title_set_by_user'] for key in default_keys: if not self._props.has_key(key): self._props[key] = '' @@ -116,9 +118,13 @@ class DSObject: activityfactory.create(bundle.get_service_name()) else: - activity_info = self.get_activities()[0] - activityfactory.create_with_object_id(activity_info.service_name, - self.object_id) + service_name = self.get_activities()[0].service_name + + handle = ActivityHandle(object_id=self.object_id) + if self.metadata['activity_id']: + handle.activity_id = self.metadata['activity_id'] + + activityfactory.create(service_name, handle) def get(object_id): logging.debug('datastore.get') |