Tue, 23 Jan 2024 00:02:11 -0600
Remove PidginAddBuddyDialog as it is no longer used
Testing Done:
Used Turtle Power!
Reviewed at https://reviews.imfreedom.org/r/2919/
| pidgin/meson.build | file | annotate | diff | comparison | revisions | |
| pidgin/pidginaddbuddydialog.c | file | annotate | diff | comparison | revisions | |
| pidgin/pidginaddbuddydialog.h | file | annotate | diff | comparison | revisions | |
| pidgin/resources/Dialogs/addbuddy.ui | file | annotate | diff | comparison | revisions | |
| pidgin/resources/pidgin.gresource.xml | file | annotate | diff | comparison | revisions | |
| po/POTFILES.in | file | annotate | diff | comparison | revisions |
--- a/pidgin/meson.build Sun Jan 14 20:08:13 2024 -0600 +++ b/pidgin/meson.build Tue Jan 23 00:02:11 2024 -0600 @@ -23,7 +23,6 @@ 'pidginaccountrow.c', 'pidginaccountsdisabledmenu.c', 'pidginaccountsenabledmenu.c', - 'pidginaddbuddydialog.c', 'pidginapplication.c', 'pidginautoadjustment.c', 'pidginavatar.c', @@ -81,7 +80,6 @@ 'pidginaccountrow.h', 'pidginaccountsdisabledmenu.h', 'pidginaccountsenabledmenu.h', - 'pidginaddbuddydialog.h', 'pidginapplication.h', 'pidginautoadjustment.h', 'pidginavatar.h',
--- a/pidgin/pidginaddbuddydialog.c Sun Jan 14 20:08:13 2024 -0600 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,300 +0,0 @@ -/* - * Pidgin - Internet Messenger - * Copyright (C) Pidgin Developers <devel@pidgin.im> - * - * 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 - * source distribution. - * - * 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/>. - */ - -#include <glib/gi18n.h> - -#include "pidginaddbuddydialog.h" - -#include "pidginaccountrow.h" -#include "pidgincore.h" - -struct _PidginAddBuddyDialog { - GtkDialog parent; - - GtkCustomFilter *filter; - - GtkWidget *account; - GtkWidget *username; - GtkWidget *alias; - GtkWidget *message; - GtkWidget *group; -}; - -G_DEFINE_TYPE(PidginAddBuddyDialog, pidgin_add_buddy_dialog, GTK_TYPE_DIALOG) - -/****************************************************************************** - * Helpers - *****************************************************************************/ -static gboolean -pidgin_add_buddy_dialog_filter_accounts(gpointer item, - G_GNUC_UNUSED gpointer data) -{ - gboolean ret = FALSE; - - if(PURPLE_IS_ACCOUNT(item)) { - PurpleAccount *account = PURPLE_ACCOUNT(item); - PurpleProtocol *protocol = purple_account_get_protocol(account); - - if(PURPLE_IS_PROTOCOL(protocol)) { - ret = PURPLE_PROTOCOL_IMPLEMENTS(protocol, SERVER, add_buddy); - } - } - - return ret; -} - -static void -pidgin_add_buddy_dialog_validate(PidginAddBuddyDialog *dialog) { - PurpleAccount *account = NULL; - gboolean valid = FALSE; - - account = pidgin_account_row_get_account(PIDGIN_ACCOUNT_ROW(dialog->account)); - if(PURPLE_IS_ACCOUNT(account)) { - PurpleProtocol *protocol = NULL; - - protocol = purple_account_get_protocol(account); - if(PURPLE_IS_PROTOCOL(protocol)) { - const gchar *username = gtk_editable_get_text(GTK_EDITABLE(dialog->username)); - - valid = purple_validate(protocol, username); - } - } - - gtk_dialog_set_response_sensitive(GTK_DIALOG(dialog), GTK_RESPONSE_OK, - valid); -} - -/****************************************************************************** - * Callbacks - *****************************************************************************/ -static void -pidgin_add_buddy_dialog_response_cb(GtkDialog *dialog, gint response_id, - G_GNUC_UNUSED gpointer data) -{ - PidginAddBuddyDialog *abdialog = PIDGIN_ADD_BUDDY_DIALOG(dialog); - - if(response_id == GTK_RESPONSE_OK) { - PurpleAccount *account = NULL; - PurpleBuddy *buddy = NULL; - PurpleGroup *group = NULL; - const gchar *username = NULL, *alias = NULL, *message = NULL; - gchar *groupname = NULL; - - /* Grab all of the values that the user entered. */ - account = pidgin_account_row_get_account(PIDGIN_ACCOUNT_ROW(abdialog->account)); - username = gtk_editable_get_text(GTK_EDITABLE(abdialog->username)); - alias = gtk_editable_get_text(GTK_EDITABLE(abdialog->alias)); - message = gtk_editable_get_text(GTK_EDITABLE(abdialog->message)); - groupname = gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(abdialog->group)); - - /* Make anything that is an empty string NULL. */ - if(alias != NULL && *alias == '\0') { - alias = NULL; - } - - if(message != NULL && *message == '\0') { - message = NULL; - } - - if(groupname != NULL && *groupname == '\0') { - g_clear_pointer(&groupname, g_free); - } - - /* Find the PurpleGroup that the user requested. */ - if(groupname != NULL) { - group = purple_blist_find_group(groupname); - - if(group == NULL) { - /* Create the group if it's new. */ - group = purple_group_new(groupname); - purple_blist_add_group(group, NULL); - } else { - /* Otherwise see if we already have a buddy in the existing - * group. - */ - buddy = purple_blist_find_buddy_in_group(account, username, - group); - } - } else { - /* If a group name was not provided, look if the buddy exists, and - * use its group. - */ - buddy = purple_blist_find_buddy(account, username); - if(PURPLE_IS_BUDDY(buddy)) { - group = purple_buddy_get_group(buddy); - } - } - - /* If we don't a buddy yet, create it now. */ - if(!PURPLE_IS_BUDDY(buddy)) { - buddy = purple_buddy_new(account, username, alias); - purple_blist_add_buddy(buddy, NULL, group, NULL); - } - - /* Add the buddy to the account. */ - purple_account_add_buddy(account, buddy, message); - -#if 0 - /* This is disabled for now because gtk_blist_auto_personize is static - * and we're going to be changing the data structure of the contact list - * in the near future, so this probably completely change. - */ - - /* Offer to merge people with the same alias. */ - if(alias != NULL && PURPLE_IS_GROUP(group)) { - gtk_blist_auto_personize(PURPLE_BLIST_NODE(group), alias); - } -#endif - - g_free(groupname); - } - - gtk_window_destroy(GTK_WINDOW(abdialog)); -} - -static void -pidgin_add_buddy_dialog_account_changed_cb(GObject *obj, - G_GNUC_UNUSED GParamSpec *pspec, - gpointer data) -{ - PidginAddBuddyDialog *dialog = data; - PurpleAccount *account = NULL; - gboolean message_sensitive = TRUE; - - account = pidgin_account_row_get_account(PIDGIN_ACCOUNT_ROW(obj)); - - if(PURPLE_IS_ACCOUNT(account)) { - PurpleProtocol *protocol = purple_account_get_protocol(account); - - if(PURPLE_IS_PROTOCOL(protocol)) { - PurpleProtocolOptions opts = purple_protocol_get_options(protocol); - - message_sensitive = (opts & OPT_PROTO_INVITE_MESSAGE); - } - } - - gtk_widget_set_sensitive(dialog->message, message_sensitive); - - pidgin_add_buddy_dialog_validate(dialog); -} - -static void -pidgin_add_buddy_dialog_username_changed_cb(G_GNUC_UNUSED GtkEditable *editable, - gpointer data) -{ - pidgin_add_buddy_dialog_validate(data); -} - -static void -pidgin_add_buddy_dialog_group_cb(PurpleBlistNode *node, gpointer data) { - PidginAddBuddyDialog *dialog = data; - PurpleGroup *group = PURPLE_GROUP(node); - - gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(dialog->group), - purple_group_get_name(group)); -} - -/****************************************************************************** - * GObject Implementation - *****************************************************************************/ -static void -pidgin_add_buddy_dialog_init(PidginAddBuddyDialog *dialog) { - gtk_widget_init_template(GTK_WIDGET(dialog)); - - gtk_dialog_set_default_response(GTK_DIALOG(dialog), GTK_RESPONSE_OK); - - gtk_custom_filter_set_filter_func(dialog->filter, - pidgin_add_buddy_dialog_filter_accounts, - NULL, NULL); - - purple_blist_walk(pidgin_add_buddy_dialog_group_cb, NULL, NULL, NULL, - dialog); -} - -static void -pidgin_add_buddy_dialog_class_init(PidginAddBuddyDialogClass *klass) { - GtkWidgetClass *widget_class = GTK_WIDGET_CLASS(klass); - - gtk_widget_class_set_template_from_resource( - widget_class, - "/im/pidgin/Pidgin3/Dialogs/addbuddy.ui" - ); - - gtk_widget_class_bind_template_child(widget_class, PidginAddBuddyDialog, - filter); - - gtk_widget_class_bind_template_child(widget_class, PidginAddBuddyDialog, - account); - gtk_widget_class_bind_template_child(widget_class, PidginAddBuddyDialog, - username); - gtk_widget_class_bind_template_child(widget_class, PidginAddBuddyDialog, - alias); - gtk_widget_class_bind_template_child(widget_class, PidginAddBuddyDialog, - message); - gtk_widget_class_bind_template_child(widget_class, PidginAddBuddyDialog, - group); - - gtk_widget_class_bind_template_callback(widget_class, - pidgin_add_buddy_dialog_response_cb); - gtk_widget_class_bind_template_callback(widget_class, - pidgin_add_buddy_dialog_account_changed_cb); - gtk_widget_class_bind_template_callback(widget_class, - pidgin_add_buddy_dialog_username_changed_cb); -} - -/****************************************************************************** - * Public API - *****************************************************************************/ -GtkWidget * -pidgin_add_buddy_dialog_new(PurpleAccount *account, const gchar *username, - const gchar *alias, const gchar *message, - const gchar *group) -{ - GtkWidget *dialog = g_object_new(PIDGIN_TYPE_ADD_BUDDY_DIALOG, NULL); - PidginAddBuddyDialog *abdialog = PIDGIN_ADD_BUDDY_DIALOG(dialog); - - if(PURPLE_IS_ACCOUNT(account)) { - pidgin_account_row_set_account(PIDGIN_ACCOUNT_ROW(abdialog->account), - account); - } - - if(username != NULL) { - gtk_editable_set_text(GTK_EDITABLE(abdialog->username), username); - } - - if(alias != NULL) { - gtk_editable_set_text(GTK_EDITABLE(abdialog->alias), alias); - } - - if(message != NULL) { - gtk_editable_set_text(GTK_EDITABLE(abdialog->message), message); - } - - if(group != NULL) { - GtkWidget *entry = NULL; - - entry = gtk_combo_box_get_child(GTK_COMBO_BOX(abdialog->group)); - gtk_editable_set_text(GTK_EDITABLE(entry), group); - } - - return dialog; -}
--- a/pidgin/pidginaddbuddydialog.h Sun Jan 14 20:08:13 2024 -0600 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,71 +0,0 @@ -/* - * Pidgin - Internet Messenger - * Copyright (C) Pidgin Developers <devel@pidgin.im> - * - * 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 - * source distribution. - * - * 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/>. - */ - -#if !defined(PIDGIN_GLOBAL_HEADER_INSIDE) && !defined(PIDGIN_COMPILATION) -# error "only <pidgin.h> may be included directly" -#endif - -#ifndef PIDGIN_ADD_BUDDY_DIALOG_H -#define PIDGIN_ADD_BUDDY_DIALOG_H - -#include <gtk/gtk.h> - -#include <purple.h> - -#include "pidginversion.h" - -G_BEGIN_DECLS - -/** - * PidginAddBuddyDialog: - * - * A dialog for adding buddies to your contact list. - * - * Since: 3.0.0 - */ - -#define PIDGIN_TYPE_ADD_BUDDY_DIALOG (pidgin_add_buddy_dialog_get_type()) - -PIDGIN_AVAILABLE_IN_3_0 -G_DECLARE_FINAL_TYPE(PidginAddBuddyDialog, pidgin_add_buddy_dialog, PIDGIN, - ADD_BUDDY_DIALOG, GtkDialog) - -/** - * pidgin_add_buddy_dialog_new: - * @account: (nullable): The [class@Purple.Account] to pre-select. - * @username: (nullable): The username to pre-fill. - * @alias: (nullable): The alias to pre-fill. - * @message: (nullable): The invite message to pre-fill. - * @group: (nullable): The group anem to pre-fill. - * - * Creates a add buddy dialog with the pre-filled optional values. - * - * Returns: (transfer full): The widget. - * - * Since: 3.0.0 - */ -PIDGIN_AVAILABLE_IN_3_0 -GtkWidget *pidgin_add_buddy_dialog_new(PurpleAccount *account, const gchar *username, const gchar *alias, const gchar *message, const gchar *group); - -G_END_DECLS - -#endif /* PIDGIN_ADD_BUDDY_DIALOG_H */
--- a/pidgin/resources/Dialogs/addbuddy.ui Sun Jan 14 20:08:13 2024 -0600 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,128 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- Generated with glade 3.38.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/>. - ---> -<interface> - <requires lib="gtk" version="4.0"/> - <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="PidginAddBuddyDialog" parent="GtkDialog"> - <property name="title" translatable="1">Add Buddy</property> - <property name="resizable">0</property> - <signal name="response" handler="pidgin_add_buddy_dialog_response_cb" swapped="no"/> - <child internal-child="content_area"> - <object class="GtkBox"> - <property name="margin-bottom">24</property> - <property name="margin-end">24</property> - <property name="margin-start">24</property> - <property name="margin-top">24</property> - <property name="orientation">vertical</property> - <property name="spacing">24</property> - <child> - <object class="GtkLabel"> - <property name="css-classes">title-1</property> - <property name="label" translatable="1">Add a buddy</property> - </object> - </child> - <child> - <object class="AdwPreferencesGroup"> - <property name="title" translatable="1">Buddy information</property> - <child> - <object class="PidginAccountRow" id="account"> - <property name="hexpand">1</property> - <property name="filter"> - <object class="GtkEveryFilter"> - <child> - <object class="GtkCustomFilter" id="filter"/> - </child> - <child> - <object class="PidginAccountFilterConnected"/> - </child> - </object> - </property> - <signal name="notify::account" handler="pidgin_add_buddy_dialog_account_changed_cb" swapped="no"/> - </object> - </child> - <child> - <object class="AdwEntryRow" id="username"> - <property name="title" translatable="1">Buddy's _username</property> - <property name="use-underline">1</property> - <property name="activates-default">1</property> - <signal name="changed" handler="pidgin_add_buddy_dialog_username_changed_cb" object="PidginAddBuddyDialog" swapped="no"/> - </object> - </child> - <child> - <object class="AdwEntryRow" id="alias"> - <property name="title" translatable="1">(Optional) A_lias</property> - <property name="use-underline">1</property> - </object> - </child> - <child> - <object class="AdwEntryRow" id="message"> - <property name="title" translatable="1">(Optional) _Invite message</property> - <property name="use-underline">1</property> - <property name="sensitive">0</property> - </object> - </child> - <child> - <object class="AdwActionRow"> - <property name="activatable-widget">group</property> - <property name="focusable">0</property> - <property name="title" translatable="1">Add buddy to _group</property> - <property name="use-underline">1</property> - <child> - <object class="GtkComboBoxText" id="group"> - <property name="hexpand">1</property> - <property name="has-entry">1</property> - <property name="valign">center</property> - </object> - </child> - </object> - </child> - </object> - </child> - </object> - </child> - <action-widgets> - <action-widget response="cancel">button1</action-widget> - <action-widget response="ok">button2</action-widget> - </action-widgets> - <child type="action"> - <object class="GtkButton" id="button1"> - <property name="label" translatable="1">_Cancel</property> - <property name="focusable">1</property> - <property name="receives-default">1</property> - <property name="use-underline">1</property> - </object> - </child> - <child type="action"> - <object class="GtkButton" id="button2"> - <property name="css-classes">suggested-action</property> - <property name="focusable">1</property> - <property name="label" translatable="1">_Add</property> - <property name="receives-default">1</property> - <property name="sensitive">0</property> - <property name="use-underline">1</property> - </object> - </child> - </template> -</interface>
--- a/pidgin/resources/pidgin.gresource.xml Sun Jan 14 20:08:13 2024 -0600 +++ b/pidgin/resources/pidgin.gresource.xml Tue Jan 23 00:02:11 2024 -0600 @@ -14,7 +14,6 @@ <file compressed="true" preprocess="xml-stripblanks">Conversations/message.ui</file> <file compressed="true" preprocess="xml-stripblanks">ContactList/widget.ui</file> <file compressed="true" preprocess="xml-stripblanks">Debug/debug.ui</file> - <file compressed="true" preprocess="xml-stripblanks">Dialogs/addbuddy.ui</file> <file compressed="true" preprocess="xml-stripblanks">Display/window.ui</file> <file compressed="true" preprocess="xml-stripblanks">Keypad/keypad.ui</file> <file compressed="true" preprocess="xml-stripblanks">Media/window.ui</file>
--- a/po/POTFILES.in Sun Jan 14 20:08:13 2024 -0600 +++ b/po/POTFILES.in Tue Jan 23 00:02:11 2024 -0600 @@ -251,7 +251,6 @@ pidgin/pidginaccountrow.c pidgin/pidginaccountsdisabledmenu.c pidgin/pidginaccountsenabledmenu.c -pidgin/pidginaddbuddydialog.c pidgin/pidginapplication.c pidgin/pidginavatar.c pidgin/pidgin.c @@ -294,7 +293,6 @@ pidgin/resources/avatar.ui pidgin/resources/Conversations/invite_dialog.ui pidgin/resources/Debug/debug.ui -pidgin/resources/Dialogs/addbuddy.ui pidgin/resources/Display/window.ui pidgin/resources/Keypad/keypad.ui pidgin/resources/Media/window.ui