changeset 6ac29ff1c8f0 in /home/hg/repos/gajim

details:http://hg.gajim.org/gajim?cmd=changeset;node=6ac29ff1c8f0
description: ability to invite a room occupant to another room if we know his 
real JID directly from the groupchat contact menu. Fixes #4443

diffstat:

 data/gui/gc_occupants_menu.ui |  13 +++++++++++++
 src/groupchat_control.py      |  10 ++++++++++
 src/gui_menu_builder.py       |   4 +++-
 3 files changed, 26 insertions(+), 1 deletions(-)

diffs (69 lines):

diff -r 70779aa6f414 -r 6ac29ff1c8f0 data/gui/gc_occupants_menu.ui
--- a/data/gui/gc_occupants_menu.ui     Tue Mar 29 18:33:04 2011 +0400
+++ b/data/gui/gc_occupants_menu.ui     Wed Mar 30 15:23:10 2011 +0200
@@ -95,6 +95,15 @@
       </object>
     </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>
       <object class="GtkSeparatorMenuItem" id="separator6">
         <property name="visible">True</property>
       </object>
@@ -185,4 +194,8 @@
     <property name="stock">gtk-justify-fill</property>
     <property name="icon-size">1</property>
   </object>
+  <object class="GtkImage" id="image7">
+    <property name="visible">True</property>
+    <property name="stock">gtk-missing-image</property>
+  </object>
 </interface>
diff -r 70779aa6f414 -r 6ac29ff1c8f0 src/groupchat_control.py
--- a/src/groupchat_control.py  Tue Mar 29 18:33:04 2011 +0400
+++ b/src/groupchat_control.py  Wed Mar 30 15:23:10 2011 +0200
@@ -2336,6 +2336,16 @@
             jid)
         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')
         id_ = item.connect('activate', self.on_info, nick)
         self.handlers[id_] = item
diff -r 70779aa6f414 -r 6ac29ff1c8f0 src/gui_menu_builder.py
--- a/src/gui_menu_builder.py   Tue Mar 29 18:33:04 2011 +0400
+++ b/src/gui_menu_builder.py   Wed Mar 30 15:23:10 2011 +0200
@@ -62,7 +62,7 @@
 
     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)
     """
@@ -126,6 +126,8 @@
     message_control.TYPE_GC) + minimized_controls:
         acct = gc_control.account
         room_jid = gc_control.room_jid
+        if room_jid in ignore_rooms:
+            continue
         if room_jid in gajim.gc_connected[acct] and \
         gajim.gc_connected[acct][room_jid] and \
         contacts_transport == gajim.get_transport_name_from_jid(room_jid):
_______________________________________________
Commits mailing list
[email protected]
http://lists.gajim.org/cgi-bin/listinfo/commits

Reply via email to