From ce2269e73fa5c2491253351085b3203ceb2c40a7 Mon Sep 17 00:00:00 2001 From: Jean-Marie Traissard Date: Sun, 9 Apr 2006 11:13:39 +0000 Subject: [PATCH] Join gc menu in systray. Fixes #690. Should I move add_bookmarks_list() in another file ? --- src/gtkgui.glade | 20 ++++++++++++++++++++ src/roster_window.py | 8 ++++---- src/systray.py | 20 +++++++++++++++++++- 3 files changed, 43 insertions(+), 5 deletions(-) diff --git a/src/gtkgui.glade b/src/gtkgui.glade index faaa3e745..7d321682b 100644 --- a/src/gtkgui.glade +++ b/src/gtkgui.glade @@ -10837,6 +10837,26 @@ Custom + + + + True + _Group Chat + True + + + + True + gtk-connect + 1 + 0.5 + 0.5 + 0 + 0 + + + + diff --git a/src/roster_window.py b/src/roster_window.py index 5840d2dc3..1cddf51cd 100644 --- a/src/roster_window.py +++ b/src/roster_window.py @@ -700,7 +700,7 @@ class RosterWindow: gc_item.connect('state-changed', self.on_bm_header_changed_state) gc_sub_menu.append(gc_item) - self._add_bookmarks_list(gc_sub_menu, account) + self.add_bookmarks_list(gc_sub_menu, account) # the 'manage gc bookmarks' item is showed # below to avoid duplicate code @@ -742,7 +742,7 @@ class RosterWindow: for account in gajim.connections: if gajim.connections[account].connected > 1: # THE connected account # gc - self._add_bookmarks_list(gc_sub_menu, account) + self.add_bookmarks_list(gc_sub_menu, account) # add if not self.add_new_contact_handler_id: self.add_new_contact_handler_id =\ @@ -841,7 +841,7 @@ class RosterWindow: menu.append(item) item.connect('activate', self.on_history_manager_menuitem_activate) - def _add_bookmarks_list(self, gc_sub_menu, account): + def add_bookmarks_list(self, gc_sub_menu, account): '''Print join new room item and bookmarks list for an account''' item = gtk.MenuItem(_('_Join New Room')) item.connect('activate', self.on_join_gc_activate, account) @@ -1547,7 +1547,7 @@ class RosterWindow: gc_sub_menu = gtk.Menu() # gc is always a submenu join_group_chat_menuitem.set_submenu(gc_sub_menu) - self._add_bookmarks_list(gc_sub_menu, account) + self.add_bookmarks_list(gc_sub_menu, account) new_message_menuitem.connect('activate', self.on_new_message_menuitem_activate, account) diff --git a/src/systray.py b/src/systray.py index 4eb1f2b76..bbac419d4 100644 --- a/src/systray.py +++ b/src/systray.py @@ -121,6 +121,7 @@ class Systray: chat_with_menuitem = self.xml.get_widget('chat_with_menuitem') single_message_menuitem = self.xml.get_widget('single_message_menuitem') status_menuitem = self.xml.get_widget('status_menu') + join_gc_menuitem = self.xml.get_widget('join_gc_menuitem') if self.single_message_handler_id: single_message_menuitem.handler_disconnect( @@ -130,6 +131,9 @@ class Systray: sub_menu = gtk.Menu() self.popup_menus.append(sub_menu) status_menuitem.set_submenu(sub_menu) + + gc_sub_menu = gtk.Menu() # gc is always a submenu + join_gc_menuitem.set_submenu(gc_sub_menu) # We need our own set of status icons, let's make 'em! iconset = gajim.config.get('iconset') @@ -168,9 +172,10 @@ class Systray: sub_menu.append(item) item.connect('activate', self.on_show_menuitem_activate, 'offline') - iskey = len(gajim.connections) > 0 + iskey = connected_accounts > 0 chat_with_menuitem.set_sensitive(iskey) single_message_menuitem.set_sensitive(iskey) + join_gc_menuitem.set_sensitive(iskey) if connected_accounts >= 2: # 2 or more connections? make submenus account_menu_for_chat_with = gtk.Menu() @@ -191,11 +196,21 @@ class Systray: group_menu = self.make_groups_submenus_for_chat_with(account) self.popup_menus.append(group_menu) item.set_submenu(group_menu) + #for single message item = gtk.MenuItem(_('using account %s') % account) item.connect('activate', self.on_single_message_menuitem_activate, account) account_menu_for_single_message.append(item) + + # join gc + label = gtk.Label() + label.set_markup('' + account.upper() +'') + label.set_use_underline(False) + gc_item = gtk.MenuItem() + gc_item.add(label) + gc_sub_menu.append(gc_item) + gajim.interface.roster.add_bookmarks_list(gc_sub_menu, account) elif connected_accounts == 1: # one account # one account connected, no need to show 'as jid' @@ -211,6 +226,9 @@ class Systray: self.single_message_handler_id = single_message_menuitem.connect( 'activate', self.on_single_message_menuitem_activate, account) + # join gc + gajim.interface.roster.add_bookmarks_list(gc_sub_menu, account) + if event is None: # None means windows (we explicitly popup in systraywin32.py) if self.added_hide_menuitem is False: