Fix keep functionality in activities

Introduced by #1765
This commit is contained in:
Simon Schampijer 2010-03-29 23:48:23 +02:00
parent 0ce9019b93
commit e497eb15ba

View File

@ -139,6 +139,7 @@ class DSObject(object):
"""A representation of a DS entry.""" """A representation of a DS entry."""
def __init__(self, object_id, metadata=None, file_path=None): def __init__(self, object_id, metadata=None, file_path=None):
self._update_signal_match = None
self.set_object_id(object_id) self.set_object_id(object_id)
self._metadata = metadata self._metadata = metadata
self._file_path = file_path self._file_path = file_path
@ -149,16 +150,18 @@ class DSObject(object):
return self._object_id return self._object_id
def set_object_id(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: if object_id is not None:
_get_data_store().connect_to_signal('Updated', self._update_signal_match = _get_data_store().connect_to_signal(
self.__object_updated_cb, 'Updated', self.__object_updated_cb, arg0=object_id)
arg0=object_id)
self._object_id = object_id self._object_id = object_id
object_id = property(get_object_id, set_object_id) object_id = property(get_object_id, set_object_id)
def __object_updated_cb(self, 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) byte_arrays=True)
self._metadata.update(properties) self._metadata.update(properties)