From bd9bd2d020e13579d24e816b73f053da78e23739 Mon Sep 17 00:00:00 2001 From: Marco Pesenti Gritti Date: Fri, 31 Aug 2007 13:56:58 +0200 Subject: [PATCH] Keep the invite menu item synced with current activity. --- shell/view/BuddyMenu.py | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/shell/view/BuddyMenu.py b/shell/view/BuddyMenu.py index e3d1a203..a4d921e8 100644 --- a/shell/view/BuddyMenu.py +++ b/shell/view/BuddyMenu.py @@ -89,16 +89,20 @@ class BuddyMenu(Palette): self.menu.append(menu_item) menu_item.show() - activity = self._shell.get_current_activity() - if activity != None: - activity_ps = pservice.get_activity(activity.get_id()) + self._invite_menu = MenuItem(_('Invite'), 'stock-invite') + self._invite_menu.connect('activate', self._invite_friend_cb) + self.menu.append(self._invite_menu) + self._invite_menu.show() - # FIXME check that the buddy is not in the activity already + home_model = shell_model.get_home() + home_model.connect('active-activity-changed', + self._cur_activity_changed_cb) - menu_item = MenuItem(_('Invite'), 'stock-invite') - menu_item.connect('activate', self._invite_friend_cb) - self.menu.append(menu_item) - menu_item.show() + def _cur_activity_changed_cb(self, home_model, activity_model): + if activity_model is not None: + self._invite_menu.show() + else: + self._invite_menu.hide() def _buddy_icon_changed_cb(self, buddy): pass