ability to invite a room occupant to another room if we know his real JID directly from the groupchat contact menu. Fixes #4443
This commit is contained in:
parent
6601411498
commit
eb83680786
3 changed files with 26 additions and 1 deletions
|
@ -94,6 +94,15 @@
|
||||||
</child>
|
</child>
|
||||||
</object>
|
</object>
|
||||||
</child>
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkImageMenuItem" id="invite_menuitem">
|
||||||
|
<property name="label" translatable="yes">In_vite to</property>
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="use_underline">True</property>
|
||||||
|
<property name="image">image7</property>
|
||||||
|
<property name="use_stock">False</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkSeparatorMenuItem" id="separator6">
|
<object class="GtkSeparatorMenuItem" id="separator6">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
|
@ -185,4 +194,8 @@
|
||||||
<property name="stock">gtk-justify-fill</property>
|
<property name="stock">gtk-justify-fill</property>
|
||||||
<property name="icon-size">1</property>
|
<property name="icon-size">1</property>
|
||||||
</object>
|
</object>
|
||||||
|
<object class="GtkImage" id="image7">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="stock">gtk-missing-image</property>
|
||||||
|
</object>
|
||||||
</interface>
|
</interface>
|
||||||
|
|
|
@ -2336,6 +2336,16 @@ class GroupchatControl(ChatControlBase):
|
||||||
jid)
|
jid)
|
||||||
self.handlers[id_] = item
|
self.handlers[id_] = item
|
||||||
|
|
||||||
|
item = xml.get_object('invite_menuitem')
|
||||||
|
muc_icon = gtkgui_helpers.load_icon('muc_active')
|
||||||
|
if muc_icon:
|
||||||
|
item.set_image(muc_icon)
|
||||||
|
if c.jid and c.name != self.nick:
|
||||||
|
gui_menu_builder.build_invite_submenu(item, ((c, self.account),),
|
||||||
|
ignore_rooms=[self.room_jid])
|
||||||
|
else:
|
||||||
|
item.set_sensitive(False)
|
||||||
|
|
||||||
item = xml.get_object('information_menuitem')
|
item = xml.get_object('information_menuitem')
|
||||||
id_ = item.connect('activate', self.on_info, nick)
|
id_ = item.connect('activate', self.on_info, nick)
|
||||||
self.handlers[id_] = item
|
self.handlers[id_] = item
|
||||||
|
|
|
@ -62,7 +62,7 @@ def build_resources_submenu(contacts, account, action, room_jid=None,
|
||||||
|
|
||||||
return sub_menu
|
return sub_menu
|
||||||
|
|
||||||
def build_invite_submenu(invite_menuitem, list_):
|
def build_invite_submenu(invite_menuitem, list_, ignore_rooms=[]):
|
||||||
"""
|
"""
|
||||||
list_ in a list of (contact, account)
|
list_ in a list of (contact, account)
|
||||||
"""
|
"""
|
||||||
|
@ -126,6 +126,8 @@ def build_invite_submenu(invite_menuitem, list_):
|
||||||
message_control.TYPE_GC) + minimized_controls:
|
message_control.TYPE_GC) + minimized_controls:
|
||||||
acct = gc_control.account
|
acct = gc_control.account
|
||||||
room_jid = gc_control.room_jid
|
room_jid = gc_control.room_jid
|
||||||
|
if room_jid in ignore_rooms:
|
||||||
|
continue
|
||||||
if room_jid in gajim.gc_connected[acct] and \
|
if room_jid in gajim.gc_connected[acct] and \
|
||||||
gajim.gc_connected[acct][room_jid] and \
|
gajim.gc_connected[acct][room_jid] and \
|
||||||
contacts_transport == gajim.get_transport_name_from_jid(room_jid):
|
contacts_transport == gajim.get_transport_name_from_jid(room_jid):
|
||||||
|
|
Loading…
Add table
Reference in a new issue