Add a Maximize All item in Groupchats group context menu

This commit is contained in:
Julien Pivotto 2007-06-04 21:19:37 +00:00
parent 0c04e296c2
commit 05a4bd99ac
1 changed files with 27 additions and 12 deletions

View File

@ -2446,6 +2446,11 @@ class RosterWindow:
menu.show_all()
menu.popup(None, None, None, event_button, event.time)
def on_all_groupchat_maximized(self, widget, group_list):
for (contact, account) in group_list:
self.on_groupchat_maximized(widget, contact.jid, account)
def on_groupchat_maximized(self, widget, jid, account):
'''When a groupchat is maximised'''
if not gajim.interface.minimized_controls.has_key(account):
@ -2478,8 +2483,30 @@ class RosterWindow:
group = model[iter][C_JID].decode('utf-8')
account = model[iter][C_ACCOUNT].decode('utf-8')
list_ = [] # list of (jid, account) tuples
list_online = [] # list of (jid, account) tuples
group = model[iter][C_JID]
for jid in gajim.contacts.get_jid_list(account):
contact = gajim.contacts.get_contact_with_highest_priority(account,
jid)
if group in contact.groups or (contact.groups == [] and group == \
_('General')):
if contact.show not in ('offline', 'error'):
list_online.append((contact, account))
list_.append((contact, account))
menu = gtk.Menu()
# Make special context menu if group is Groupchats
if group == _('Groupchats'):
maximize_menuitem = gtk.ImageMenuItem(_('_Maximize All'))
icon = gtk.image_new_from_stock(gtk.STOCK_GOTO_TOP, gtk.ICON_SIZE_MENU)
maximize_menuitem.set_image(icon)
maximize_menuitem.connect('activate', self.on_all_groupchat_maximized, \
list_)
menu.append(maximize_menuitem)
# Send Group Message
send_group_message_item = gtk.ImageMenuItem(_('Send Group M_essage'))
icon = gtk.image_new_from_stock(gtk.STOCK_NEW, gtk.ICON_SIZE_MENU)
@ -2494,18 +2521,6 @@ class RosterWindow:
group_message_to_all_online_item = gtk.MenuItem(_('To all online users'))
send_group_message_submenu.append(group_message_to_all_online_item)
list_ = [] # list of (jid, account) tuples
list_online = [] # list of (jid, account) tuples
group = model[iter][C_JID]
for jid in gajim.contacts.get_jid_list(account):
contact = gajim.contacts.get_contact_with_highest_priority(account,
jid)
if group in contact.groups or (contact.groups == [] and group == \
_('General')):
if contact.show not in ('offline', 'error'):
list_online.append((contact, account))
list_.append((contact, account))
group_message_to_all_online_item.connect('activate',
self.on_send_single_message_menuitem_activate, account, list_online)