Join gc menu in systray. Fixes #690.
Should I move add_bookmarks_list() in another file ?
This commit is contained in:
parent
73bdf4900d
commit
ce2269e73f
3 changed files with 43 additions and 5 deletions
|
@ -10838,6 +10838,26 @@ Custom</property>
|
||||||
</widget>
|
</widget>
|
||||||
</child>
|
</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>
|
<child>
|
||||||
<widget class="GtkImageMenuItem" id="chat_with_menuitem">
|
<widget class="GtkImageMenuItem" id="chat_with_menuitem">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
|
|
|
@ -700,7 +700,7 @@ class RosterWindow:
|
||||||
gc_item.connect('state-changed', self.on_bm_header_changed_state)
|
gc_item.connect('state-changed', self.on_bm_header_changed_state)
|
||||||
gc_sub_menu.append(gc_item)
|
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
|
# the 'manage gc bookmarks' item is showed
|
||||||
# below to avoid duplicate code
|
# below to avoid duplicate code
|
||||||
|
@ -742,7 +742,7 @@ class RosterWindow:
|
||||||
for account in gajim.connections:
|
for account in gajim.connections:
|
||||||
if gajim.connections[account].connected > 1: # THE connected account
|
if gajim.connections[account].connected > 1: # THE connected account
|
||||||
# gc
|
# gc
|
||||||
self._add_bookmarks_list(gc_sub_menu, account)
|
self.add_bookmarks_list(gc_sub_menu, account)
|
||||||
# add
|
# add
|
||||||
if not self.add_new_contact_handler_id:
|
if not self.add_new_contact_handler_id:
|
||||||
self.add_new_contact_handler_id =\
|
self.add_new_contact_handler_id =\
|
||||||
|
@ -841,7 +841,7 @@ class RosterWindow:
|
||||||
menu.append(item)
|
menu.append(item)
|
||||||
item.connect('activate', self.on_history_manager_menuitem_activate)
|
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'''
|
'''Print join new room item and bookmarks list for an account'''
|
||||||
item = gtk.MenuItem(_('_Join New Room'))
|
item = gtk.MenuItem(_('_Join New Room'))
|
||||||
item.connect('activate', self.on_join_gc_activate, account)
|
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
|
gc_sub_menu = gtk.Menu() # gc is always a submenu
|
||||||
join_group_chat_menuitem.set_submenu(gc_sub_menu)
|
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',
|
new_message_menuitem.connect('activate',
|
||||||
self.on_new_message_menuitem_activate, account)
|
self.on_new_message_menuitem_activate, account)
|
||||||
|
|
||||||
|
|
|
@ -121,6 +121,7 @@ class Systray:
|
||||||
chat_with_menuitem = self.xml.get_widget('chat_with_menuitem')
|
chat_with_menuitem = self.xml.get_widget('chat_with_menuitem')
|
||||||
single_message_menuitem = self.xml.get_widget('single_message_menuitem')
|
single_message_menuitem = self.xml.get_widget('single_message_menuitem')
|
||||||
status_menuitem = self.xml.get_widget('status_menu')
|
status_menuitem = self.xml.get_widget('status_menu')
|
||||||
|
join_gc_menuitem = self.xml.get_widget('join_gc_menuitem')
|
||||||
|
|
||||||
if self.single_message_handler_id:
|
if self.single_message_handler_id:
|
||||||
single_message_menuitem.handler_disconnect(
|
single_message_menuitem.handler_disconnect(
|
||||||
|
@ -131,6 +132,9 @@ class Systray:
|
||||||
self.popup_menus.append(sub_menu)
|
self.popup_menus.append(sub_menu)
|
||||||
status_menuitem.set_submenu(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!
|
# We need our own set of status icons, let's make 'em!
|
||||||
iconset = gajim.config.get('iconset')
|
iconset = gajim.config.get('iconset')
|
||||||
if not iconset:
|
if not iconset:
|
||||||
|
@ -168,9 +172,10 @@ class Systray:
|
||||||
sub_menu.append(item)
|
sub_menu.append(item)
|
||||||
item.connect('activate', self.on_show_menuitem_activate, 'offline')
|
item.connect('activate', self.on_show_menuitem_activate, 'offline')
|
||||||
|
|
||||||
iskey = len(gajim.connections) > 0
|
iskey = connected_accounts > 0
|
||||||
chat_with_menuitem.set_sensitive(iskey)
|
chat_with_menuitem.set_sensitive(iskey)
|
||||||
single_message_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
|
if connected_accounts >= 2: # 2 or more connections? make submenus
|
||||||
account_menu_for_chat_with = gtk.Menu()
|
account_menu_for_chat_with = gtk.Menu()
|
||||||
|
@ -191,12 +196,22 @@ class Systray:
|
||||||
group_menu = self.make_groups_submenus_for_chat_with(account)
|
group_menu = self.make_groups_submenus_for_chat_with(account)
|
||||||
self.popup_menus.append(group_menu)
|
self.popup_menus.append(group_menu)
|
||||||
item.set_submenu(group_menu)
|
item.set_submenu(group_menu)
|
||||||
|
|
||||||
#for single message
|
#for single message
|
||||||
item = gtk.MenuItem(_('using account %s') % account)
|
item = gtk.MenuItem(_('using account %s') % account)
|
||||||
item.connect('activate',
|
item.connect('activate',
|
||||||
self.on_single_message_menuitem_activate, account)
|
self.on_single_message_menuitem_activate, account)
|
||||||
account_menu_for_single_message.append(item)
|
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
|
elif connected_accounts == 1: # one account
|
||||||
# one account connected, no need to show 'as jid'
|
# one account connected, no need to show 'as jid'
|
||||||
for account in gajim.connections:
|
for account in gajim.connections:
|
||||||
|
@ -211,6 +226,9 @@ class Systray:
|
||||||
self.single_message_handler_id = single_message_menuitem.connect(
|
self.single_message_handler_id = single_message_menuitem.connect(
|
||||||
'activate', self.on_single_message_menuitem_activate, account)
|
'activate', self.on_single_message_menuitem_activate, account)
|
||||||
|
|
||||||
|
# join gc
|
||||||
|
gajim.interface.roster.add_bookmarks_list(gc_sub_menu, account)
|
||||||
|
|
||||||
if event is None:
|
if event is None:
|
||||||
# None means windows (we explicitly popup in systraywin32.py)
|
# None means windows (we explicitly popup in systraywin32.py)
|
||||||
if self.added_hide_menuitem is False:
|
if self.added_hide_menuitem is False:
|
||||||
|
|
Loading…
Add table
Reference in a new issue