Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon Schampijer <simon@schampijer.de>2010-03-29 21:48:23 (GMT)
committer Simon Schampijer <simon@schampijer.de>2010-03-29 21:48:23 (GMT)
commite497eb15baea8b7f7429fb5c5cf34e45a83aeeed (patch)
treef93eca9a9202e72be8080f7e243904112aeb8d2e
parent0ce9019b935eb88d62704532f0affb8c203bbdaa (diff)
Fix keep functionality in activities
Introduced by #1765
-rw-r--r--src/sugar/datastore/datastore.py11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/sugar/datastore/datastore.py b/src/sugar/datastore/datastore.py
index 26655a6..1618cef 100644
--- a/src/sugar/datastore/datastore.py
+++ b/src/sugar/datastore/datastore.py
@@ -139,6 +139,7 @@ class DSObject(object):
"""A representation of a DS entry."""
def __init__(self, object_id, metadata=None, file_path=None):
+ self._update_signal_match = None
self.set_object_id(object_id)
self._metadata = metadata
self._file_path = file_path
@@ -149,16 +150,18 @@ class DSObject(object):
return self._object_id
def set_object_id(self, object_id):
+ if self._update_signal_match is not None:
+ self._update_signal_match.remove()
if object_id is not None:
- _get_data_store().connect_to_signal('Updated',
- self.__object_updated_cb,
- arg0=object_id)
+ self._update_signal_match = _get_data_store().connect_to_signal(
+ 'Updated', self.__object_updated_cb, arg0=object_id)
+
self._object_id = object_id
object_id = property(get_object_id, set_object_id)
def __object_updated_cb(self, object_id):
- properties = _get_data_store().get_properties(self.object_id,
+ properties = _get_data_store().get_properties(self._object_id,
byte_arrays=True)
self._metadata.update(properties)