# HG changeset patch # User Gary Kramlich # Date 1705989731 21600 # Node ID 4dc757d5f295330518e51c46897bf58606be6985 # Parent 31e8c7c92e2f025a6bbd6bbb52fe512e0d74c4f6 Remove PidginAddBuddyDialog as it is no longer used Testing Done: Used Turtle Power! Reviewed at https://reviews.imfreedom.org/r/2919/ diff -r 31e8c7c92e2f -r 4dc757d5f295 pidgin/meson.build --- 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', diff -r 31e8c7c92e2f -r 4dc757d5f295 pidgin/pidginaddbuddydialog.c --- 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 - * - * 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 . - */ - -#include - -#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; -} diff -r 31e8c7c92e2f -r 4dc757d5f295 pidgin/pidginaddbuddydialog.h --- 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 - * - * 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 . - */ - -#if !defined(PIDGIN_GLOBAL_HEADER_INSIDE) && !defined(PIDGIN_COMPILATION) -# error "only may be included directly" -#endif - -#ifndef PIDGIN_ADD_BUDDY_DIALOG_H -#define PIDGIN_ADD_BUDDY_DIALOG_H - -#include - -#include - -#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 */ diff -r 31e8c7c92e2f -r 4dc757d5f295 pidgin/resources/Dialogs/addbuddy.ui --- 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 @@ - - - - - - - - - - - diff -r 31e8c7c92e2f -r 4dc757d5f295 pidgin/resources/pidgin.gresource.xml --- 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 @@ Conversations/message.ui ContactList/widget.ui Debug/debug.ui - Dialogs/addbuddy.ui Display/window.ui Keypad/keypad.ui Media/window.ui diff -r 31e8c7c92e2f -r 4dc757d5f295 po/POTFILES.in --- 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