Merge PidginBuddyListMenu with PidginContactList which fixes all of the accelerators as well.
Testing Done:
Compiled and ran locally. Verified that the `g_warnings` at startup are now gone and that the keyboard accelerators now work again.
Reviewed at https://reviews.imfreedom.org/r/430/
--- a/doc/reference/pidgin/pidgin-docs.xml Sun Jan 24 02:46:43 2021 -0600
+++ b/doc/reference/pidgin/pidgin-docs.xml Sun Jan 24 03:27:43 2021 -0600
@@ -59,10 +59,10 @@
<xi:include href="xml/pidginactiongroup.xml" />
<xi:include href="xml/pidginapplication.xml" />
<xi:include href="xml/pidginattachment.xml" />
- <xi:include href="xml/pidginbuddylistmenu.xml" />
<xi:include href="xml/pidgincellrendererexpander.xml" />
<xi:include href="xml/pidginclosebutton.xml" />
<xi:include href="xml/pidgincontactcompletion.xml" />
+ <xi:include href="xml/pidgincontactlist.xml" /> <xi:include href="xml/pidginconversationwindow.xml" />
<xi:include href="xml/pidgincore.xml" />
<xi:include href="xml/pidgindebug.xml" />
--- a/pidgin/glade/pidgin3.xml.in Sun Jan 24 02:46:43 2021 -0600
+++ b/pidgin/glade/pidgin3.xml.in Sun Jan 24 03:27:43 2021 -0600
@@ -6,7 +6,6 @@
<glade-widget-class name="PidginAccountStore" generic-name="account_store" title="AccountStore"/>
<glade-widget-class name="PidginAccountFilterConnected" generic-name="account_filter_connected" title="FilterConnected"/>
<glade-widget-class name="PidginAccountFilterProtocol" generic-name="account_filter_protocol" title="FilterProtocol"/>
- <glade-widget-class name="PidginBuddyListMenu" generic-name="buddy_list_menu" title="BuddyListMenu"/>
<glade-widget-class name="PidginCloseButton" generic-name="close-button" title="CloseButton"/>
<glade-widget-class name="PidginConversationWindow" generic-name="conversation_window" title="ConversationWindow"/>
<glade-widget-class name="PidginDialog" generic-name="dialog" title="Dialog"/>
@@ -24,7 +23,6 @@
<glade-widget-class-ref name="PidginAccountStore"/>
<glade-widget-class-ref name="PidginAccountFilterConnected"/>
<glade-widget-class-ref name="PidginAccountFilterProtocol"/>
- <glade-widget-class-ref name="PidginBuddyListMenu"/>
<glade-widget-class-ref name="PidginCloseButton"/>
<glade-widget-class-ref name="PidginConversationWindow"/>
<glade-widget-class-ref name="PidginDialog"/>
--- a/pidgin/gtkblist.c Sun Jan 24 02:46:43 2021 -0600
+++ b/pidgin/gtkblist.c Sun Jan 24 03:27:43 2021 -0600
@@ -44,7 +44,6 @@
#include "pidgin/pidginaccountfilterconnected.h"
#include "pidgin/pidginaccountstore.h"
#include "pidgin/pidginactiongroup.h"
-#include "pidgin/pidginbuddylistmenu.h"
#include "pidgin/pidgincellrendererexpander.h"
#include "pidgin/pidginclosebutton.h"
#include "pidgin/pidgincontactlist.h"
@@ -5231,11 +5230,7 @@
gtk_widget_add_events(gtkblist->window, GDK_VISIBILITY_NOTIFY_MASK);
/******************************* Menu bar *************************************/
- gtkblist->menu = pidgin_buddy_list_menu_new();
- gtk_box_pack_start(GTK_BOX(gtkblist->main_vbox), gtkblist->menu, FALSE,
- gtkblist->menutray = pidgin_buddy_list_menu_get_menu_tray(PIDGIN_BUDDY_LIST_MENU(gtkblist->menu));
+ gtkblist->menutray = pidgin_contact_list_get_menu_tray(PIDGIN_CONTACT_LIST(gtkblist->window)); /****************************** Notebook *************************************/
gtkblist->notebook = gtk_notebook_new();
@@ -7303,10 +7298,10 @@
/* replace the old submenu with a new one */
- if(PIDGIN_IS_BUDDY_LIST_MENU(gtkblist->menu)) {
+ if(PIDGIN_IS_CONTACT_LIST(gtkblist->window)) { - item = pidgin_buddy_list_menu_get_sort_item(PIDGIN_BUDDY_LIST_MENU(gtkblist->menu));
+ item = pidgin_contact_list_get_menu_sort_item(PIDGIN_CONTACT_LIST(gtkblist->window)); gtk_menu_item_set_submenu(GTK_MENU_ITEM(item),
gtk_menu_new_from_model(G_MENU_MODEL(menu)));
g_object_unref(G_OBJECT(menu));
--- a/pidgin/meson.build Sun Jan 24 02:46:43 2021 -0600
+++ b/pidgin/meson.build Sun Jan 24 03:27:43 2021 -0600
@@ -39,7 +39,6 @@
- 'pidginbuddylistmenu.c',
'pidgincellrendererexpander.c',
'pidgincontactcompletion.c',
@@ -107,7 +106,6 @@
- 'pidginbuddylistmenu.h',
'pidgincellrendererexpander.h',
'pidgincontactcompletion.h',
--- a/pidgin/pidginbuddylistmenu.c Sun Jan 24 02:46:43 2021 -0600
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,99 +0,0 @@
- * Pidgin is the legal property of its developers, whose names are too numerous
- * to list here. Please refer to the COPYRIGHT file distributed with this
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-#include "pidginbuddylistmenu.h"
-struct _PidginBuddyListMenu {
- GtkWidget *sort_buddies;
- GtkWidget *accounts_menu;
- GtkWidget *plugins_menu;
-/******************************************************************************
- * GObject Implementation
- *****************************************************************************/
-G_DEFINE_TYPE(PidginBuddyListMenu, pidgin_buddy_list_menu, GTK_TYPE_MENU_BAR)
-pidgin_buddy_list_menu_init(PidginBuddyListMenu *menu) {
- gtk_widget_init_template(GTK_WIDGET(menu));
- gtk_menu_item_set_submenu(GTK_MENU_ITEM(menu->accounts),
- gtk_menu_item_set_submenu(GTK_MENU_ITEM(menu->plugins),
- gtk_menu_shell_append(GTK_MENU_SHELL(menu), menu->menu_tray);
-pidgin_buddy_list_menu_class_init(PidginBuddyListMenuClass *klass) {
- GtkWidgetClass *widget_class = GTK_WIDGET_CLASS(klass);
- gtk_widget_class_set_template_from_resource(
- "/im/pidgin/Pidgin/BuddyList/menu.ui"
- gtk_widget_class_bind_template_child(widget_class, PidginBuddyListMenu,
- gtk_widget_class_bind_template_child(widget_class, PidginBuddyListMenu,
- gtk_widget_class_bind_template_child(widget_class, PidginBuddyListMenu,
- gtk_widget_class_bind_template_child(widget_class, PidginBuddyListMenu,
- gtk_widget_class_bind_template_child(widget_class, PidginBuddyListMenu,
- gtk_widget_class_bind_template_child(widget_class, PidginBuddyListMenu,
-/******************************************************************************
- *****************************************************************************/
-pidgin_buddy_list_menu_new(void) {
- return GTK_WIDGET(g_object_new(PIDGIN_TYPE_BUDDY_LIST_MENU, NULL));
-pidgin_buddy_list_menu_get_sort_item(PidginBuddyListMenu *menu) {
- g_return_val_if_fail(PIDGIN_IS_BUDDY_LIST_MENU(menu), NULL);
- return menu->sort_buddies;
-pidgin_buddy_list_menu_get_menu_tray(PidginBuddyListMenu *menu) {
- g_return_val_if_fail(PIDGIN_IS_BUDDY_LIST_MENU(menu), NULL);
- return menu->menu_tray;
--- a/pidgin/pidginbuddylistmenu.h Sun Jan 24 02:46:43 2021 -0600
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,81 +0,0 @@
- * Pidgin is the legal property of its developers, whose names are too numerous
- * to list here. Please refer to the COPYRIGHT file distributed with this
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-#if !defined(PIDGIN_GLOBAL_HEADER_INSIDE) && !defined(PIDGIN_COMPILATION)
-# error "only <pidgin.h> may be included directly"
-#ifndef PIDGIN_BUDDY_LIST_MENU_H
-#define PIDGIN_BUDDY_LIST_MENU_H
- * SECTION:pidginbuddylistmenu
- * @section_id: pidgin-buddylist-menu
- * @short_description: A widget to display the menubar in the buddy list window.
- * @title: Buddylist Menu
- * #PidginBuddyListMenu is a transitional widget as we slowly migrate the
- * buddylist window to glade.
-#define PIDGIN_TYPE_BUDDY_LIST_MENU (pidgin_buddy_list_menu_get_type())
-G_DECLARE_FINAL_TYPE(PidginBuddyListMenu, pidgin_buddy_list_menu, PIDGIN,
- BUDDY_LIST_MENU, GtkMenuBar)
- * pidgin_buddy_list_menu_new:
- * Creates a new #PidginBuddyListMenu instance.
- * Returns: (transfer full): The new #PidginBuddyListMenu instance.
-GtkWidget *pidgin_buddy_list_menu_new(void);
- * pidgin_buddy_list_menu_get_sort_item:
- * @menu: The #PidginBuddyList instance.
- * Returns the sort menu item from the buddies menu.
- * Returns: (transfer none): The sort menu item from the buddies menu.
-GtkWidget *pidgin_buddy_list_menu_get_sort_item(PidginBuddyListMenu *menu);
- * pidgin_buddy_list_menu_get_menu_tray:
- * @menu: The #PidginBuddyList instance.
- * Gets the #PidginMenuTray instance from @menu.
- * Returns: (transfer none): The #PidginMenuTray from @menu.
-GtkWidget *pidgin_buddy_list_menu_get_menu_tray(PidginBuddyListMenu *menu);
-#endif /* PIDGIN_BUDDY_LIST_MENU_H */
--- a/pidgin/pidgincontactlist.c Sun Jan 24 02:46:43 2021 -0600
+++ b/pidgin/pidgincontactlist.c Sun Jan 24 03:27:43 2021 -0600
@@ -28,6 +28,17 @@
GtkApplicationWindow parent;
+ GtkWidget *sort_buddies; + GtkWidget *accounts_menu; + GtkWidget *plugins_menu; G_DEFINE_TYPE(PidginContactList, pidgin_contact_list,
@@ -48,6 +59,14 @@
group = pidgin_action_group_new();
gtk_widget_insert_action_group(GTK_WIDGET(contact_list), "blist",
+ gtk_menu_item_set_submenu(GTK_MENU_ITEM(contact_list->accounts), + contact_list->accounts_menu); + gtk_menu_item_set_submenu(GTK_MENU_ITEM(contact_list->plugins), + contact_list->plugins_menu); + gtk_menu_shell_append(GTK_MENU_SHELL(contact_list->menu_bar), + contact_list->menu_tray); @@ -60,6 +79,21 @@
gtk_widget_class_bind_template_child(widget_class, PidginContactList, vbox);
+ gtk_widget_class_bind_template_child(widget_class, PidginContactList, + gtk_widget_class_bind_template_child(widget_class, PidginContactList, + gtk_widget_class_bind_template_child(widget_class, PidginContactList, + gtk_widget_class_bind_template_child(widget_class, PidginContactList, + gtk_widget_class_bind_template_child(widget_class, PidginContactList, + gtk_widget_class_bind_template_child(widget_class, PidginContactList, + gtk_widget_class_bind_template_child(widget_class, PidginContactList, /******************************************************************************
@@ -76,3 +110,17 @@
return contact_list->vbox;
+pidgin_contact_list_get_menu_sort_item(PidginContactList *contact_list) { + g_return_val_if_fail(PIDGIN_IS_CONTACT_LIST(contact_list), NULL); + return contact_list->sort_buddies; +pidgin_contact_list_get_menu_tray(PidginContactList *contact_list) { + g_return_val_if_fail(PIDGIN_IS_CONTACT_LIST(contact_list), NULL); + return contact_list->menu_tray; --- a/pidgin/pidgincontactlist.h Sun Jan 24 02:46:43 2021 -0600
+++ b/pidgin/pidgincontactlist.h Sun Jan 24 03:27:43 2021 -0600
@@ -43,6 +43,22 @@
+ * PIDGIN_TYPE_CONTACT_LIST: + * The standard _get_type method for #PidginContactList. + * A #GtkWindow that contains the main contact list. #define PIDGIN_TYPE_CONTACT_LIST (pidgin_contact_list_get_type())
G_DECLARE_FINAL_TYPE(PidginContactList, pidgin_contact_list, PIDGIN,
CONTACT_LIST, GtkApplicationWindow)
@@ -53,6 +69,8 @@
* Creates a new #PidginContactList instance.
* Returns: (transfer full): The new #PidginContactList instance.
GtkWidget *pidgin_contact_list_new(void);
@@ -63,9 +81,35 @@
* Gets the main vbox for @contact_list.
* Returns: (transfer none): The main vbox of @contact_list.
GtkWidget *pidgin_contact_list_get_vbox(PidginContactList *contact_list);
+ * pidgin_contact_list_get_menu_sort_item: + * @contact_list: The #PidginContactList instance. + * Returns the sort menu item from the menu of @contact_list. + * Returns: (transfer none): The sort menu item from the menu of @contact_list. +GtkWidget *pidgin_contact_list_get_menu_sort_item(PidginContactList *contact_list); + * pidgin_contact_list_get_menu_tray: + * @contact_list: The #PidginContactList instance. + * Gets the #PidginMenuTray instance from the menu of @contact_list. + * Returns: (transfer none): The #PidginMenuTray from the menu of +GtkWidget *pidgin_contact_list_get_menu_tray(PidginContactList *contact_list); --- a/pidgin/resources/BuddyList/menu.ui Sun Jan 24 02:46:43 2021 -0600
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,367 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.22.2
-Pidgin - Internet Messenger
-Copyright (C) Pidgin Developers <devel@pidgin.im>
-This program is free software; you can redistribute it and/or
-modify it under the terms of the GNU General Public License
-as published by the Free Software Foundation; either version 2
-of the License, or (at your option) any later version.
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-You should have received a copy of the GNU General Public License
-along with this program; if not, see <https://www.gnu.org/licenses/>.
--->
- <requires lib="gtk+" version="3.20"/>
- <requires lib="pidgin" version="3.0"/>
- <!-- interface-license-type gplv2 -->
- <!-- interface-name Pidgin -->
- <!-- interface-description Internet Messenger -->
- <!-- interface-copyright Pidgin Developers <devel@pidgin.im> -->
- <template class="PidginBuddyListMenu" parent="GtkMenuBar">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <object class="GtkMenuItem">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes">_Buddies</property>
- <property name="use_underline">True</property>
- <object class="GtkMenu">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <object class="GtkMenuItem" id="new_message">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="action_name">app.new-message</property>
- <property name="label" translatable="yes">New Instant _Message...</property>
- <property name="use_underline">True</property>
- <accelerator key="m" signal="activate" modifiers="GDK_CONTROL_MASK"/>
- <object class="GtkMenuItem" id="join_chat">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="action_name">app.join-chat</property>
- <property name="label" translatable="yes">Join a _Chat...</property>
- <property name="use_underline">True</property>
- <accelerator key="c" signal="activate" modifiers="GDK_CONTROL_MASK"/>
- <object class="GtkMenuItem" id="get_user_info">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="action_name">app.get-user-info</property>
- <property name="label" translatable="yes">Get User _Info...</property>
- <property name="use_underline">True</property>
- <accelerator key="i" signal="activate" modifiers="GDK_CONTROL_MASK"/>
- <object class="GtkMenuItem" id="view_user_log">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="action_name">app.view-user-log</property>
- <property name="label" translatable="yes">View User _Log...</property>
- <property name="use_underline">True</property>
- <accelerator key="l" signal="activate" modifiers="GDK_CONTROL_MASK"/>
- <object class="GtkSeparatorMenuItem">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <object class="GtkMenuItem">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes">Sh_ow</property>
- <property name="use_underline">True</property>
- <object class="GtkMenu">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <object class="GtkCheckMenuItem" id="show_offline_buddies">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="action_name">blist.show-offline-buddies</property>
- <property name="label" translatable="yes">_Offline Buddies</property>
- <property name="use_underline">True</property>
- <object class="GtkCheckMenuItem" id="show_empty_groups">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="action_name">blist.show-empty-groups</property>
- <property name="label" translatable="yes">_Empty Groups</property>
- <property name="use_underline">True</property>
- <object class="GtkCheckMenuItem" id="show_buddy_icons">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="action_name">blist.show-buddy-icons</property>
- <property name="label" translatable="yes">Buddy _Icons</property>
- <property name="use_underline">True</property>
- <object class="GtkCheckMenuItem" id="show_idle_times">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="action_name">blist.show-idle-times</property>
- <property name="label" translatable="yes">Idle _Times</property>
- <property name="use_underline">True</property>
- <object class="GtkCheckMenuItem" id="show_protocol_icons">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="action_name">blist.show-protocol-icons</property>
- <property name="label" translatable="yes">_Protocol Icons</property>
- <property name="use_underline">True</property>
- <object class="GtkMenuItem" id="sort_buddies">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes">_Sort Buddies</property>
- <property name="use_underline">True</property>
- <object class="GtkSeparatorMenuItem">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <object class="GtkMenuItem" id="add_buddy">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="action_name">app.add-buddy</property>
- <property name="label" translatable="yes">_Add Buddy...</property>
- <property name="use_underline">True</property>
- <accelerator key="b" signal="activate" modifiers="GDK_CONTROL_MASK"/>
- <object class="GtkMenuItem" id="add_chat">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="action_name">app.add-chat</property>
- <property name="label" translatable="yes">Add C_hat...</property>
- <property name="use_underline">True</property>
- <object class="GtkMenuItem" id="add_group">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="action_name">app.add-group</property>
- <property name="label" translatable="yes">Add _Group...</property>
- <property name="use_underline">True</property>
- <object class="GtkSeparatorMenuItem">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <object class="GtkMenuItem" id="quit">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="action_name">app.quit</property>
- <property name="label" translatable="yes">_Quit</property>
- <property name="use_underline">True</property>
- <accelerator key="q" signal="activate" modifiers="GDK_CONTROL_MASK"/>
- <object class="GtkMenuItem" id="accounts">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes">_Accounts</property>
- <property name="use_underline">True</property>
- <object class="GtkMenuItem">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes">_Tools</property>
- <property name="use_underline">True</property>
- <object class="GtkMenu">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <object class="GtkMenuItem" id="custom_smileys">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="action_name">app.custom-smiley</property>
- <property name="label" translatable="yes">Custom Smile_ys</property>
- <property name="use_underline">True</property>
- <accelerator key="y" signal="activate" modifiers="GDK_CONTROL_MASK"/>
- <object class="GtkMenuItem" id="preferences">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="action_name">app.preferences</property>
- <property name="label" translatable="yes">Pr_eferences</property>
- <property name="use_underline">True</property>
- <accelerator key="p" signal="activate" modifiers="GDK_CONTROL_MASK"/>
- <object class="GtkMenuItem" id="privacy">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="action_name">app.privacy</property>
- <property name="label" translatable="yes">Pr_ivacy</property>
- <property name="use_underline">True</property>
- <object class="GtkMenuItem" id="set_mood">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="action_name">app.set-mood</property>
- <property name="label" translatable="yes">Set _Mood</property>
- <property name="use_underline">True</property>
- <accelerator key="d" signal="activate" modifiers="GDK_CONTROL_MASK"/>
- <object class="GtkSeparatorMenuItem">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <object class="GtkMenuItem" id="file_transfers">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="action_name">app.file-transfers</property>
- <property name="label" translatable="yes">_File Transfers</property>
- <property name="use_underline">True</property>
- <accelerator key="t" signal="activate" modifiers="GDK_CONTROL_MASK"/>
- <object class="GtkMenuItem" id="room_list">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="action_name">app.room-list</property>
- <property name="label" translatable="yes">R_oom List</property>
- <property name="use_underline">True</property>
- <object class="GtkMenuItem" id="system_log">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="action_name">app.system-log</property>
- <property name="label" translatable="yes">System _Log</property>
- <property name="use_underline">True</property>
- <object class="GtkMenuItem" id="plugins">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes">_Plugins</property>
- <property name="use_underline">True</property>
- <object class="GtkMenuItem">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes">_Help</property>
- <property name="use_underline">True</property>
- <object class="GtkMenu">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <object class="GtkMenuItem" id="online_help">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="action_name">app.online-help</property>
- <property name="label" translatable="yes">Online _Help</property>
- <property name="use_underline">True</property>
- <accelerator key="F1" signal="activate"/>
- <object class="GtkMenuItem" id="debug">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="action_name">app.debug</property>
- <property name="label" translatable="yes">_Debug Window</property>
- <property name="use_underline">True</property>
- <object class="GtkMenuItem" id="about">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="action_name">app.about</property>
- <property name="label" translatable="yes">_About</property>
- <property name="use_underline">True</property>
- <object class="PidginAccountsMenu" id="accounts_menu">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <object class="PidginMenuTray" id="menu_tray">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="right_justified">True</property>
- <object class="PidginPluginsMenu" id="plugins_menu">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
--- a/pidgin/resources/BuddyList/window.ui Sun Jan 24 02:46:43 2021 -0600
+++ b/pidgin/resources/BuddyList/window.ui Sun Jan 24 03:27:43 2021 -0600
@@ -38,15 +38,347 @@
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
+ <object class="GtkMenuBar" id="menu_bar"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <object class="GtkMenuItem"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">_Buddies</property> + <property name="use_underline">True</property> + <object class="GtkMenu"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <object class="GtkMenuItem" id="new_message"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="action_name">app.new-message</property> + <property name="label" translatable="yes">New Instant _Message...</property> + <property name="use_underline">True</property> + <accelerator key="m" signal="activate" modifiers="GDK_CONTROL_MASK"/> + <object class="GtkMenuItem" id="join_chat"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="action_name">app.join-chat</property> + <property name="label" translatable="yes">Join a _Chat...</property> + <property name="use_underline">True</property> + <accelerator key="c" signal="activate" modifiers="GDK_CONTROL_MASK"/> + <object class="GtkMenuItem" id="get_user_info"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="action_name">app.get-user-info</property> + <property name="label" translatable="yes">Get User _Info...</property> + <property name="use_underline">True</property> + <accelerator key="i" signal="activate" modifiers="GDK_CONTROL_MASK"/> + <object class="GtkMenuItem" id="view_user_log"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="action_name">app.view-user-log</property> + <property name="label" translatable="yes">View User _Log...</property> + <property name="use_underline">True</property> + <accelerator key="l" signal="activate" modifiers="GDK_CONTROL_MASK"/> + <object class="GtkSeparatorMenuItem"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <object class="GtkMenuItem"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">Sh_ow</property> + <property name="use_underline">True</property> + <object class="GtkMenu"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <object class="GtkCheckMenuItem" id="show_offline_buddies"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="action_name">blist.show-offline-buddies</property> + <property name="label" translatable="yes">_Offline Buddies</property> + <property name="use_underline">True</property> + <object class="GtkCheckMenuItem" id="show_empty_groups"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="action_name">blist.show-empty-groups</property> + <property name="label" translatable="yes">_Empty Groups</property> + <property name="use_underline">True</property> + <object class="GtkCheckMenuItem" id="show_buddy_icons"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="action_name">blist.show-buddy-icons</property> + <property name="label" translatable="yes">Buddy _Icons</property> + <property name="use_underline">True</property> + <object class="GtkCheckMenuItem" id="show_idle_times"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="action_name">blist.show-idle-times</property> + <property name="label" translatable="yes">Idle _Times</property> + <property name="use_underline">True</property> + <object class="GtkCheckMenuItem" id="show_protocol_icons"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="action_name">blist.show-protocol-icons</property> + <property name="label" translatable="yes">_Protocol Icons</property> + <property name="use_underline">True</property> + <object class="GtkMenuItem" id="sort_buddies"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">_Sort Buddies</property> + <property name="use_underline">True</property> + <object class="GtkSeparatorMenuItem"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <object class="GtkMenuItem" id="add_buddy"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="action_name">app.add-buddy</property> + <property name="label" translatable="yes">_Add Buddy...</property> + <property name="use_underline">True</property> + <accelerator key="b" signal="activate" modifiers="GDK_CONTROL_MASK"/> + <object class="GtkMenuItem" id="add_chat"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="action_name">app.add-chat</property> + <property name="label" translatable="yes">Add C_hat...</property> + <property name="use_underline">True</property> + <object class="GtkMenuItem" id="add_group"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="action_name">app.add-group</property> + <property name="label" translatable="yes">Add _Group...</property> + <property name="use_underline">True</property> + <object class="GtkSeparatorMenuItem"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <object class="GtkMenuItem" id="quit"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="action_name">app.quit</property> + <property name="label" translatable="yes">_Quit</property> + <property name="use_underline">True</property> + <accelerator key="q" signal="activate" modifiers="GDK_CONTROL_MASK"/> + <object class="GtkMenuItem" id="accounts"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">_Accounts</property> + <property name="use_underline">True</property> + <object class="GtkMenuItem"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">_Tools</property> + <property name="use_underline">True</property> + <object class="GtkMenu"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <object class="GtkMenuItem" id="custom_smileys"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="action_name">app.custom-smiley</property> + <property name="label" translatable="yes">Custom Smile_ys</property> + <property name="use_underline">True</property> + <accelerator key="y" signal="activate" modifiers="GDK_CONTROL_MASK"/> + <object class="GtkMenuItem" id="preferences"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="action_name">app.preferences</property> + <property name="label" translatable="yes">Pr_eferences</property> + <property name="use_underline">True</property> + <accelerator key="p" signal="activate" modifiers="GDK_CONTROL_MASK"/> + <object class="GtkMenuItem" id="privacy"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="action_name">app.privacy</property> + <property name="label" translatable="yes">Pr_ivacy</property> + <property name="use_underline">True</property> + <object class="GtkMenuItem" id="set_mood"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="action_name">app.set-mood</property> + <property name="label" translatable="yes">Set _Mood</property> + <property name="use_underline">True</property> + <accelerator key="d" signal="activate" modifiers="GDK_CONTROL_MASK"/> + <object class="GtkSeparatorMenuItem"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <object class="GtkMenuItem" id="file_transfers"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="action_name">app.file-transfers</property> + <property name="label" translatable="yes">_File Transfers</property> + <property name="use_underline">True</property> + <accelerator key="t" signal="activate" modifiers="GDK_CONTROL_MASK"/> + <object class="GtkMenuItem" id="room_list"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="action_name">app.room-list</property> + <property name="label" translatable="yes">R_oom List</property> + <property name="use_underline">True</property> + <object class="GtkMenuItem" id="system_log"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="action_name">app.system-log</property> + <property name="label" translatable="yes">System _Log</property> + <property name="use_underline">True</property> + <object class="GtkMenuItem" id="plugins"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">_Plugins</property> + <property name="use_underline">True</property> + <object class="GtkMenuItem"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">_Help</property> + <property name="use_underline">True</property> + <object class="GtkMenu"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <object class="GtkMenuItem" id="online_help"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="action_name">app.online-help</property> + <property name="label" translatable="yes">Online _Help</property> + <property name="use_underline">True</property> + <accelerator key="F1" signal="activate"/> + <object class="GtkMenuItem" id="debug"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="action_name">app.debug</property> + <property name="label" translatable="yes">_Debug Window</property> + <property name="use_underline">True</property> + <object class="GtkMenuItem" id="about"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="action_name">app.about</property> + <property name="label" translatable="yes">_About</property> + <property name="use_underline">True</property> + <object class="PidginAccountsMenu" id="accounts_menu"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <object class="PidginMenuTray" id="menu_tray"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="right_justified">True</property> + <object class="PidginPluginsMenu" id="plugins_menu"> + <property name="visible">True</property> + <property name="can_focus">False</property> --- a/pidgin/resources/pidgin.gresource.xml Sun Jan 24 02:46:43 2021 -0600
+++ b/pidgin/resources/pidgin.gresource.xml Sun Jan 24 03:27:43 2021 -0600
@@ -9,7 +9,6 @@
<file compressed="true">Accounts/chooser.ui</file>
<file compressed="true">Accounts/entry.css</file>
<file compressed="true">Accounts/menu.ui</file>
- <file compressed="true">BuddyList/menu.ui</file>
<file compressed="true">BuddyList/window.ui</file>
<file compressed="true">Conversations/invite_dialog.ui</file>
<file compressed="true">Conversations/menu.ui</file>