ability to show / hide roster from statusicon menu. Fixes #5557

This commit is contained in:
Yann Leboulanger 2010-02-09 19:36:32 +01:00
parent abb846f883
commit 062caecfc8
2 changed files with 15 additions and 2 deletions

View File

@ -66,13 +66,11 @@
</child>
<child>
<object class="GtkImageMenuItem" id="show_roster_menuitem">
<property name="label">Show _Roster</property>
<property name="visible">True</property>
<property name="use_underline">True</property>
<property name="image">image5</property>
<property name="use_stock">False</property>
<property name="accel_group">accelgroup1</property>
<signal name="activate" handler="on_show_roster_menuitem_activate"/>
</object>
</child>
<child>

View File

@ -172,6 +172,7 @@ class StatusIcon:
status_menuitem = self.xml.get_object('status_menu')
join_gc_menuitem = self.xml.get_object('join_gc_menuitem')
sounds_mute_menuitem = self.xml.get_object('sounds_mute_menuitem')
show_roster_menuitem = self.xml.get_object('show_roster_menuitem')
if self.single_message_handler_id:
single_message_menuitem.handler_disconnect(
@ -316,6 +317,16 @@ class StatusIcon:
sounds_mute_menuitem.set_active(not gajim.config.get('sounds_on'))
win = gajim.interface.roster.window
if win.get_property('has-toplevel-focus'):
show_roster_menuitem.get_children()[0].set_label(_('Hide _Roster'))
show_roster_menuitem.connect('activate',
self.on_hide_roster_menuitem_activate)
else:
show_roster_menuitem.get_children()[0].set_label(_('Show _Roster'))
show_roster_menuitem.connect('activate',
self.on_show_roster_menuitem_activate)
if os.name == 'nt':
if self.added_hide_menuitem is False:
self.systray_context_menu.prepend(gtk.SeparatorMenuItem())
@ -342,6 +353,10 @@ class StatusIcon:
win = gajim.interface.roster.window
win.present()
def on_hide_roster_menuitem_activate(self, widget):
win = gajim.interface.roster.window
win.hide()
def on_preferences_menuitem_activate(self, widget):
if 'preferences' in gajim.interface.instances:
gajim.interface.instances['preferences'].window.present()