From be3cc8da174ca031986eb3c3fa9f8f2fdf5de1dc Mon Sep 17 00:00:00 2001 From: Sascha Silbe Date: Sat, 11 Jul 2009 19:24:24 +0000 Subject: fix some bugs introduced by the API adaptions --- diff --git a/src/sugar/activity/activity.py b/src/sugar/activity/activity.py index f3a4eb0..3cbc5d5 100644 --- a/src/sugar/activity/activity.py +++ b/src/sugar/activity/activity.py @@ -500,8 +500,8 @@ class Activity(Window, gtk.Container): share_scope = SCOPE_PRIVATE - if handle.object_id: - self._jobject = datastore.get(handle.object_id, handle.version_id) + if handle.tree_id: + self._jobject = datastore.get(handle.tree_id, handle.version_id) self.set_title(self._jobject.metadata['title']) if self._jobject.metadata.has_key('share-scope'): @@ -537,14 +537,14 @@ class Activity(Window, gtk.Container): else: logging.debug("Unknown share scope %r" % share_scope) - if handle.object_id is None and create_jobject: + if handle.tree_id is None and create_jobject: logging.debug('Creating a jobject.') self._jobject = datastore.create() title = _('%s Activity') % get_bundle_name() self._jobject.metadata['title'] = title self.set_title(self._jobject.metadata['title']) self._jobject.metadata['title_set_by_user'] = '0' - self._jobject.metadata['activity'] = self.get_bundle_id() + self._jobject.metadata['bundle_id'] = self.get_bundle_id() self._jobject.metadata['activity_id'] = self.get_id() self._jobject.metadata['keep'] = '0' self._jobject.metadata['preview'] = '' @@ -691,7 +691,7 @@ class Activity(Window, gtk.Container): """ raise NotImplementedError - def __save_cb(self, object_id, version_id): + def __save_cb(self, tree_id, version_id): logging.debug('Activity.__save_cb') self._updating_jobject = False if self._quit_requested: @@ -771,7 +771,7 @@ class Activity(Window, gtk.Container): logging.debug('Cannot save, no journal object.') return - logging.debug('Activity.save: (%r,%r)' % (self._jobject.object_id, self._jobject.version_id)) + logging.debug('Activity.save: (%r,%r)' % (self._jobject.tree_id, self._jobject.version_id)) if self._updating_jobject: logging.info('Activity.save: still processing a previous request.') @@ -799,7 +799,7 @@ class Activity(Window, gtk.Container): # Cannot call datastore.write async for creates: # https://dev.laptop.org/ticket/3071 - if self._jobject.object_id is None: + if self._jobject.tree_id is None: datastore.write(self._jobject, transfer_ownership=True) else: self._updating_jobject = True @@ -815,9 +815,9 @@ class Activity(Window, gtk.Container): Activities should not override this method. Instead, like save() do any copy work that needs to be done in write_file() """ - logging.debug('Activity.copy: (%r,%r)' % (self._jobject.object_id, self._jobject.version_id)) + logging.debug('Activity.copy: (%r,%r)' % (self._jobject.tree_id, self._jobject.version_id)) self.save() - self._jobject.object_id = None + self._jobject.tree_id = None self._jobject.version_id = None def __privacy_changed_cb(self, shared_activity, param_spec): @@ -1058,8 +1058,8 @@ def get_activity_root(): raise RuntimeError("No SUGAR_ACTIVITY_ROOT set.") # SS: TODO: optionally pass version_id -def show_object_in_journal(object_id): +def show_object_in_journal(tree_id): bus = dbus.SessionBus() obj = bus.get_object(J_DBUS_SERVICE, J_DBUS_PATH) journal = dbus.Interface(obj, J_DBUS_INTERFACE) - journal.ShowObject(object_id) + journal.ShowObject(tree_id) diff --git a/src/sugar/activity/activityfactory.py b/src/sugar/activity/activityfactory.py index 566455c..58de117 100644 --- a/src/sugar/activity/activityfactory.py +++ b/src/sugar/activity/activityfactory.py @@ -123,7 +123,7 @@ def get_environment(activity): return environ -def get_command(activity, activity_id=None, object_id=None, version_id=None, uri=None): +def get_command(activity, activity_id=None, tree_id=None, version_id=None, uri=None): if not activity_id: activity_id = create_activity_id() @@ -131,8 +131,8 @@ def get_command(activity, activity_id=None, object_id=None, version_id=None, uri command.extend(['-b', activity.get_bundle_id()]) command.extend(['-a', activity_id]) - if object_id is not None: - command.extend(['-o', object_id]) + if tree_id is not None: + command.extend(['-o', tree_id]) if version_id is not None: command.extend(['-r', version_id]) if uri is not None: @@ -222,7 +222,7 @@ class ActivityCreationHandler(gobject.GObject): self._shell = dbus.Interface(bus_object, _SHELL_IFACE) if handle.activity_id is not None and \ - handle.object_id is None: + handle.tree_id is None: datastore = dbus.Interface( bus.get_object(_DS_SERVICE, _DS_PATH), _DS_INTERFACE) datastore.find({ 'activity_id': self._handle.activity_id }, [], @@ -252,7 +252,7 @@ class ActivityCreationHandler(gobject.GObject): environ = get_environment(self._bundle) (log_path, log_file) = open_log_file(self._bundle) command = get_command(self._bundle, self._handle.activity_id, - self._handle.object_id, + self._handle.tree_id, self._handle.version_id, self._handle.uri) @@ -322,8 +322,8 @@ class ActivityCreationHandler(gobject.GObject): if count > 0: if count > 1: logging.debug("Multiple objects has the same activity_id.") - self._handle.object_id = jobjects[0]['uid'] - self._handle.version_id = jobjects[0]['vid'] + self._handle.tree_id = jobjects[0]['tree_id'] + self._handle.version_id = jobjects[0]['version_id'] self._launch_activity() def _find_object_error_handler(self, err): @@ -341,7 +341,7 @@ def create_with_uri(bundle, uri): activity_handle = ActivityHandle(uri=uri) return ActivityCreationHandler(bundle, activity_handle) -def create_with_object_id(bundle, object_id, version_id): - """Create a new activity and pass both the object id and the version id as handle.""" - activity_handle = ActivityHandle(object_id=object_id, version_id=version_id) +def create_with_tree_id(bundle, tree_id, version_id): + """Create a new activity and pass both the tree id and the version id as handle.""" + activity_handle = ActivityHandle(tree_id=tree_id, version_id=version_id) return ActivityCreationHandler(bundle, activity_handle) diff --git a/src/sugar/activity/activityhandle.py b/src/sugar/activity/activityhandle.py index 83645d0..2153ffb 100644 --- a/src/sugar/activity/activityhandle.py +++ b/src/sugar/activity/activityhandle.py @@ -22,19 +22,19 @@ STABLE. class ActivityHandle(object): """Data structure storing simple activity metadata""" def __init__( - self, activity_id=None, object_id=None, version_id=None, uri=None + self, activity_id=None, tree_id=None, version_id=None, uri=None ): """Initialise the handle from activity_id activity_id -- unique id for the activity to be created - object_id -- identity of the journal object + tree_id -- identity of the journal object associated with the activity. version_id -- the exact version of the journal object. When you resume an activity from the journal - the object_id and version_id will be passed in. + the tree_id and version_id will be passed in. It's optional since new activities do not have an associated object (yet). uri -- URI associated with the activity. Used when @@ -44,15 +44,15 @@ class ActivityHandle(object): example or web pages) """ self.activity_id = activity_id - self.object_id = object_id + self.tree_id = tree_id self.version_id = version_id self.uri = uri def get_dict(self): """Retrieve our settings as a dictionary""" result = { 'activity_id' : self.activity_id } - if self.object_id: - result['object_id'] = self.object_id + if self.tree_id: + result['tree_id'] = self.tree_id result['version_id'] = self.version_id if self.uri: result['uri'] = self.uri @@ -63,7 +63,7 @@ def create_from_dict(handle_dict): """Create a handle from a dictionary of parameters""" result = ActivityHandle( handle_dict['activity_id'], - object_id = handle_dict.get('object_id'), + tree_id = handle_dict.get('tree_id'), version_id = handle_dict.get('version_id'), uri = handle_dict.get('uri'), ) diff --git a/src/sugar/activity/main.py b/src/sugar/activity/main.py index f894118..458696a 100644 --- a/src/sugar/activity/main.py +++ b/src/sugar/activity/main.py @@ -60,7 +60,7 @@ def main(): help="identifier of the activity bundle") parser.add_option("-a", "--activity-id", dest="activity_id", help="identifier of the activity instance") - parser.add_option("-o", "--object-id", dest="object_id", + parser.add_option("-o", "--tree-id", dest="tree_id", help="identifier of the associated datastore object") parser.add_option("-r", "--version-id", dest="version_id", help="version of the associated datastore object") @@ -111,7 +111,7 @@ def main(): activity_constructor = getattr(module, class_name) activity_handle = activityhandle.ActivityHandle( activity_id=options.activity_id, - object_id=options.object_id, version_id=options.version_id, + tree_id=options.tree_id, version_id=options.version_id, uri=options.uri) if options.single_process is True: diff --git a/src/sugar/activity/namingalert.py b/src/sugar/activity/namingalert.py index 11b7688..70aa1b5 100644 --- a/src/sugar/activity/namingalert.py +++ b/src/sugar/activity/namingalert.py @@ -253,9 +253,7 @@ class NamingAlert(gtk.Window): return favorite_icon def _create_entry_icon(self): - bundle_id = self._activity.metadata.get('activity', '') - if not bundle_id: - bundle_id = self._activity.metadata.get('bundle_id', '') + bundle_id = self._activity.metadata.get('bundle_id', '') if bundle_id == '': file_name = _get_icon_name(self._activity.metadata) diff --git a/src/sugar/datastore/datastore.py b/src/sugar/datastore/datastore.py index 87eedd2..74806e5 100644 --- a/src/sugar/datastore/datastore.py +++ b/src/sugar/datastore/datastore.py @@ -42,7 +42,7 @@ class DSMetadata(gobject.GObject): else: self._props = props - default_keys = ['activity', 'activity_id', + default_keys = ['bundle_id', 'activity_id', 'mime_type', 'title_set_by_user'] for key in default_keys: if not self._props.has_key(key): @@ -81,8 +81,8 @@ class DSMetadata(gobject.GObject): return default class DSObject(object): - def __init__(self, object_id, version_id, metadata=None, file_path=None): - self.object_id = object_id + def __init__(self, tree_id, version_id, metadata=None, file_path=None): + self.tree_id = tree_id self.version_id = version_id self._metadata = metadata self._file_path = file_path @@ -90,8 +90,8 @@ class DSObject(object): self._owns_file = False def get_metadata(self): - if self._metadata is None and not self.object_id is None: - metadata = DSMetadata(dbus_helpers.get_properties(self.object_id, self.version_id)) + if self._metadata is None and not self.tree_id is None: + metadata = DSMetadata(dbus_helpers.get_properties(self.tree_id, self.version_id)) self._metadata = metadata return self._metadata @@ -102,8 +102,8 @@ class DSObject(object): metadata = property(get_metadata, set_metadata) def get_file_path(self, fetch=True): - if fetch and self._file_path is None and not self.object_id is None: - self.set_file_path(dbus_helpers.get_filename(self.object_id, self.version_id)) + if fetch and self._file_path is None and not self.tree_id is None: + self.set_file_path(dbus_helpers.get_filename(self.tree_id, self.version_id)) self._owns_file = True return self._file_path @@ -137,11 +137,11 @@ class DSObject(object): def copy(self): return DSObject(None, self._metadata.copy(), self._file_path) -def get(object_id, version_id): +def get(tree_id, version_id): logging.debug('datastore.get') - metadata = dbus_helpers.get_properties(object_id, version_id) + metadata = dbus_helpers.get_properties(tree_id, version_id) - ds_object = DSObject(object_id, version_id, DSMetadata(metadata), None) + ds_object = DSObject(tree_id, version_id, DSMetadata(metadata), None) # TODO: register the object for updates return ds_object @@ -149,7 +149,7 @@ def create(): metadata = DSMetadata() metadata['mtime'] = datetime.now().isoformat() metadata['timestamp'] = int(time.time()) - return DSObject(object_id=None, version_id=None, metadata=metadata, file_path=None) + return DSObject(tree_id=None, version_id=None, metadata=metadata, file_path=None) def write(ds_object, update_mtime=True, transfer_ownership=False, reply_handler=None, error_handler=None, timeout=-1): @@ -167,8 +167,8 @@ def write(ds_object, update_mtime=True, transfer_ownership=False, # FIXME: this func will be sync for creates regardless of the handlers # supplied. This is very bad API, need to decide what to do here. - if ds_object.object_id: - dbus_helpers.update(ds_object.object_id, ds_object.version_id, + if ds_object.tree_id: + dbus_helpers.update(ds_object.tree_id, ds_object.version_id, properties, file_path, transfer_ownership, @@ -179,17 +179,17 @@ def write(ds_object, update_mtime=True, transfer_ownership=False, if reply_handler or error_handler: logging.warning('datastore.write() cannot currently be called' \ 'async for creates, see ticket 3071') - (ds_object.object_id, ds_object.version_id) = dbus_helpers.create(properties, + (ds_object.tree_id, ds_object.version_id) = dbus_helpers.create(properties, file_path, transfer_ownership) - ds_object.metadata['uid'] = ds_object.object_id - ds_object.metadata['vid'] = ds_object.version_id + ds_object.metadata['tree_id'] = ds_object.tree_id + ds_object.metadata['version_id'] = ds_object.version_id # TODO: register the object for updates - logging.debug('Written object (%s,%s) to the datastore.' % (ds_object.object_id, ds_object.version_id)) + logging.debug('Written object (%s,%s) to the datastore.' % (ds_object.tree_id, ds_object.version_id)) -def delete(object_id, version_id): +def delete(tree_id, version_id): logging.debug('datastore.delete') - dbus_helpers.delete(object_id, version_id) + dbus_helpers.delete(tree_id, version_id) def find(query, sorting=None, limit=None, offset=None, properties=None, reply_handler=None, error_handler=None): @@ -211,12 +211,12 @@ def find(query, sorting=None, limit=None, offset=None, properties=None, objects = [] for props in props_list: - object_id = props['uid'] - version_id = props['vid'] - del props['uid'] - del props['vid'] + tree_id = props['tree_id'] + version_id = props['version_id'] + del props['tree_id'] + del props['version_id'] - ds_object = DSObject(object_id, version_id, DSMetadata(props), None) + ds_object = DSObject(tree_id, version_id, DSMetadata(props), None) objects.append(ds_object) return objects, total_count diff --git a/src/sugar/graphics/objectchooser.py b/src/sugar/graphics/objectchooser.py index a53478d..c4b9daf 100644 --- a/src/sugar/graphics/objectchooser.py +++ b/src/sugar/graphics/objectchooser.py @@ -51,7 +51,7 @@ class ObjectChooser(object): self._parent_xid = parent_xid self._main_loop = None - self._object_id = None + self._tree_id = None self._version_id = None self._bus = None self._chooser_id = None @@ -59,7 +59,7 @@ class ObjectChooser(object): self._what_filter = what_filter def run(self): - self._object_id = None + self._tree_id = None self._version_id = None self._main_loop = gobject.MainLoop() @@ -95,10 +95,10 @@ class ObjectChooser(object): return self._response_code def get_selected_object(self): - if self._object_id is None: + if self._tree_id is None: return None else: - return datastore.get(self._object_id, self._version_id) + return datastore.get(self._tree_id, self._version_id) def destroy(self): self._cleanup() @@ -109,12 +109,12 @@ class ObjectChooser(object): self._main_loop = None self._bus = None - def __chooser_response_cb(self, chooser_id, object_id, version_id): + def __chooser_response_cb(self, chooser_id, tree_id, version_id): if chooser_id != self._chooser_id: return - logging.debug('ObjectChooser.__chooser_response_cb: (%r,%r)' % (object_id, version_id)) + logging.debug('ObjectChooser.__chooser_response_cb: (%r,%r)' % (tree_id, version_id)) self._response_code = gtk.RESPONSE_ACCEPT - self._object_id = object_id + self._tree_id = tree_id self._version_id = version_id self._cleanup() -- cgit v0.9.1