From 188394f09f788b19303909738adfff8ec8c788c0 Mon Sep 17 00:00:00 2001 From: Dan Williams Date: Fri, 22 Sep 2006 17:24:56 -0400 Subject: [PATCH] - Track BuddyModel appeared/disappeared signals, and update our icon colors accordingly - s/friend/buddy since BuddyModel isn't just for friends --- shell/view/BuddyIcon.py | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/shell/view/BuddyIcon.py b/shell/view/BuddyIcon.py index 9ae709a5..21092268 100644 --- a/shell/view/BuddyIcon.py +++ b/shell/view/BuddyIcon.py @@ -2,18 +2,24 @@ from sugar.canvas.MenuIcon import MenuIcon from view.BuddyMenu import BuddyMenu class BuddyIcon(MenuIcon): - def __init__(self, shell, menu_shell, friend): + def __init__(self, shell, menu_shell, buddy): MenuIcon.__init__(self, menu_shell, icon_name='stock-buddy', - color=friend.get_color(), size=112) + color=buddy.get_color(), size=112) self._shell = shell - self._friend = friend + self._buddy = buddy + self._buddy.connect('appeared', self.__buddy_presence_change_cb) + self._buddy.connect('disappeared', self.__buddy_presence_change_cb) + + def __buddy_presence_change_cb(self, buddy): + # Update the icon's color when the buddy comes and goes + self.set_property('color', buddy.get_color()) def set_popup_distance(self, distance): self._popup_distance = distance def create_menu(self): - menu = BuddyMenu(self._shell, self._friend) + menu = BuddyMenu(self._shell, self._buddy) menu.connect('action', self._popup_action_cb) return menu @@ -22,14 +28,14 @@ class BuddyIcon(MenuIcon): friends = self._shell.get_model().get_friends() if action == BuddyMenu.ACTION_REMOVE_FRIEND: - friends.remove(self._friend) + friends.remove(self._buddy) - buddy = self._friend.get_buddy() - if buddy == None: + ps_buddy = self._buddy.get_buddy() + if ps_buddy == None: return if action == BuddyMenu.ACTION_INVITE: activity = self._shell.get_current_activity() - activity.invite(buddy) + activity.invite(ps_buddy) elif action == BuddyMenu.ACTION_MAKE_FRIEND: - friends.make_friend(buddy) + friends.make_friend(ps_buddy)