# HG changeset patch
# Node ID f1ae6405cd0a
# Parent  bdd5204a9e10
diff --git a/pidgin/gtkblist.c b/pidgin/gtkblist.c
--- a/pidgin/gtkblist.c
+++ b/pidgin/gtkblist.c
@@ -33,7 +33,6 @@
 #include "pidgin/pidginaccountchooser.h"
 #include "pidgin/pidginaccountfilterconnected.h"
 #include "pidgin/pidginaddbuddydialog.h"
-#include "pidgin/pidginaddchatdialog.h"
 
 typedef struct
 {
@@ -428,18 +427,6 @@
 }
 
 static void
-pidgin_blist_request_add_chat(G_GNUC_UNUSED PurpleBuddyList *list,
-                              PurpleAccount *account, PurpleGroup *group,
-                              const char *alias, const char *name)
-{
-	GtkWidget *dialog = NULL;
-
-	dialog = pidgin_add_chat_dialog_new(account, group, alias, name);
-
-	gtk_widget_set_visible(dialog, TRUE);
-}
-
-static void
 add_group_cb(G_GNUC_UNUSED PurpleConnection *connection,
              const char *group_name)
 {
@@ -476,6 +463,5 @@
 	PurpleBuddyListClass *purple_blist_class = PURPLE_BUDDY_LIST_CLASS(klass);
 
 	purple_blist_class->request_add_buddy = pidgin_blist_request_add_buddy;
-	purple_blist_class->request_add_chat = pidgin_blist_request_add_chat;
 	purple_blist_class->request_add_group = pidgin_blist_request_add_group;
 }
diff --git a/pidgin/meson.build b/pidgin/meson.build
--- a/pidgin/meson.build
+++ b/pidgin/meson.build
@@ -27,7 +27,6 @@
 	'pidginaccountsenabledmenu.c',
 	'pidginactiongroup.c',
 	'pidginaddbuddydialog.c',
-	'pidginaddchatdialog.c',
 	'pidginapplication.c',
 	'pidginautoadjustment.c',
 	'pidginavatar.c',
@@ -94,7 +93,6 @@
 	'pidginaccountsenabledmenu.h',
 	'pidginactiongroup.h',
 	'pidginaddbuddydialog.h',
-	'pidginaddchatdialog.h',
 	'pidginapplication.h',
 	'pidginautoadjustment.h',
 	'pidginavatar.h',
diff --git a/pidgin/pidginaddchatdialog.h b/pidgin/pidginaddchatdialog.h
deleted file mode 100644
--- a/pidgin/pidginaddchatdialog.h
+++ /dev/null
@@ -1,70 +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_CHAT_DIALOG_H
-#define PIDGIN_ADD_CHAT_DIALOG_H
-
-#include <gtk/gtk.h>
-
-#include <purple.h>
-
-#include "pidginversion.h"
-
-G_BEGIN_DECLS
-
-/**
- * PidginAddChatDialog:
- *
- * A dialog for adding chats to your contact list.
- *
- * Since: 3.0.0
- */
-
-#define PIDGIN_TYPE_ADD_CHAT_DIALOG (pidgin_add_chat_dialog_get_type())
-
-PIDGIN_AVAILABLE_IN_3_0
-G_DECLARE_FINAL_TYPE(PidginAddChatDialog, pidgin_add_chat_dialog, PIDGIN,
-                     ADD_CHAT_DIALOG, GtkDialog)
-
-/**
- * pidgin_add_chat_dialog_new:
- * @account: (nullable): The [class@Purple.Account] to pre-select.
- * @group: (nullable): The [class@Purple.Group] to pre-fill.
- * @alias: (nullable): The alias to pre-fill.
- * @name: (nullable): The name of the chat to pre-fill.
- *
- * Creates an add chat dialog with the pre-filled optional values.
- *
- * Returns: (transfer full): The widget.
- *
- * Since: 3.0.0
- */
-PIDGIN_AVAILABLE_IN_3_0
-GtkWidget *pidgin_add_chat_dialog_new(PurpleAccount *account, PurpleGroup *group, const gchar *alias, const gchar *name);
-
-G_END_DECLS
-
-#endif /* PIDGIN_ADD_CHAT_DIALOG_H */
diff --git a/pidgin/pidginaddchatdialog.c b/pidgin/pidginaddchatdialog.c
deleted file mode 100644
--- a/pidgin/pidginaddchatdialog.c
+++ /dev/null
@@ -1,442 +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 "pidginaddchatdialog.h"
-
-#include "gtkroomlist.h"
-#include "pidginaccountchooser.h"
-#include "pidgincore.h"
-
-struct _PidginAddChatDialog {
-	GtkDialog parent;
-
-	GtkCustomFilter *filter;
-
-	const gchar *default_name;
-
-	GtkWidget *account;
-	GtkWidget *dynamic_group;
-	GtkWidget *alias;
-	GtkWidget *group;
-	GtkWidget *autojoin;
-	GtkWidget *persistent;
-
-	GList *rows;
-};
-
-G_DEFINE_TYPE(PidginAddChatDialog, pidgin_add_chat_dialog, GTK_TYPE_DIALOG)
-
-/* ugh, prototypes... */
-static void pidgin_add_chat_dialog_input_changed_cb(GtkEditable *editable, gpointer data);
-
-/******************************************************************************
- * Helpers
- *****************************************************************************/
-static void
-pidgin_add_chat_dialog_validate_input(gpointer data, gpointer user_data) {
-	gboolean *valid = user_data;
-	gboolean required = FALSE;
-
-	required = GPOINTER_TO_INT(g_object_get_data(data, "required"));
-	if(required) {
-		const gchar *value = gtk_editable_get_text(GTK_EDITABLE(data));
-
-		if(value == NULL || *value == '\0') {
-			*valid = FALSE;
-		} else if(g_object_get_data(data, "integer")) {
-			gint int_value = atoi(value);
-			char *str_value = g_strdup_printf("%d", int_value);
-
-			if(!purple_strequal(value, str_value)) {
-				*valid = FALSE;
-			}
-
-			g_free(str_value);
-		}
-	}
-}
-
-static void
-pidgin_add_chat_dialog_validate(PidginAddChatDialog *dialog) {
-	gboolean valid = TRUE;
-
-	/* The callback should only set valid to FALSE if a field is invalid and
-	 * not set valid if the field is valid.
-	 */
-	g_list_foreach(dialog->rows,
-	               pidgin_add_chat_dialog_validate_input,
-	               &valid);
-
-	gtk_dialog_set_response_sensitive(GTK_DIALOG(dialog), GTK_RESPONSE_OK,
-	                                  valid);
-}
-
-static void
-pidgin_add_chat_dialog_update_components(PidginAddChatDialog *dialog) {
-	PurpleAccount *account = NULL;
-	PurpleConnection *connection = NULL;
-	PurpleProtocol *protocol = NULL;
-	GList *info = NULL;
-	GHashTable *defaults = NULL;
-	gboolean focus_set = FALSE;
-
-	/* Clean up the dynamic group and our list of rows. */
-	while(dialog->rows != NULL) {
-		adw_preferences_group_remove(ADW_PREFERENCES_GROUP(dialog->dynamic_group),
-		                             dialog->rows->data);
-		dialog->rows = g_list_delete_link(dialog->rows, dialog->rows);
-	}
-
-	account = pidgin_account_chooser_get_selected(PIDGIN_ACCOUNT_CHOOSER(dialog->account));
-	if(!PURPLE_IS_ACCOUNT(account)) {
-		return;
-	}
-
-	connection = purple_account_get_connection(account);
-	protocol = purple_account_get_protocol(account);
-	info = purple_protocol_chat_info(PURPLE_PROTOCOL_CHAT(protocol),
-	                                 connection);
-	defaults = purple_protocol_chat_info_defaults(PURPLE_PROTOCOL_CHAT(protocol),
-	                                              connection,
-	                                              dialog->default_name);
-
-	while(info != NULL) {
-		GtkWidget *row = NULL;
-		PurpleProtocolChatEntry *pce = info->data;
-		char *value = NULL;
-
-		if(pce->is_int) {
-			row = adw_entry_row_new();
-			adw_entry_row_set_input_purpose(ADW_ENTRY_ROW(row),
-			                                GTK_INPUT_PURPOSE_NUMBER);
-		} else if(pce->secret) {
-			row = adw_password_entry_row_new();
-		} else {
-			row = adw_entry_row_new();
-		}
-
-		value = g_hash_table_lookup(defaults, pce->identifier);
-		if(value != NULL) {
-			gtk_editable_set_text(GTK_EDITABLE(row), value);
-		}
-
-		g_signal_connect(row, "changed",
-		                 G_CALLBACK(pidgin_add_chat_dialog_input_changed_cb),
-		                 dialog);
-
-		adw_preferences_row_set_title(ADW_PREFERENCES_ROW(row), pce->label);
-		adw_preferences_row_set_use_underline(ADW_PREFERENCES_ROW(row), TRUE);
-
-		adw_preferences_group_add(ADW_PREFERENCES_GROUP(dialog->dynamic_group),
-		                          row);
-
-		if(!focus_set) {
-			gtk_widget_grab_focus(row);
-			focus_set = TRUE;
-		}
-
-		g_object_set_data(G_OBJECT(row), "identifier",
-		                  (gpointer)pce->identifier);
-		g_object_set_data(G_OBJECT(row), "integer",
-		                  GINT_TO_POINTER(pce->is_int));
-		g_object_set_data(G_OBJECT(row), "required",
-		                  GINT_TO_POINTER(pce->required));
-
-		dialog->rows = g_list_append(dialog->rows, row);
-
-		g_free(pce);
-
-		info = g_list_delete_link(info, info);
-	}
-
-	g_hash_table_destroy(defaults);
-
-	pidgin_add_chat_dialog_validate(dialog);
-}
-
-static gboolean
-pidgin_add_chat_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, CHAT, info);
-		}
-	}
-
-	return ret;
-}
-
-static void
-pidgin_add_chat_dialog_add_input_to_components(gpointer data,
-                                               gpointer user_data)
-{
-	GHashTable *components = user_data;
-	gchar *identifier = NULL;
-	gchar *value = NULL;
-
-	identifier = g_strdup(g_object_get_data(data, "identifier"));
-
-	if(g_object_get_data(data, "integer")) {
-		const char *str_value = gtk_editable_get_text(GTK_EDITABLE(data));
-		gint int_value = atoi(str_value);
-
-		value = g_strdup_printf("%d", int_value);
-	} else {
-		const gchar *str_value = gtk_editable_get_text(GTK_EDITABLE(data));
-
-		if(*str_value != '\0') {
-			value = g_strdup(str_value);
-		}
-	}
-
-	/* If the value was changed to an empty string, we should remove it from the
-	 * components.
-	 */
-	if(value == NULL) {
-		g_hash_table_remove(components, identifier);
-		g_free(identifier);
-	} else {
-		g_hash_table_replace(components, identifier, value);
-	}
-}
-
-/******************************************************************************
- * Callbacks
- *****************************************************************************/
-static void
-pidgin_add_chat_dialog_input_changed_cb(G_GNUC_UNUSED GtkEditable *editable,
-                                        gpointer data)
-{
-	pidgin_add_chat_dialog_validate(data);
-}
-
-static void
-pidgin_add_chat_dialog_response_cb(GtkDialog *dialog, gint response_id,
-                                   G_GNUC_UNUSED gpointer data)
-{
-	PurpleAccount *account = NULL;
-	PidginAddChatDialog *acdialog = PIDGIN_ADD_CHAT_DIALOG(dialog);
-	gboolean close = TRUE;
-
-	account = pidgin_account_chooser_get_selected(PIDGIN_ACCOUNT_CHOOSER(acdialog->account));
-
-	if(response_id == 1) {
-		pidgin_roomlist_dialog_show_with_account(account);
-
-		close = FALSE;
-	} else if(response_id == GTK_RESPONSE_OK) {
-		PurpleChat *chat = NULL;
-		GHashTable *components = NULL;
-		const gchar *alias = NULL;
-
-		components = g_hash_table_new_full(g_str_hash, g_str_equal, g_free,
-		                                   g_free);
-		g_list_foreach(acdialog->rows,
-		               pidgin_add_chat_dialog_add_input_to_components,
-		               components);
-
-		alias = gtk_editable_get_text(GTK_EDITABLE(acdialog->alias));
-
-		chat = purple_chat_new(account, alias, components);
-
-		if(PURPLE_IS_CHAT(chat)) {
-			PurpleGroup *group = NULL;
-			gchar *group_name = NULL;
-
-			group_name = gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(acdialog->group));
-			if(group_name != NULL && *group_name != '\0') {
-				group = purple_blist_find_group(group_name);
-			}
-
-			if(!PURPLE_IS_GROUP(group)) {
-				group = purple_group_new(group_name);
-				purple_blist_add_group(group, NULL);
-			}
-
-			purple_blist_add_chat(chat, group, NULL);
-
-			if(gtk_switch_get_active(GTK_SWITCH(acdialog->autojoin))) {
-				purple_blist_node_set_bool(PURPLE_BLIST_NODE(chat),
-				                           "gtk-autojoin", TRUE);
-			}
-			if(gtk_switch_get_active(GTK_SWITCH(acdialog->persistent))) {
-				purple_blist_node_set_bool(PURPLE_BLIST_NODE(chat),
-				                           "gtk-persistent", TRUE);
-			}
-
-			g_free(group_name);
-		} else {
-			g_warning("failed to create chat");
-		}
-	}
-
-	if(close) {
-		gtk_window_destroy(GTK_WINDOW(dialog));
-	}
-}
-
-static void
-pidgin_add_chat_dialog_account_changed_cb(GObject *obj,
-                                          G_GNUC_UNUSED GParamSpec *pspec,
-                                          gpointer data)
-{
-	PidginAddChatDialog *dialog = data;
-	PurpleAccount *account = NULL;
-
-	account = pidgin_account_chooser_get_selected(PIDGIN_ACCOUNT_CHOOSER(obj));
-
-	if(PURPLE_IS_ACCOUNT(account)) {
-		PurpleProtocol *protocol = purple_account_get_protocol(account);
-
-		if(PURPLE_IS_PROTOCOL(protocol)) {
-			gboolean roomlist = FALSE;
-
-			roomlist = PURPLE_PROTOCOL_IMPLEMENTS(protocol, ROOMLIST, get_list);
-
-			gtk_dialog_set_response_sensitive(GTK_DIALOG(dialog), 1, roomlist);
-		}
-	}
-
-	pidgin_add_chat_dialog_update_components(dialog);
-
-	pidgin_add_chat_dialog_validate(dialog);
-}
-
-static void
-pidgin_add_chat_dialog_username_changed_cb(G_GNUC_UNUSED GtkEditable *editable,
-                                           gpointer data)
-{
-	pidgin_add_chat_dialog_validate(data);
-}
-
-static void
-pidgin_add_chat_dialog_group_cb(PurpleBlistNode *node, gpointer data) {
-	PidginAddChatDialog *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_chat_dialog_finalize(GObject *obj) {
-	PidginAddChatDialog *dialog = PIDGIN_ADD_CHAT_DIALOG(obj);
-
-	g_list_free(dialog->rows);
-
-	G_OBJECT_CLASS(pidgin_add_chat_dialog_parent_class)->finalize(obj);
-}
-
-static void
-pidgin_add_chat_dialog_init(PidginAddChatDialog *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_chat_dialog_filter_accounts,
-	                                  NULL, NULL);
-
-	purple_blist_walk(pidgin_add_chat_dialog_group_cb, NULL, NULL, NULL,
-	                  dialog);
-}
-
-static void
-pidgin_add_chat_dialog_class_init(PidginAddChatDialogClass *klass) {
-	GObjectClass *obj_class = G_OBJECT_CLASS(klass);
-	GtkWidgetClass *widget_class = GTK_WIDGET_CLASS(klass);
-
-	obj_class->finalize = pidgin_add_chat_dialog_finalize;
-
-	gtk_widget_class_set_template_from_resource(
-		widget_class,
-		"/im/pidgin/Pidgin3/Dialogs/addchat.ui"
-	);
-
-	gtk_widget_class_bind_template_child(widget_class, PidginAddChatDialog,
-	                                     filter);
-
-	gtk_widget_class_bind_template_child(widget_class, PidginAddChatDialog,
-	                                     account);
-	gtk_widget_class_bind_template_child(widget_class, PidginAddChatDialog,
-	                                     dynamic_group);
-	gtk_widget_class_bind_template_child(widget_class, PidginAddChatDialog,
-	                                     alias);
-	gtk_widget_class_bind_template_child(widget_class, PidginAddChatDialog,
-	                                     group);
-	gtk_widget_class_bind_template_child(widget_class, PidginAddChatDialog,
-	                                     autojoin);
-	gtk_widget_class_bind_template_child(widget_class, PidginAddChatDialog,
-	                                     persistent);
-
-	gtk_widget_class_bind_template_callback(widget_class,
-	                                        pidgin_add_chat_dialog_response_cb);
-	gtk_widget_class_bind_template_callback(widget_class,
-	                                        pidgin_add_chat_dialog_account_changed_cb);
-	gtk_widget_class_bind_template_callback(widget_class,
-	                                        pidgin_add_chat_dialog_username_changed_cb);
-}
-
-/******************************************************************************
- * Public API
- *****************************************************************************/
-GtkWidget *
-pidgin_add_chat_dialog_new(PurpleAccount *account, PurpleGroup *group,
-                           const gchar *alias, const gchar *name)
-{
-	GtkWidget *dialog = g_object_new(PIDGIN_TYPE_ADD_CHAT_DIALOG, NULL);
-	PidginAddChatDialog *acdialog = PIDGIN_ADD_CHAT_DIALOG(dialog);
-
-	if(PURPLE_IS_ACCOUNT(account)) {
-		pidgin_account_chooser_set_selected(PIDGIN_ACCOUNT_CHOOSER(acdialog->account),
-		                                    account);
-	}
-
-	if(alias != NULL) {
-		gtk_editable_set_text(GTK_EDITABLE(acdialog->alias), alias);
-	}
-
-	if(PURPLE_IS_GROUP(group)) {
-		GtkWidget *entry = NULL;
-
-		entry = gtk_combo_box_get_child(GTK_COMBO_BOX(acdialog->group));
-		gtk_editable_set_text(GTK_EDITABLE(entry),
-		                      purple_group_get_name(group));
-	}
-
-	acdialog->default_name = name;
-
-	pidgin_add_chat_dialog_update_components(acdialog);
-
-	return dialog;
-}
diff --git a/pidgin/resources/Dialogs/addchat.ui b/pidgin/resources/Dialogs/addchat.ui
deleted file mode 100644
--- a/pidgin/resources/Dialogs/addchat.ui
+++ /dev/null
@@ -1,167 +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="PidginAddChatDialog" parent="GtkDialog">
-    <property name="title" translatable="1">Add Chat</property>
-    <signal name="response" handler="pidgin_add_chat_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 chat</property>
-          </object>
-        </child>
-        <child>
-          <object class="GtkBox">
-            <property name="spacing">5</property>
-            <child>
-              <object class="GtkLabel" id="label1">
-                <property name="label" translatable="1">A_ccount:</property>
-                <property name="use-underline">1</property>
-                <property name="mnemonic-widget">account</property>
-                <property name="xalign">0</property>
-              </object>
-            </child>
-            <child>
-              <object class="PidginAccountChooser" 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_chat_dialog_account_changed_cb" swapped="no"/>
-                <accessibility>
-                  <relation name="labelled-by">label1</relation>
-                </accessibility>
-              </object>
-            </child>
-          </object>
-        </child>
-        <child>
-          <object class="AdwPreferencesGroup" id="dynamic_group">
-            <property name="title" translatable="1">Chat information</property>
-            <property name="description" translatable="1">Please enter the appropriate information about the chat you would like to add to your buddy list.</property>
-          </object>
-        </child>
-        <child>
-          <object class="AdwPreferencesGroup">
-            <property name="title" translatable="1">Local information</property>
-            <child>
-              <object class="AdwEntryRow" id="alias">
-                <property name="title" translatable="1">A_lias</property>
-                <property name="use-underline">1</property>
-              </object>
-            </child>
-            <child>
-              <object class="AdwActionRow">
-                <property name="activatable-widget">group</property>
-                <property name="focusable">0</property>
-                <property name="title" translatable="1">_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>
-            <child>
-              <object class="AdwActionRow">
-                <property name="activatable-widget">autojoin</property>
-                <property name="focusable">0</property>
-                <property name="title" translatable="1">Automatically _join when account connects</property>
-                <property name="use-underline">1</property>
-                <child>
-                  <object class="GtkSwitch" id="autojoin">
-                    <property name="valign">center</property>
-                  </object>
-                </child>
-              </object>
-            </child>
-            <child>
-              <object class="AdwActionRow">
-                <property name="activatable-widget">persistent</property>
-                <property name="focusable">0</property>
-                <property name="title" translatable="1">_Remain in chat after window is closed</property>
-                <property name="use-underline">1</property>
-                <child>
-                  <object class="GtkSwitch" id="persistent">
-                    <property name="valign">center</property>
-                  </object>
-                </child>
-              </object>
-            </child>
-          </object>
-        </child>
-      </object>
-    </child>
-    <child type="action">
-      <object class="GtkButton" id="button3">
-        <property name="label" translatable="1">Room List</property>
-        <property name="focusable">1</property>
-        <property name="receives-default">1</property>
-      </object>
-    </child>
-    <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="label" translatable="1">_Add</property>
-        <property name="sensitive">0</property>
-        <property name="focusable">1</property>
-        <property name="receives-default">1</property>
-        <property name="use-underline">1</property>
-      </object>
-    </child>
-    <action-widgets>
-      <action-widget response="1">button3</action-widget>
-      <action-widget response="cancel">button1</action-widget>
-      <action-widget response="ok">button2</action-widget>
-    </action-widgets>
-  </template>
-</interface>
diff --git a/pidgin/resources/pidgin.gresource.xml b/pidgin/resources/pidgin.gresource.xml
--- a/pidgin/resources/pidgin.gresource.xml
+++ b/pidgin/resources/pidgin.gresource.xml
@@ -17,7 +17,6 @@
     <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">Dialogs/addchat.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>
diff --git a/po/POTFILES.in b/po/POTFILES.in
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -255,7 +255,6 @@
 pidgin/pidginaccountsenabledmenu.c
 pidgin/pidginactiongroup.c
 pidgin/pidginaddbuddydialog.c
-pidgin/pidginaddchatdialog.c
 pidgin/pidginapplication.c
 pidgin/pidginavatar.c
 pidgin/pidgin.c
@@ -306,7 +305,6 @@
 pidgin/resources/Conversations/invite_dialog.ui
 pidgin/resources/Debug/debug.ui
 pidgin/resources/Dialogs/addbuddy.ui
-pidgin/resources/Dialogs/addchat.ui
 pidgin/resources/Display/window.ui
 pidgin/resources/Keypad/keypad.ui
 pidgin/resources/Media/window.ui
