merge roster_contact_context_menu.glade, chat_control_popup_menu.glade and zeroconf_contact_context_menu.glade
This commit is contained in:
parent
134eb7f83a
commit
5a51f09491
|
@ -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>
|
|
|
@ -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>
|
||||||
|
|
|
@ -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>
|
|
|
@ -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
|
||||||
|
|
|
@ -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):
|
||||||
|
|
Loading…
Reference in New Issue