Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/sugar
diff options
context:
space:
mode:
authorMarco Pesenti Gritti <mpg@redhat.com>2007-09-08 10:11:03 (GMT)
committer Marco Pesenti Gritti <mpg@redhat.com>2007-09-08 10:11:03 (GMT)
commit5af1b7d005524cad9a04462d612a1ce2b85a58ff (patch)
treeb05a3bdbadd426da2aff43673864ce631ba1a0ae /sugar
parent34e9d30a9cd87e5b3fa665a0a4a9a954a5edb88e (diff)
parent9e2a9c4c025b492169fe244c4a443d1b63b50968 (diff)
Merge branch 'master' of git+ssh://dev.laptop.org/git/sugar
Diffstat (limited to 'sugar')
-rw-r--r--sugar/activity/activity.py1
-rw-r--r--sugar/datastore/datastore.py6
-rw-r--r--sugar/datastore/dbus_helpers.py16
3 files changed, 16 insertions, 7 deletions
diff --git a/sugar/activity/activity.py b/sugar/activity/activity.py
index b019627..a5661cd 100644
--- a/sugar/activity/activity.py
+++ b/sugar/activity/activity.py
@@ -487,6 +487,7 @@ class Activity(Window, gtk.Container):
pass
self._updating_jobject = True
datastore.write(self._jobject,
+ transfer_ownership=True,
reply_handler=self._internal_save_cb,
error_handler=self._internal_save_error_cb)
diff --git a/sugar/datastore/datastore.py b/sugar/datastore/datastore.py
index 6409a8a..0be6a2f 100644
--- a/sugar/datastore/datastore.py
+++ b/sugar/datastore/datastore.py
@@ -186,7 +186,7 @@ def create():
metadata['mtime'] = metadata['ctime']
return DSObject(object_id=None, metadata=metadata, file_path=None)
-def write(ds_object, update_mtime=True, reply_handler=None, error_handler=None, timeout=-1):
+def write(ds_object, update_mtime=True, transfer_ownership=False, reply_handler=None, error_handler=None, timeout=-1):
logging.debug('datastore.write')
properties = ds_object.metadata.get_dictionary().copy()
@@ -198,12 +198,14 @@ def write(ds_object, update_mtime=True, reply_handler=None, error_handler=None,
dbus_helpers.update(ds_object.object_id,
properties,
ds_object.file_path,
+ transfer_ownership,
reply_handler=reply_handler,
error_handler=error_handler,
timeout=timeout)
else:
ds_object.object_id = dbus_helpers.create(properties,
- ds_object.file_path)
+ ds_object.file_path,
+ transfer_ownership)
# TODO: register the object for updates
logging.debug('Written object %s to the datastore.' % ds_object.object_id)
diff --git a/sugar/datastore/dbus_helpers.py b/sugar/datastore/dbus_helpers.py
index 6625d22..88dfb6d 100644
--- a/sugar/datastore/dbus_helpers.py
+++ b/sugar/datastore/dbus_helpers.py
@@ -40,20 +40,26 @@ def _get_data_store():
DS_DBUS_INTERFACE)
return _data_store
-def create(properties, filename):
- object_id = _get_data_store().create(dbus.Dictionary(properties), filename)
+def create(properties, filename, transfer_ownership=False):
+ object_id = _get_data_store().create(dbus.Dictionary(properties), filename,
+ transfer_ownership)
logging.debug('dbus_helpers.create: ' + object_id)
return object_id
-def update(uid, properties, filename, reply_handler=None, error_handler=None, timeout=-1):
- logging.debug('dbus_helpers.update: %s, %s, %s' % (uid, filename, properties))
+def update(uid, properties, filename, transfer_ownership=False,
+ reply_handler=None, error_handler=None, timeout=-1):
+ debug_props = properties.copy()
+ if debug_props.has_key("preview"):
+ debug_props["preview"] = "<omitted>"
+ logging.debug('dbus_helpers.update: %s, %s, %s, %s' % (uid, filename, debug_props, transfer_ownership))
if reply_handler and error_handler:
_get_data_store().update(uid, dbus.Dictionary(properties), filename,
+ transfer_ownership,
reply_handler=reply_handler,
error_handler=error_handler,
timeout=timeout)
else:
- _get_data_store().update(uid, dbus.Dictionary(properties), filename)
+ _get_data_store().update(uid, dbus.Dictionary(properties), filename, transfer_ownership)
def delete(uid):
logging.debug('dbus_helpers.delete: %r' % uid)