merge roster_contact_context_menu.glade, chat_control_popup_menu.glade and zeroconf_contact_context_menu.glade

This commit is contained in:
Yann Leboulanger 2009-10-27 18:58:27 +01:00
parent 134eb7f83a
commit 5a51f09491
5 changed files with 224 additions and 495 deletions

View File

@ -1,103 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE glade-interface SYSTEM "glade-2.0.dtd">
<!--*- mode: xml -*-->
<glade-interface>
<widget class="GtkMenu" id="chat_control_popup_menu">
<child>
<widget class="GtkImageMenuItem" id="add_to_roster_menuitem">
<property name="no_show_all">True</property>
<property name="label" translatable="yes">_Add to Roster</property>
<property name="use_underline">True</property>
<signal name="activate" handler="_on_add_to_roster_menuitem_activate"/>
<child internal-child="image">
<widget class="GtkImage" id="image1372">
<property name="visible">True</property>
<property name="stock">gtk-add</property>
<property name="icon_size">1</property>
</widget>
</child>
</widget>
</child>
<child>
<widget class="GtkImageMenuItem" id="send_file_menuitem">
<property name="no_show_all">True</property>
<property name="label" translatable="yes">Send _File</property>
<property name="use_underline">True</property>
<signal name="activate" handler="_on_send_file_menuitem_activate"/>
<child internal-child="image">
<widget class="GtkImage" id="image1371">
<property name="visible">True</property>
<property name="stock">gtk-save</property>
<property name="icon_size">1</property>
</widget>
</child>
</widget>
</child>
<child>
<widget class="GtkImageMenuItem" id="convert_to_groupchat">
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="no_show_all">True</property>
<property name="label" translatable="yes">Invite _Contacts</property>
<property name="use_underline">True</property>
<child internal-child="image">
<widget class="GtkImage" id="menu-item-image4">
<property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="stock">gtk-missing-image</property>
</widget>
</child>
</widget>
</child>
<child>
<widget class="GtkSeparatorMenuItem" id="separatormenuitem2">
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="no_show_all">True</property>
</widget>
</child>
<child>
<widget class="GtkCheckMenuItem" id="toggle_gpg_menuitem">
<property name="visible">True</property>
<property name="label" translatable="yes">Toggle Open_PGP Encryption</property>
<property name="use_underline">True</property>
<signal name="activate" handler="_on_toggle_gpg_menuitem_activate"/>
</widget>
</child>
<child>
<widget class="GtkCheckMenuItem" id="toggle_e2e_menuitem">
<property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="label" translatable="yes">Toggle End to End Encryption</property>
<property name="use_underline">True</property>
<signal name="activate" handler="_on_toggle_e2e_menuitem_activate"/>
</widget>
</child>
<child>
<widget class="GtkSeparatorMenuItem" id="separatormenuitem1">
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="no_show_all">True</property>
</widget>
</child>
<child>
<widget class="GtkImageMenuItem" id="information_menuitem">
<property name="no_show_all">True</property>
<property name="label">gtk-info</property>
<property name="use_underline">True</property>
<property name="use_stock">True</property>
</widget>
</child>
<child>
<widget class="GtkImageMenuItem" id="history_menuitem">
<property name="no_show_all">True</property>
<property name="label" translatable="yes">_History</property>
<property name="use_underline">True</property>
<child internal-child="image">
<widget class="GtkImage" id="image1370">
<property name="visible">True</property>
<property name="stock">gtk-justify-fill</property>
<property name="icon_size">1</property>
</widget>
</child>
</widget>
</child>
</widget>
</glade-interface>

View File

@ -1,102 +1,150 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <?xml version="1.0"?>
<!DOCTYPE glade-interface SYSTEM "glade-2.0.dtd">
<!--*- mode: xml -*-->
<glade-interface> <glade-interface>
<!-- interface-requires gtk+ 2.16 -->
<!-- interface-naming-policy toplevel-contextual -->
<widget class="GtkMenu" id="roster_contact_context_menu"> <widget class="GtkMenu" id="roster_contact_context_menu">
<child> <child>
<widget class="GtkImageMenuItem" id="start_chat_menuitem"> <widget class="GtkImageMenuItem" id="start_chat_menuitem">
<property name="visible">True</property>
<property name="label" translatable="yes">Start _Chat</property> <property name="label" translatable="yes">Start _Chat</property>
<property name="visible">True</property>
<property name="use_underline">True</property> <property name="use_underline">True</property>
<property name="use_stock">False</property>
<child internal-child="image"> <child internal-child="image">
<widget class="GtkImage" id="image1701"> <widget class="GtkImage" id="image2">
<property name="visible">True</property> <property name="visible">True</property>
<property name="stock">gtk-jump-to</property> <property name="stock">gtk-jump-to</property>
<property name="icon_size">1</property> <property name="icon-size">1</property>
</widget> </widget>
</child> </child>
</widget> </widget>
</child> </child>
<child> <child>
<widget class="GtkImageMenuItem" id="send_single_message_menuitem"> <widget class="GtkImageMenuItem" id="send_single_message_menuitem">
<property name="visible">True</property>
<property name="label" translatable="yes">Send Single _Message...</property> <property name="label" translatable="yes">Send Single _Message...</property>
<property name="visible">True</property>
<property name="use_underline">True</property> <property name="use_underline">True</property>
<property name="use_stock">False</property>
<child internal-child="image"> <child internal-child="image">
<widget class="GtkImage" id="image1703"> <widget class="GtkImage" id="image3">
<property name="visible">True</property> <property name="visible">True</property>
<property name="stock">gtk-new</property> <property name="stock">gtk-new</property>
<property name="icon_size">1</property> <property name="icon-size">1</property>
</widget> </widget>
</child> </child>
</widget> </widget>
</child> </child>
<child> <child>
<widget class="GtkImageMenuItem" id="send_file_menuitem"> <widget class="GtkImageMenuItem" id="send_file_menuitem">
<property name="visible">True</property>
<property name="label" translatable="yes">Send _File...</property> <property name="label" translatable="yes">Send _File...</property>
<property name="visible">True</property>
<property name="use_underline">True</property> <property name="use_underline">True</property>
<property name="use_stock">False</property>
<child internal-child="image"> <child internal-child="image">
<widget class="GtkImage" id="image1706"> <widget class="GtkImage" id="image4">
<property name="visible">True</property> <property name="visible">True</property>
<property name="stock">gtk-save</property> <property name="stock">gtk-save</property>
<property name="icon_size">1</property> <property name="icon-size">1</property>
</widget> </widget>
</child> </child>
</widget> </widget>
</child> </child>
<child> <child>
<widget class="GtkImageMenuItem" id="invite_menuitem"> <widget class="GtkImageMenuItem" id="invite_menuitem">
<property name="visible">True</property>
<property name="label" translatable="yes">In_vite to</property> <property name="label" translatable="yes">In_vite to</property>
<property name="visible">True</property>
<property name="use_underline">True</property> <property name="use_underline">True</property>
<property name="use_stock">False</property>
<child internal-child="image"> <child internal-child="image">
<widget class="GtkImage" id="image1704"> <widget class="GtkImage" id="image5">
<property name="visible">True</property> <property name="visible">True</property>
<property name="stock">gtk-go-back</property> <property name="stock">gtk-missing-image</property>
<property name="icon_size">1</property> <property name="icon-size">1</property>
</widget> </widget>
</child> </child>
</widget> </widget>
</child> </child>
<child> <child>
<widget class="GtkSeparatorMenuItem" id="above_send_file_separator"> <widget class="GtkImageMenuItem" id="convert_to_groupchat_menuitem">
<property name="label" translatable="yes">Invite _Contacts</property>
<property name="visible">True</property>
<property name="use_underline">True</property>
<property name="use_stock">False</property>
<child internal-child="image">
<widget class="GtkImage" id="image1">
<property name="visible">True</property>
<property name="stock">gtk-missing-image</property>
<property name="icon-size">1</property>
</widget>
</child>
</widget>
</child>
<child>
<widget class="GtkSeparatorMenuItem" id="encryption_separator">
<property name="visible">True</property>
</widget>
</child>
<child>
<widget class="GtkCheckMenuItem" id="toggle_gpg_menuitem">
<property name="visible">True</property>
<property name="label" translatable="yes">Toggle Open_PGP Encryption</property>
<property name="use_underline">True</property>
</widget>
</child>
<child>
<widget class="GtkCheckMenuItem" id="toggle_e2e_menuitem">
<property name="visible">True</property>
<property name="label" translatable="yes">Toggle End to End Encryption</property>
<property name="use_underline">True</property>
</widget>
</child>
<child>
<widget class="GtkSeparatorMenuItem" id="menuitem3">
<property name="visible">True</property> <property name="visible">True</property>
</widget> </widget>
</child> </child>
<child> <child>
<widget class="GtkImageMenuItem" id="send_custom_status_menuitem"> <widget class="GtkImageMenuItem" id="send_custom_status_menuitem">
<property name="visible">True</property>
<property name="label" translatable="yes">Send Cus_tom Status</property> <property name="label" translatable="yes">Send Cus_tom Status</property>
<property name="visible">True</property>
<property name="use_underline">True</property> <property name="use_underline">True</property>
<property name="use_stock">False</property>
<child> <child>
<widget class="GtkMenu" id="menu5"> <widget class="GtkMenu" id="menu5">
<property name="visible">True</property> <property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
</widget> </widget>
</child> </child>
<child internal-child="image">
<widget class="GtkImage" id="image6">
<property name="visible">True</property>
<property name="stock">gtk-missing-image</property>
<property name="icon-size">1</property>
</widget>
</child>
</widget> </widget>
</child> </child>
<child> <child>
<widget class="GtkImageMenuItem" id="execute_command_menuitem"> <widget class="GtkImageMenuItem" id="execute_command_menuitem">
<property name="label" translatable="yes">E_xecute Command...</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="label" translatable="yes">Execute Command...</property>
<property name="use_underline">True</property> <property name="use_underline">True</property>
<property name="use_stock">False</property>
<child internal-child="image"> <child internal-child="image">
<widget class="GtkImage" id="image1709"> <widget class="GtkImage" id="image7">
<property name="visible">True</property> <property name="visible">True</property>
<property name="stock">gtk-execute</property> <property name="stock">gtk-execute</property>
<property name="icon_size">1</property> <property name="icon-size">1</property>
</widget> </widget>
</child> </child>
</widget> </widget>
</child> </child>
<child> <child>
<widget class="GtkImageMenuItem" id="manage_contact"> <widget class="GtkImageMenuItem" id="manage_contact">
<property name="label" translatable="yes">_Manage Contact</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="label" translatable="yes">_Manage Contact</property>
<property name="use_underline">True</property> <property name="use_underline">True</property>
<property name="use_stock">False</property>
<child> <child>
<widget class="GtkMenu" id="menu2"> <widget class="GtkMenu" id="menu2">
<property name="visible">True</property> <property name="visible">True</property>
@ -105,11 +153,12 @@
<widget class="GtkImageMenuItem" id="rename_menuitem"> <widget class="GtkImageMenuItem" id="rename_menuitem">
<property name="label" translatable="yes">_Rename...</property> <property name="label" translatable="yes">_Rename...</property>
<property name="use_underline">True</property> <property name="use_underline">True</property>
<property name="use_stock">False</property>
<child internal-child="image"> <child internal-child="image">
<widget class="GtkImage" id="image1705"> <widget class="GtkImage" id="image9">
<property name="visible">True</property> <property name="visible">True</property>
<property name="stock">gtk-refresh</property> <property name="stock">gtk-refresh</property>
<property name="icon_size">1</property> <property name="icon-size">1</property>
</widget> </widget>
</child> </child>
</widget> </widget>
@ -118,12 +167,12 @@
<widget class="GtkImageMenuItem" id="edit_groups_menuitem"> <widget class="GtkImageMenuItem" id="edit_groups_menuitem">
<property name="label" translatable="yes">Edit _Groups...</property> <property name="label" translatable="yes">Edit _Groups...</property>
<property name="use_underline">True</property> <property name="use_underline">True</property>
<property name="use_stock">False</property>
<child internal-child="image"> <child internal-child="image">
<widget class="GtkImage" id="menu-item-image21"> <widget class="GtkImage" id="image10">
<property name="visible">True</property> <property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="stock">gtk-edit</property> <property name="stock">gtk-edit</property>
<property name="icon_size">1</property> <property name="icon-size">1</property>
</widget> </widget>
</child> </child>
</widget> </widget>
@ -132,42 +181,44 @@
<widget class="GtkImageMenuItem" id="assign_openpgp_key_menuitem"> <widget class="GtkImageMenuItem" id="assign_openpgp_key_menuitem">
<property name="label" translatable="yes">Assign Open_PGP Key...</property> <property name="label" translatable="yes">Assign Open_PGP Key...</property>
<property name="use_underline">True</property> <property name="use_underline">True</property>
<property name="use_stock">False</property>
<signal name="activate" handler="on_assign_openpgp_key_menuitem_activate"/> <signal name="activate" handler="on_assign_openpgp_key_menuitem_activate"/>
<child internal-child="image"> <child internal-child="image">
<widget class="GtkImage" id="image1707"> <widget class="GtkImage" id="image11">
<property name="visible">True</property> <property name="visible">True</property>
<property name="stock">gtk-dialog-authentication</property> <property name="stock">gtk-dialog-authentication</property>
<property name="icon_size">1</property> <property name="icon-size">1</property>
</widget> </widget>
</child> </child>
</widget> </widget>
</child> </child>
<child> <child>
<widget class="GtkImageMenuItem" id="set_custom_avatar_menuitem"> <widget class="GtkImageMenuItem" id="set_custom_avatar_menuitem">
<property name="label" translatable="yes">Set Custom _Avatar...</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="label" translatable="yes">Set Custom _Avatar...</property>
<property name="use_underline">True</property> <property name="use_underline">True</property>
<property name="use_stock">False</property>
<child internal-child="image"> <child internal-child="image">
<widget class="GtkImage" id="menu-item-image20"> <widget class="GtkImage" id="image12">
<property name="visible">True</property> <property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="stock">gtk-orientation-portrait</property> <property name="stock">gtk-orientation-portrait</property>
<property name="icon_size">1</property> <property name="icon-size">1</property>
</widget> </widget>
</child> </child>
</widget> </widget>
</child> </child>
<child> <child>
<widget class="GtkImageMenuItem" id="add_special_notification_menuitem"> <widget class="GtkImageMenuItem" id="add_special_notification_menuitem">
<property name="no_show_all">True</property>
<property name="label" translatable="yes">Add Special _Notification...</property> <property name="label" translatable="yes">Add Special _Notification...</property>
<property name="no_show_all">True</property>
<property name="use_underline">True</property> <property name="use_underline">True</property>
<property name="use_stock">False</property>
<child internal-child="image"> <child internal-child="image">
<widget class="GtkImage" id="image1708"> <widget class="GtkImage" id="image13">
<property name="visible">True</property> <property name="visible">True</property>
<property name="stock">gtk-info</property> <property name="stock">gtk-info</property>
<property name="icon_size">1</property> <property name="icon-size">1</property>
</widget> </widget>
</child> </child>
</widget> </widget>
@ -182,46 +233,50 @@
<widget class="GtkImageMenuItem" id="subscription_menuitem"> <widget class="GtkImageMenuItem" id="subscription_menuitem">
<property name="label" translatable="yes">_Subscription</property> <property name="label" translatable="yes">_Subscription</property>
<property name="use_underline">True</property> <property name="use_underline">True</property>
<property name="use_stock">False</property>
<child> <child>
<widget class="GtkMenu" id="subscription_menuitem_menu"> <widget class="GtkMenu" id="subscription_menuitem_menu">
<child> <child>
<widget class="GtkImageMenuItem" id="resend_authorization_to_menuitem"> <widget class="GtkImageMenuItem" id="resend_authorization_to_menuitem">
<property name="visible">True</property>
<property name="label" translatable="yes">_Allow him/her to see my status</property> <property name="label" translatable="yes">_Allow him/her to see my status</property>
<property name="visible">True</property>
<property name="use_underline">True</property> <property name="use_underline">True</property>
<property name="use_stock">False</property>
<child internal-child="image"> <child internal-child="image">
<widget class="GtkImage" id="image1711"> <widget class="GtkImage" id="image15">
<property name="visible">True</property> <property name="visible">True</property>
<property name="stock">gtk-go-up</property> <property name="stock">gtk-go-up</property>
<property name="icon_size">1</property> <property name="icon-size">1</property>
</widget> </widget>
</child> </child>
</widget> </widget>
</child> </child>
<child> <child>
<widget class="GtkImageMenuItem" id="rerequest_authorization_from_menuitem"> <widget class="GtkImageMenuItem" id="rerequest_authorization_from_menuitem">
<property name="visible">True</property>
<property name="label" translatable="yes">A_sk to see his/her status</property> <property name="label" translatable="yes">A_sk to see his/her status</property>
<property name="visible">True</property>
<property name="use_underline">True</property> <property name="use_underline">True</property>
<property name="use_stock">False</property>
<child internal-child="image"> <child internal-child="image">
<widget class="GtkImage" id="image1712"> <widget class="GtkImage" id="image16">
<property name="visible">True</property> <property name="visible">True</property>
<property name="stock">gtk-go-down</property> <property name="stock">gtk-go-down</property>
<property name="icon_size">1</property> <property name="icon-size">1</property>
</widget> </widget>
</child> </child>
</widget> </widget>
</child> </child>
<child> <child>
<widget class="GtkImageMenuItem" id="forbid_him/her_to_see_my_status1"> <widget class="GtkImageMenuItem" id="forbid_him/her_to_see_my_status1">
<property name="visible">True</property>
<property name="label" translatable="yes">_Forbid him/her to see my status</property> <property name="label" translatable="yes">_Forbid him/her to see my status</property>
<property name="visible">True</property>
<property name="use_underline">True</property> <property name="use_underline">True</property>
<property name="use_stock">False</property>
<child internal-child="image"> <child internal-child="image">
<widget class="GtkImage" id="image1713"> <widget class="GtkImage" id="image17">
<property name="visible">True</property> <property name="visible">True</property>
<property name="stock">gtk-stop</property> <property name="stock">gtk-stop</property>
<property name="icon_size">1</property> <property name="icon-size">1</property>
</widget> </widget>
</child> </child>
</widget> </widget>
@ -229,66 +284,70 @@
</widget> </widget>
</child> </child>
<child internal-child="image"> <child internal-child="image">
<widget class="GtkImage" id="image1710"> <widget class="GtkImage" id="image14">
<property name="visible">True</property> <property name="visible">True</property>
<property name="stock">gtk-dialog-question</property> <property name="stock">gtk-dialog-question</property>
<property name="icon_size">1</property> <property name="icon-size">1</property>
</widget> </widget>
</child> </child>
</widget> </widget>
</child> </child>
<child> <child>
<widget class="GtkImageMenuItem" id="unblock_menuitem"> <widget class="GtkImageMenuItem" id="unblock_menuitem">
<property name="visible">True</property>
<property name="label" translatable="yes">_Unblock</property> <property name="label" translatable="yes">_Unblock</property>
<property name="visible">True</property>
<property name="use_underline">True</property> <property name="use_underline">True</property>
<property name="use_stock">False</property>
<child internal-child="image"> <child internal-child="image">
<widget class="GtkImage" id="image1715"> <widget class="GtkImage" id="image18">
<property name="visible">True</property> <property name="visible">True</property>
<property name="stock">gtk-stop</property> <property name="stock">gtk-stop</property>
<property name="icon_size">1</property> <property name="icon-size">1</property>
</widget> </widget>
</child> </child>
</widget> </widget>
</child> </child>
<child> <child>
<widget class="GtkImageMenuItem" id="block_menuitem"> <widget class="GtkImageMenuItem" id="block_menuitem">
<property name="visible">True</property>
<property name="label" translatable="yes">_Block</property> <property name="label" translatable="yes">_Block</property>
<property name="visible">True</property>
<property name="use_underline">True</property> <property name="use_underline">True</property>
<property name="use_stock">False</property>
<child internal-child="image"> <child internal-child="image">
<widget class="GtkImage" id="image1714"> <widget class="GtkImage" id="image19">
<property name="visible">True</property> <property name="visible">True</property>
<property name="stock">gtk-stop</property> <property name="stock">gtk-stop</property>
<property name="icon_size">1</property> <property name="icon-size">1</property>
</widget> </widget>
</child> </child>
</widget> </widget>
</child> </child>
<child> <child>
<widget class="GtkImageMenuItem" id="unignore_menuitem"> <widget class="GtkImageMenuItem" id="unignore_menuitem">
<property name="no_show_all">True</property>
<property name="label" translatable="yes">_Unignore</property> <property name="label" translatable="yes">_Unignore</property>
<property name="no_show_all">True</property>
<property name="use_underline">True</property> <property name="use_underline">True</property>
<property name="use_stock">False</property>
<child internal-child="image"> <child internal-child="image">
<widget class="GtkImage" id="menu-item-image22"> <widget class="GtkImage" id="image20">
<property name="visible">True</property> <property name="visible">True</property>
<property name="stock">gtk-stop</property> <property name="stock">gtk-stop</property>
<property name="icon_size">1</property> <property name="icon-size">1</property>
</widget> </widget>
</child> </child>
</widget> </widget>
</child> </child>
<child> <child>
<widget class="GtkImageMenuItem" id="ignore_menuitem"> <widget class="GtkImageMenuItem" id="ignore_menuitem">
<property name="no_show_all">True</property>
<property name="label" translatable="yes">_Ignore</property> <property name="label" translatable="yes">_Ignore</property>
<property name="no_show_all">True</property>
<property name="use_underline">True</property> <property name="use_underline">True</property>
<property name="use_stock">False</property>
<child internal-child="image"> <child internal-child="image">
<widget class="GtkImage" id="menu-item-image23"> <widget class="GtkImage" id="image21">
<property name="visible">True</property> <property name="visible">True</property>
<property name="stock">gtk-stop</property> <property name="stock">gtk-stop</property>
<property name="icon_size">1</property> <property name="icon-size">1</property>
</widget> </widget>
</child> </child>
</widget> </widget>
@ -297,11 +356,12 @@
<widget class="GtkImageMenuItem" id="add_to_roster_menuitem"> <widget class="GtkImageMenuItem" id="add_to_roster_menuitem">
<property name="label" translatable="yes">_Add to Roster...</property> <property name="label" translatable="yes">_Add to Roster...</property>
<property name="use_underline">True</property> <property name="use_underline">True</property>
<property name="use_stock">False</property>
<child internal-child="image"> <child internal-child="image">
<widget class="GtkImage" id="image1716"> <widget class="GtkImage" id="image22">
<property name="visible">True</property> <property name="visible">True</property>
<property name="stock">gtk-add</property> <property name="stock">gtk-add</property>
<property name="icon_size">1</property> <property name="icon-size">1</property>
</widget> </widget>
</child> </child>
</widget> </widget>
@ -310,11 +370,12 @@
<widget class="GtkImageMenuItem" id="remove_from_roster_menuitem"> <widget class="GtkImageMenuItem" id="remove_from_roster_menuitem">
<property name="label" translatable="yes">Remo_ve</property> <property name="label" translatable="yes">Remo_ve</property>
<property name="use_underline">True</property> <property name="use_underline">True</property>
<property name="use_stock">False</property>
<child internal-child="image"> <child internal-child="image">
<widget class="GtkImage" id="image1717"> <widget class="GtkImage" id="image23">
<property name="visible">True</property> <property name="visible">True</property>
<property name="stock">gtk-remove</property> <property name="stock">gtk-remove</property>
<property name="icon_size">1</property> <property name="icon-size">1</property>
</widget> </widget>
</child> </child>
</widget> </widget>
@ -322,17 +383,16 @@
</widget> </widget>
</child> </child>
<child internal-child="image"> <child internal-child="image">
<widget class="GtkImage" id="menu-item-image19"> <widget class="GtkImage" id="image8">
<property name="visible">True</property> <property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="stock">gtk-properties</property> <property name="stock">gtk-properties</property>
<property name="icon_size">1</property> <property name="icon-size">1</property>
</widget> </widget>
</child> </child>
</widget> </widget>
</child> </child>
<child> <child>
<widget class="GtkSeparatorMenuItem" id="separator6"> <widget class="GtkSeparatorMenuItem" id="last_separator">
<property name="visible">True</property> <property name="visible">True</property>
</widget> </widget>
</child> </child>
@ -347,11 +407,12 @@
<widget class="GtkImageMenuItem" id="history_menuitem"> <widget class="GtkImageMenuItem" id="history_menuitem">
<property name="label" translatable="yes">_History</property> <property name="label" translatable="yes">_History</property>
<property name="use_underline">True</property> <property name="use_underline">True</property>
<property name="use_stock">False</property>
<child internal-child="image"> <child internal-child="image">
<widget class="GtkImage" id="image1718"> <widget class="GtkImage" id="image24">
<property name="visible">True</property> <property name="visible">True</property>
<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>
</widget> </widget>
</child> </child>
</widget> </widget>

View File

@ -1,169 +0,0 @@
<?xml version="1.0"?>
<glade-interface>
<!-- interface-requires gtk+ 2.16 -->
<!-- interface-naming-policy toplevel-contextual -->
<widget class="GtkMenu" id="zeroconf_contact_context_menu">
<child>
<widget class="GtkImageMenuItem" id="start_chat_menuitem">
<property name="label">Start _Chat</property>
<property name="visible">True</property>
<property name="use_underline">True</property>
<property name="use_stock">False</property>
<child internal-child="image">
<widget class="GtkImage" id="image9">
<property name="visible">True</property>
<property name="stock">gtk-jump-to</property>
<property name="icon-size">1</property>
</widget>
</child>
</widget>
</child>
<child>
<widget class="GtkImageMenuItem" id="send_file_menuitem">
<property name="label">Send _File</property>
<property name="visible">True</property>
<property name="use_underline">True</property>
<property name="use_stock">False</property>
<child internal-child="image">
<widget class="GtkImage" id="image10">
<property name="visible">True</property>
<property name="stock">gtk-save</property>
<property name="icon-size">1</property>
</widget>
</child>
</widget>
</child>
<child>
<widget class="GtkSeparatorMenuItem" id="above_send_file_separator">
<property name="visible">True</property>
</widget>
</child>
<child>
<widget class="GtkImageMenuItem" id="execute_command_menuitem">
<property name="label" translatable="yes">Execute Command...</property>
<property name="visible">True</property>
<property name="use_stock">False</property>
<child internal-child="image">
<widget class="GtkImage" id="image1">
<property name="visible">True</property>
<property name="stock">gtk-execute</property>
<property name="icon-size">1</property>
</widget>
</child>
</widget>
</child>
<child>
<widget class="GtkImageMenuItem" id="manage_contact">
<property name="label">_Manage Contact</property>
<property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="use_underline">True</property>
<property name="use_stock">False</property>
<child>
<widget class="GtkMenu" id="menu2">
<property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<child>
<widget class="GtkImageMenuItem" id="rename_menuitem">
<property name="label">_Rename</property>
<property name="use_underline">True</property>
<property name="use_stock">False</property>
<child internal-child="image">
<widget class="GtkImage" id="image7">
<property name="visible">True</property>
<property name="stock">gtk-refresh</property>
<property name="icon-size">1</property>
</widget>
</child>
</widget>
</child>
<child>
<widget class="GtkImageMenuItem" id="edit_groups_menuitem">
<property name="label">Edit _Groups</property>
<property name="use_underline">True</property>
<property name="use_stock">False</property>
<child internal-child="image">
<widget class="GtkImage" id="image6">
<property name="visible">True</property>
<property name="stock">gtk-edit</property>
<property name="icon-size">1</property>
</widget>
</child>
</widget>
</child>
<child>
<widget class="GtkImageMenuItem" id="assign_openpgp_key_menuitem">
<property name="label">Assign Open_PGP Key</property>
<property name="use_underline">True</property>
<property name="use_stock">False</property>
<signal name="activate" handler="on_assign_openpgp_key_menuitem_activate"/>
<child internal-child="image">
<widget class="GtkImage" id="image5">
<property name="visible">True</property>
<property name="stock">gtk-dialog-authentication</property>
<property name="icon-size">1</property>
</widget>
</child>
</widget>
</child>
<child>
<widget class="GtkImageMenuItem" id="add_special_notification_menuitem">
<property name="label">Add Special _Notification</property>
<property name="no_show_all">True</property>
<property name="use_underline">True</property>
<property name="use_stock">False</property>
<child internal-child="image">
<widget class="GtkImage" id="image3">
<property name="visible">True</property>
<property name="stock">gtk-info</property>
<property name="icon-size">1</property>
</widget>
</child>
</widget>
</child>
</widget>
</child>
<child internal-child="image">
<widget class="GtkImage" id="image8">
<property name="visible">True</property>
<property name="stock">gtk-properties</property>
<property name="icon-size">1</property>
</widget>
</child>
</widget>
</child>
<child>
<widget class="GtkSeparatorMenuItem" id="separator6">
<property name="visible">True</property>
</widget>
</child>
<child>
<widget class="GtkImageMenuItem" id="information_menuitem">
<property name="label">_Information</property>
<property name="use_underline">True</property>
<property name="use_stock">False</property>
<child internal-child="image">
<widget class="GtkImage" id="image4">
<property name="visible">True</property>
<property name="stock">gtk-info</property>
<property name="icon-size">1</property>
</widget>
</child>
</widget>
</child>
<child>
<widget class="GtkImageMenuItem" id="history_menuitem">
<property name="label">_History</property>
<property name="use_underline">True</property>
<property name="use_stock">False</property>
<child internal-child="image">
<widget class="GtkImage" id="image2">
<property name="visible">True</property>
<property name="stock">gtk-justify-fill</property>
<property name="icon-size">1</property>
</widget>
</child>
</widget>
</child>
</widget>
</glade-interface>

View File

@ -33,6 +33,7 @@ import gtk
import pango import pango
import gobject import gobject
import gtkgui_helpers import gtkgui_helpers
import gui_menu_builder
import message_control import message_control
import dialogs import dialogs
import history_window import history_window
@ -874,7 +875,7 @@ class ChatControlBase(MessageControl, ChatCommandProcessor, CommandTools):
def on_actions_button_clicked(self, widget): def on_actions_button_clicked(self, widget):
'''popup action menu''' '''popup action menu'''
menu = self.prepare_context_menu(True) menu = self.prepare_context_menu(hide_buttonbar_items=True)
menu.show_all() menu.show_all()
gtkgui_helpers.popup_emoticons_under_button(menu, widget, gtkgui_helpers.popup_emoticons_under_button(menu, widget,
self.parent_win) self.parent_win)
@ -2074,138 +2075,19 @@ class ChatControl(ChatControlBase):
return tab_img return tab_img
def prepare_context_menu(self, hide_buttonbar_entries = False): def prepare_context_menu(self, hide_buttonbar_items=False):
'''sets compact view menuitem active state '''sets compact view menuitem active state
sets active and sensitivity state for toggle_gpg_menuitem sets active and sensitivity state for toggle_gpg_menuitem
sets sensitivity for history_menuitem (False for tranasports) sets sensitivity for history_menuitem (False for tranasports)
and file_transfer_menuitem and file_transfer_menuitem
and hide()/show() for add_to_roster_menuitem and hide()/show() for add_to_roster_menuitem
''' '''
xml = gtkgui_helpers.get_glade('chat_control_popup_menu.glade') menu = gui_menu_builder.get_contact_menu(self.contact, self.account,
menu = xml.get_widget('chat_control_popup_menu') use_multiple_contacts=False, show_start_chat=False,
show_encryption=True, control=self,
add_to_roster_menuitem = xml.get_widget('add_to_roster_menuitem') show_buttonbar_items=not hide_buttonbar_items)
history_menuitem = xml.get_widget('history_menuitem')
toggle_gpg_menuitem = xml.get_widget('toggle_gpg_menuitem')
toggle_e2e_menuitem = xml.get_widget('toggle_e2e_menuitem')
send_file_menuitem = xml.get_widget('send_file_menuitem')
information_menuitem = xml.get_widget('information_menuitem')
convert_to_gc_menuitem = xml.get_widget('convert_to_groupchat')
separatormenuitem1 = xml.get_widget('separatormenuitem1')
separatormenuitem2 = xml.get_widget('separatormenuitem2')
# add a special img for send file menuitem
path_to_upload_img = os.path.join(gajim.DATA_DIR, 'pixmaps', 'upload.png')
img = gtk.Image()
img.set_from_file(path_to_upload_img)
send_file_menuitem.set_image(img)
muc_icon = gtkgui_helpers.load_icon('muc_active')
if muc_icon:
convert_to_gc_menuitem.set_image(muc_icon)
if not hide_buttonbar_entries:
history_menuitem.show()
send_file_menuitem.show()
information_menuitem.show()
convert_to_gc_menuitem.show()
separatormenuitem1.show()
separatormenuitem2.show()
ag = gtk.accel_groups_from_object(self.parent_win.window)[0]
send_file_menuitem.add_accelerator('activate', ag, gtk.keysyms.f, gtk.gdk.CONTROL_MASK,
gtk.ACCEL_VISIBLE)
convert_to_gc_menuitem.add_accelerator('activate', ag, gtk.keysyms.g, gtk.gdk.CONTROL_MASK,
gtk.ACCEL_VISIBLE)
history_menuitem.add_accelerator('activate', ag, gtk.keysyms.h, gtk.gdk.CONTROL_MASK,
gtk.ACCEL_VISIBLE)
information_menuitem.add_accelerator('activate', ag, gtk.keysyms.i,
gtk.gdk.CONTROL_MASK, gtk.ACCEL_VISIBLE)
contact = self.parent_win.get_active_contact()
jid = contact.jid
e2e_is_active = self.session is not None and self.session.enable_encryption
# check if we support and use gpg
if not gajim.config.get_per('accounts', self.account, 'keyid') or\
not gajim.connections[self.account].USE_GPG or\
gajim.jid_is_transport(jid):
toggle_gpg_menuitem.set_sensitive(False)
else:
toggle_gpg_menuitem.set_sensitive(self.gpg_is_active or not e2e_is_active)
toggle_gpg_menuitem.set_active(self.gpg_is_active)
# disable esessions if we or the other client don't support them
# XXX: Once we have fallback to disco, remove notexistant check
if not gajim.HAVE_PYCRYPTO or \
not gajim.capscache.is_supported(contact, NS_ESESSION) or \
gajim.capscache.is_supported(contact, 'notexistant') or \
not gajim.config.get_per('accounts', self.account, 'enable_esessions'):
toggle_e2e_menuitem.set_sensitive(False)
else:
toggle_e2e_menuitem.set_active(e2e_is_active)
toggle_e2e_menuitem.set_sensitive(e2e_is_active or not self.gpg_is_active)
# add_to_roster_menuitem
if not hide_buttonbar_entries and _('Not in Roster') in contact.groups:
add_to_roster_menuitem.show()
# check if it's possible to send a file
if gajim.capscache.is_supported(contact, NS_FILE):
send_file_menuitem.set_sensitive(True)
else:
send_file_menuitem.set_sensitive(False)
# check if it's possible to convert to groupchat
if gajim.capscache.is_supported(contact, NS_MUC):
convert_to_gc_menuitem.set_sensitive(True)
else:
convert_to_gc_menuitem.set_sensitive(False)
# connect signals
id_ = history_menuitem.connect('activate',
self._on_history_menuitem_activate)
self.handlers[id_] = history_menuitem
id_ = send_file_menuitem.connect('activate',
self._on_send_file_menuitem_activate)
self.handlers[id_] = send_file_menuitem
id_ = add_to_roster_menuitem.connect('activate',
self._on_add_to_roster_menuitem_activate)
self.handlers[id_] = add_to_roster_menuitem
id_ = toggle_gpg_menuitem.connect('activate',
self._on_toggle_gpg_menuitem_activate)
self.handlers[id_] = toggle_gpg_menuitem
id_ = toggle_e2e_menuitem.connect('activate',
self._on_toggle_e2e_menuitem_activate)
self.handlers[id_] = toggle_e2e_menuitem
id_ = information_menuitem.connect('activate',
self._on_contact_information_menuitem_activate)
self.handlers[id_] = information_menuitem
id_ = convert_to_gc_menuitem.connect('activate',
self._on_convert_to_gc_menuitem_activate)
self.handlers[id_] = convert_to_gc_menuitem
menu.connect('selection-done', self.destroy_menu,
send_file_menuitem, convert_to_gc_menuitem,
information_menuitem, history_menuitem)
return menu return menu
def destroy_menu(self, menu, send_file_menuitem,
convert_to_gc_menuitem, information_menuitem, history_menuitem):
# destroy accelerators
ag = gtk.accel_groups_from_object(self.parent_win.window)[0]
send_file_menuitem.remove_accelerator(ag, gtk.keysyms.f,
gtk.gdk.CONTROL_MASK)
convert_to_gc_menuitem.remove_accelerator(ag, gtk.keysyms.g,
gtk.gdk.CONTROL_MASK)
information_menuitem.remove_accelerator(ag, gtk.keysyms.i,
gtk.gdk.CONTROL_MASK)
history_menuitem.remove_accelerator(ag, gtk.keysyms.h,
gtk.gdk.CONTROL_MASK)
# destroy menu
menu.destroy()
def send_chatstate(self, state, contact = None): def send_chatstate(self, state, contact = None):
''' sends OUR chatstate as STANDLONE chat state message (eg. no body) ''' sends OUR chatstate as STANDLONE chat state message (eg. no body)
to contact only if new chatstate is different from the previous one to contact only if new chatstate is different from the previous one

View File

@ -25,7 +25,7 @@ import message_control
from common import gajim from common import gajim
from common import helpers from common import helpers
from common.xmpp.protocol import NS_COMMANDS, NS_FILE, NS_MUC from common.xmpp.protocol import NS_COMMANDS, NS_FILE, NS_MUC, NS_ESESSION
def build_resources_submenu(contacts, account, action, room_jid=None, def build_resources_submenu(contacts, account, action, room_jid=None,
room_account=None, cap=None): room_account=None, cap=None):
@ -143,7 +143,11 @@ def build_invite_submenu(invite_menuitem, list_):
room_jid, account, resource) room_jid, account, resource)
invite_to_submenu.append(menuitem) invite_to_submenu.append(menuitem)
def get_contact_menu(contact, account, use_multiple_contacts=True): def get_contact_menu(contact, account, use_multiple_contacts=True,
show_start_chat=True, show_encryption=False, show_buttonbar_items=True,
control=None):
''' Build contact popup menu for roster and chat window.
If control is not set, we hide invite_contacts_menuitem'''
if not contact: if not contact:
return return
@ -151,12 +155,8 @@ def get_contact_menu(contact, account, use_multiple_contacts=True):
our_jid = jid == gajim.get_jid_from_account(account) our_jid = jid == gajim.get_jid_from_account(account)
roster = gajim.interface.roster roster = gajim.interface.roster
if gajim.config.get_per('accounts', account, 'is_zeroconf'): xml = gtkgui_helpers.get_glade('roster_contact_context_menu.glade')
xml = gtkgui_helpers.get_glade('zeroconf_contact_context_menu.glade') contact_context_menu = xml.get_widget('roster_contact_context_menu')
contact_context_menu = xml.get_widget('zeroconf_contact_context_menu')
else:
xml = gtkgui_helpers.get_glade('roster_contact_context_menu.glade')
contact_context_menu = xml.get_widget('roster_contact_context_menu')
start_chat_menuitem = xml.get_widget('start_chat_menuitem') start_chat_menuitem = xml.get_widget('start_chat_menuitem')
execute_command_menuitem = xml.get_widget('execute_command_menuitem') execute_command_menuitem = xml.get_widget('execute_command_menuitem')
@ -168,6 +168,29 @@ def get_contact_menu(contact, account, use_multiple_contacts=True):
'add_special_notification_menuitem') 'add_special_notification_menuitem')
information_menuitem = xml.get_widget('information_menuitem') information_menuitem = xml.get_widget('information_menuitem')
history_menuitem = xml.get_widget('history_menuitem') history_menuitem = xml.get_widget('history_menuitem')
send_custom_status_menuitem = xml.get_widget('send_custom_status_menuitem')
send_single_message_menuitem = xml.get_widget('send_single_message_menuitem')
invite_menuitem = xml.get_widget('invite_menuitem')
block_menuitem = xml.get_widget('block_menuitem')
unblock_menuitem = xml.get_widget('unblock_menuitem')
ignore_menuitem = xml.get_widget('ignore_menuitem')
unignore_menuitem = xml.get_widget('unignore_menuitem')
set_custom_avatar_menuitem = xml.get_widget('set_custom_avatar_menuitem')
# Subscription submenu
subscription_menuitem = xml.get_widget('subscription_menuitem')
send_auth_menuitem, ask_auth_menuitem, revoke_auth_menuitem = \
subscription_menuitem.get_submenu().get_children()
add_to_roster_menuitem = xml.get_widget('add_to_roster_menuitem')
remove_from_roster_menuitem = xml.get_widget(
'remove_from_roster_menuitem')
manage_contact_menuitem = xml.get_widget('manage_contact')
convert_to_gc_menuitem = xml.get_widget('convert_to_groupchat_menuitem')
encryption_separator = xml.get_widget('encryption_separator')
toggle_gpg_menuitem = xml.get_widget('toggle_gpg_menuitem')
toggle_e2e_menuitem = xml.get_widget('toggle_e2e_menuitem')
last_separator = xml.get_widget('last_separator')
items_to_hide = []
# add a special img for send file menuitem # add a special img for send file menuitem
path_to_upload_img = os.path.join(gajim.DATA_DIR, 'pixmaps', 'upload.png') path_to_upload_img = os.path.join(gajim.DATA_DIR, 'pixmaps', 'upload.png')
@ -183,6 +206,10 @@ def get_contact_menu(contact, account, use_multiple_contacts=True):
img.set_from_file(path_to_kbd_input_img) img.set_from_file(path_to_kbd_input_img)
rename_menuitem.set_image(img) rename_menuitem.set_image(img)
muc_icon = gtkgui_helpers.load_icon('muc_active')
if muc_icon:
convert_to_gc_menuitem.set_image(muc_icon)
contacts = gajim.contacts.get_contacts(account, jid) contacts = gajim.contacts.get_contacts(account, jid)
if len(contacts) > 1 and use_multiple_contacts: # several resources if len(contacts) > 1 and use_multiple_contacts: # several resources
start_chat_menuitem.set_submenu(build_resources_submenu(contacts, start_chat_menuitem.set_submenu(build_resources_submenu(contacts,
@ -229,9 +256,7 @@ def get_contact_menu(contact, account, use_multiple_contacts=True):
# Hide items when it's self contact row # Hide items when it's self contact row
if our_jid: if our_jid:
for menuitem in (rename_menuitem, edit_groups_menuitem): items_to_hide += [rename_menuitem, edit_groups_menuitem]
menuitem.set_no_show_all(True)
menuitem.hide()
# Unsensitive many items when account is offline # Unsensitive many items when account is offline
if gajim.account_is_disconnected(account): if gajim.account_is_disconnected(account):
@ -239,8 +264,58 @@ def get_contact_menu(contact, account, use_multiple_contacts=True):
edit_groups_menuitem, send_file_menuitem): edit_groups_menuitem, send_file_menuitem):
widget.set_sensitive(False) widget.set_sensitive(False)
if not show_start_chat:
items_to_hide.append(start_chat_menuitem)
if not show_encryption or not control:
items_to_hide += [encryption_separator, toggle_gpg_menuitem,
toggle_e2e_menuitem]
else:
e2e_is_active = control.session is not None and \
control.session.enable_encryption
# check if we support and use gpg
if not gajim.config.get_per('accounts', account, 'keyid') or \
not gajim.connections[account].USE_GPG or gajim.jid_is_transport(
contact.jid):
toggle_gpg_menuitem.set_sensitive(False)
else:
toggle_gpg_menuitem.set_sensitive(control.gpg_is_active or \
not e2e_is_active)
toggle_gpg_menuitem.set_active(control.gpg_is_active)
# disable esessions if we or the other client don't support them
# XXX: Once we have fallback to disco, remove notexistant check
if not gajim.HAVE_PYCRYPTO or \
not gajim.capscache.is_supported(contact, NS_ESESSION) or \
gajim.capscache.is_supported(contact, 'notexistant') or \
not gajim.config.get_per('accounts', account, 'enable_esessions'):
toggle_e2e_menuitem.set_sensitive(False)
else:
toggle_e2e_menuitem.set_active(e2e_is_active)
toggle_e2e_menuitem.set_sensitive(e2e_is_active or \
not control.gpg_is_active)
if not show_buttonbar_items:
items_to_hide += [history_menuitem, send_file_menuitem,
information_menuitem, convert_to_gc_menuitem, last_separator]
if not control:
items_to_hide.append(convert_to_gc_menuitem)
for item in items_to_hide:
item.set_no_show_all(True)
item.hide()
# Zeroconf Account # Zeroconf Account
if gajim.config.get_per('accounts', account, 'is_zeroconf'): if gajim.config.get_per('accounts', account, 'is_zeroconf'):
for item in (send_custom_status_menuitem, send_single_message_menuitem,
invite_menuitem, block_menuitem, unblock_menuitem, ignore_menuitem,
unignore_menuitem, set_custom_avatar_menuitem, subscription_menuitem,
manage_contact_menuitem):
item.set_no_show_all(True)
item.hide()
if contact.show in ('offline', 'error'): if contact.show in ('offline', 'error'):
information_menuitem.set_sensitive(False) information_menuitem.set_sensitive(False)
send_file_menuitem.set_sensitive(False) send_file_menuitem.set_sensitive(False)
@ -254,14 +329,6 @@ def get_contact_menu(contact, account, use_multiple_contacts=True):
return contact_context_menu return contact_context_menu
# normal account # normal account
send_custom_status_menuitem = xml.get_widget('send_custom_status_menuitem')
send_single_message_menuitem = xml.get_widget('send_single_message_menuitem')
invite_menuitem = xml.get_widget('invite_menuitem')
block_menuitem = xml.get_widget('block_menuitem')
unblock_menuitem = xml.get_widget('unblock_menuitem')
ignore_menuitem = xml.get_widget('ignore_menuitem')
unignore_menuitem = xml.get_widget('unignore_menuitem')
set_custom_avatar_menuitem = xml.get_widget('set_custom_avatar_menuitem')
# send custom status icon # send custom status icon
blocked = False blocked = False
@ -292,14 +359,6 @@ def get_contact_menu(contact, account, use_multiple_contacts=True):
build_invite_submenu(invite_menuitem, [(contact, account)]) build_invite_submenu(invite_menuitem, [(contact, account)])
# Subscription submenu
subscription_menuitem = xml.get_widget('subscription_menuitem')
send_auth_menuitem, ask_auth_menuitem, revoke_auth_menuitem = \
subscription_menuitem.get_submenu().get_children()
add_to_roster_menuitem = xml.get_widget('add_to_roster_menuitem')
remove_from_roster_menuitem = xml.get_widget(
'remove_from_roster_menuitem')
# One or several resource, we do the same for send_custom_status # One or several resource, we do the same for send_custom_status
status_menuitems = gtk.Menu() status_menuitems = gtk.Menu()
send_custom_status_menuitem.set_submenu(status_menuitems) send_custom_status_menuitem.set_submenu(status_menuitems)
@ -359,8 +418,7 @@ def get_contact_menu(contact, account, use_multiple_contacts=True):
# Hide items when it's self contact row # Hide items when it's self contact row
if our_jid: if our_jid:
menuitem = xml.get_widget('manage_contact') manage_contact_menuitem.set_sensitive(False)
menuitem.set_sensitive(False)
# Unsensitive items when account is offline # Unsensitive items when account is offline
if gajim.account_is_disconnected(account): if gajim.account_is_disconnected(account):