Join gc menu in systray. Fixes #690.

Should I move add_bookmarks_list() in another file ?
This commit is contained in:
Jean-Marie Traissard 2006-04-09 11:13:39 +00:00
parent 73bdf4900d
commit ce2269e73f
3 changed files with 43 additions and 5 deletions

View File

@ -10837,6 +10837,26 @@ Custom</property>
</child>
</widget>
</child>
<child>
<widget class="GtkImageMenuItem" id="join_gc_menuitem">
<property name="visible">True</property>
<property name="label" translatable="yes">_Group Chat</property>
<property name="use_underline">True</property>
<child internal-child="image">
<widget class="GtkImage" id="image1445">
<property name="visible">True</property>
<property name="stock">gtk-connect</property>
<property name="icon_size">1</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
</widget>
</child>
</widget>
</child>
<child>
<widget class="GtkImageMenuItem" id="chat_with_menuitem">

View File

@ -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)

View File

@ -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('<u>' + account.upper() +'</u>')
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: