diff options
author | Tomeu Vizoso <tomeu.vizoso@collabora.co.uk> | 2010-09-16 16:35:32 (GMT) |
---|---|---|
committer | Tomeu Vizoso <tomeu.vizoso@collabora.co.uk> | 2010-09-17 16:06:15 (GMT) |
commit | 9a0b3b51888f4ddfe834bd093b6147b3ea1bd7ec (patch) | |
tree | bc2d080ba043686bc74c720b7ca5c7d33c8f5b5d /src/jarabe/model/buddy.py | |
parent | 0b95b36d85e08a4df3a63c78f1cf8b549f06a5fa (diff) |
Properly store and load friends #2331
Because FriendBuddyModel has a different life cycle than BuddyModel
(are tracked also when online), we need to store the key and nick
so we can represent them in the UI when the contact are not online
and also so we can relate to the contact when it becomes online.
* src/jarabe/model/buddy.py: Move out FriendBuddyModel and add a
handle property to BuddyModel.
* src/jarabe/model/filetransfer.py: Ask neighborhood.py for the
buddy associated to a handle.
* src/jarabe/model/friends.py: Add FriendBuddyModel.
* src/jarabe/model/neighborhood.py: Set the contact handle on the
BuddyModel.
Diffstat (limited to 'src/jarabe/model/buddy.py')
-rw-r--r-- | src/jarabe/model/buddy.py | 23 |
1 files changed, 6 insertions, 17 deletions
diff --git a/src/jarabe/model/buddy.py b/src/jarabe/model/buddy.py index 531d7ea..5f3176e 100644 --- a/src/jarabe/model/buddy.py +++ b/src/jarabe/model/buddy.py @@ -28,8 +28,6 @@ from sugar.profile import get_profile from jarabe.util.telepathy import connection_watcher -_NOT_PRESENT_COLOR = "#d5d5d5,#FFFFFF" - CONNECTION_INTERFACE_BUDDY_INFO = 'org.laptop.Telepathy.BuddyInfo' class BaseBuddyModel(gobject.GObject): @@ -40,20 +38,10 @@ class BaseBuddyModel(gobject.GObject): self._nick = None self._color = None self._tags = None - self._present = False self._current_activity = None gobject.GObject.__init__(self, **kwargs) - def is_present(self): - return self._present - - def set_present(self, present): - self._present = present - - present = gobject.property(type=bool, default=False, getter=is_present, - setter=set_present) - def get_nick(self): return self._nick @@ -103,7 +91,6 @@ class OwnerBuddyModel(BaseBuddyModel): __gtype_name__ = 'SugarOwnerBuddyModel' def __init__(self): BaseBuddyModel.__init__(self) - self.props.present = True client = gconf.client_get_default() self.props.nick = client.get_string('/desktop/sugar/user/nick') @@ -207,6 +194,7 @@ class BuddyModel(BaseBuddyModel): self._account = None self._contact_id = None + self._handle = None BaseBuddyModel.__init__(self, **kwargs) @@ -231,9 +219,10 @@ class BuddyModel(BaseBuddyModel): contact_id = gobject.property(type=object, getter=get_contact_id, setter=set_contact_id) + def get_handle(self): + return self._handle -class FriendBuddyModel(BuddyModel): - __gtype_name__ = 'SugarFriendBuddyModel' - def __init__(self, nick, key): - BuddyModel.__init__(self, nick=nick, key=key) + def set_handle(self, handle): + self._handle = handle + handle = gobject.property(type=object, getter=get_handle, setter=set_handle) |