# HG changeset patch
# Node ID 26611da78879
# Parent  6b1dc67b861d
diff --git a/pidgin/meson.build b/pidgin/meson.build
--- a/pidgin/meson.build
+++ b/pidgin/meson.build
@@ -52,7 +52,6 @@
 	'pidginpluginsmenu.c',
 	'pidginpresenceicon.c',
 	'pidginprotocolchooser.c',
-	'pidginproxyoptions.c',
 	'pidginstatusbox.c',
 	'pidginstatuseditor.c',
 	'pidginstatusmanager.c',
@@ -122,7 +121,6 @@
 	'pidginpluginsmenu.h',
 	'pidginpresenceicon.h',
 	'pidginprotocolchooser.h',
-	'pidginproxyoptions.h',
 	'pidginstatusbox.h',
 	'pidginstatuseditor.h',
 	'pidginstatusmanager.h',
diff --git a/pidgin/pidginproxyoptions.h b/pidgin/pidginproxyoptions.h
deleted file mode 100644
--- a/pidgin/pidginproxyoptions.h
+++ /dev/null
@@ -1,108 +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_PROXY_OPTIONS_H
-#define PIDGIN_PROXY_OPTIONS_H
-
-#include <gtk/gtk.h>
-
-#include <purple.h>
-
-G_BEGIN_DECLS
-
-/**
- * PidginProxyOptions:
- *
- * A widget for the proxy options in the account editor.
- *
- * Since: 3.0.0
- */
-
-#define PIDGIN_TYPE_PROXY_OPTIONS (pidgin_proxy_options_get_type())
-G_DECLARE_FINAL_TYPE(PidginProxyOptions, pidgin_proxy_options, PIDGIN,
-                     PROXY_OPTIONS, GtkBox)
-
-/**
- * pidgin_proxy_options_new:
- *
- * Creates a new proxy options widget.
- *
- * Returns: (transfer full): The widget.
- *
- * Since: 3.0.0
- */
-GtkWidget *pidgin_proxy_options_new(void);
-
-/**
- * pidgin_proxy_options_set_show_global:
- * @options: The instance.
- * @show_global: Whether or not to show the use global settings proxy item.
- *
- * Sets whether or not to show the "Use Global Proxy Settings" item.
- *
- * Since: 3.0.0
- */
-void pidgin_proxy_options_set_show_global(PidginProxyOptions *options, gboolean show_global);
-
-/**
- * pidgin_proxy_options_get_show_global:
- * @options: The instance.
- *
- * Gets whether or not @options is displaying the "Use Global Proxy Settings"
- * item.
- *
- * Returns: %TRUE if displaying it, %FALSE otherwise.
- *
- * Since: 3.0.0
- */
-gboolean pidgin_proxy_options_get_show_global(PidginProxyOptions *options);
-
-/**
- * pidgin_proxy_options_get_info:
- * @options: The instance.
- *
- * Gets the [class@Purple.ProxyInfo] that is being configured.
- *
- * Returns: (transfer none): The proxy info.
- *
- * Since: 3.0.0
- */
-PurpleProxyInfo *pidgin_proxy_options_get_info(PidginProxyOptions *options);
-
-/**
- * pidgin_proxy_options_set_info:
- * @options: The instance.
- * @info: (nullable): The [class@Purple.ProxyInfo] to set.
- *
- * The proxy info that will be configured.
- *
- * Since: 3.0.0
- */
-void pidgin_proxy_options_set_info(PidginProxyOptions *options, PurpleProxyInfo *info);
-
-G_END_DECLS
-
-#endif /* PIDGIN_PROXY_OPTIONS_H */
diff --git a/pidgin/pidginproxyoptions.c b/pidgin/pidginproxyoptions.c
deleted file mode 100644
--- a/pidgin/pidginproxyoptions.c
+++ /dev/null
@@ -1,438 +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 "pidginproxyoptions.h"
-
-#include "gtkaccount.h"
-#include "pidgincore.h"
-
-struct _PidginProxyOptions {
-	GtkBox parent;
-
-	gboolean show_global;
-	PurpleProxyInfo *info;
-
-	GtkListStore *model;
-	GtkTreeModelFilter *filter;
-
-	GtkWidget *proxy_type;
-
-	GtkWidget *options;
-	GtkWidget *hostname;
-	GtkWidget *port;
-	GtkWidget *username;
-	GtkWidget *password;
-};
-
-enum {
-	PROP_0,
-	PROP_SHOW_GLOBAL,
-	PROP_INFO,
-	N_PROPERTIES
-};
-static GParamSpec *properties[N_PROPERTIES] = {NULL, };
-
-enum {
-	COLUMN_TYPE,
-	COLUMN_TITLE,
-};
-
-G_DEFINE_TYPE(PidginProxyOptions, pidgin_proxy_options, GTK_TYPE_BOX)
-
-/******************************************************************************
- * Helpers
- *****************************************************************************/
-static gboolean
-pidgin_proxy_options_null_to_empty_str(G_GNUC_UNUSED GBinding *binding,
-                                       const GValue *from_value,
-                                       GValue *to_value,
-                                       G_GNUC_UNUSED gpointer data)
-{
-	const gchar *str_val = g_value_get_string(from_value);
-
-	if(str_val == NULL) {
-		str_val = "";
-	}
-
-	g_value_set_string(to_value, str_val);
-
-	return TRUE;
-}
-
-static gboolean
-pidgin_proxy_options_empty_str_to_null(G_GNUC_UNUSED GBinding *binding,
-                                       const GValue *from_value,
-                                       GValue *to_value,
-                                       G_GNUC_UNUSED gpointer data)
-{
-	const gchar *str_val = g_value_get_string(from_value);
-
-	if(str_val != NULL && *str_val == '\0') {
-		str_val = NULL;
-	}
-
-	g_value_set_string(to_value, str_val);
-
-	return TRUE;
-}
-
-static gboolean
-pidgin_proxy_options_gint_to_double(G_GNUC_UNUSED GBinding *binding,
-                                    const GValue *from_value, GValue *to_value,
-                                    G_GNUC_UNUSED gpointer data)
-{
-	g_value_set_double(to_value, (gdouble)g_value_get_int(from_value));
-
-	return TRUE;
-}
-
-static gboolean
-pidgin_proxy_options_double_to_gint(G_GNUC_UNUSED GBinding *binding,
-                                    const GValue *from_value, GValue *to_value,
-                                    G_GNUC_UNUSED gpointer user_data)
-{
-	g_value_set_int(to_value, (gint)g_value_get_double(from_value));
-
-	return TRUE;
-}
-
-static gboolean
-pidgin_proxy_options_filter_visible(GtkTreeModel *model, GtkTreeIter *iter,
-                                    gpointer data)
-{
-	PidginProxyOptions *options = data;
-	PurpleProxyType type;
-
-	gtk_tree_model_get(model, iter, COLUMN_TYPE, &type, -1);
-
-	if(type == PURPLE_PROXY_TYPE_USE_GLOBAL) {
-		return options->show_global;
-	}
-
-	return TRUE;
-}
-
-/******************************************************************************
- * Callbacks
- *****************************************************************************/
-static void
-pidgin_proxy_options_proxy_type_changed_cb(GtkComboBox *box, gpointer data) {
-	PidginProxyOptions *options = data;
-	PurpleProxyType type;
-	GtkTreeIter iter;
-	gboolean sensitive = TRUE;
-
-	if(!gtk_combo_box_get_active_iter(GTK_COMBO_BOX(options->proxy_type), &iter)) {
-		return;
-	}
-
-	gtk_tree_model_get(GTK_TREE_MODEL(options->filter), &iter,
-	                   COLUMN_TYPE, &type,
-	                   -1);
-
-	purple_proxy_info_set_proxy_type(options->info, type);
-
-	switch(type) {
-		case PURPLE_PROXY_TYPE_USE_GLOBAL:
-		case PURPLE_PROXY_TYPE_NONE:
-		case PURPLE_PROXY_TYPE_USE_ENVVAR:
-			sensitive = FALSE;
-			break;
-		default:
-			break;
-	}
-
-	gtk_widget_set_sensitive(options->options, sensitive);
-}
-
-/******************************************************************************
- * GObject Implementation
- *****************************************************************************/
-static void
-pidgin_proxy_options_get_property(GObject *obj, guint param_id, GValue *value,
-                                  GParamSpec *pspec)
-{
-	PidginProxyOptions *options = PIDGIN_PROXY_OPTIONS(obj);
-
-	switch(param_id) {
-		case PROP_SHOW_GLOBAL:
-			g_value_set_boolean(value,
-			                    pidgin_proxy_options_get_show_global(options));
-			break;
-		case PROP_INFO:
-			g_value_set_object(value, pidgin_proxy_options_get_info(options));
-			break;
-		default:
-			G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec);
-			break;
-	}
-}
-
-static void
-pidgin_proxy_options_set_property(GObject *obj, guint param_id,
-                                  const GValue *value, GParamSpec *pspec)
-{
-	PidginProxyOptions *options = PIDGIN_PROXY_OPTIONS(obj);
-
-	switch(param_id) {
-		case PROP_SHOW_GLOBAL:
-			pidgin_proxy_options_set_show_global(options,
-			                                     g_value_get_boolean(value));
-			break;
-		case PROP_INFO:
-			pidgin_proxy_options_set_info(options, g_value_get_object(value));
-			break;
-		default:
-			G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec);
-			break;
-	}
-}
-
-static void
-pidgin_proxy_options_init(PidginProxyOptions *options) {
-	gtk_widget_init_template(GTK_WIDGET(options));
-
-	/* Set the visible function so we can control the visibility of the "Use
-	 * Global Proxy" option.
-	 */
-	gtk_tree_model_filter_set_visible_func(options->filter,
-	                                       pidgin_proxy_options_filter_visible,
-	                                       options, NULL);
-
-	/* Force the filter to refresh. */
-	gtk_tree_model_filter_refilter(options->filter);
-}
-
-static void
-pidgin_proxy_options_constructed(GObject *obj) {
-	PidginProxyOptions *options = PIDGIN_PROXY_OPTIONS(obj);
-
-	G_OBJECT_CLASS(pidgin_proxy_options_parent_class)->constructed(obj);
-
-	if(options->info == NULL) {
-		pidgin_proxy_options_set_info(options, NULL);
-	}
-}
-
-static void
-pidgin_proxy_options_class_init(PidginProxyOptionsClass *klass) {
-	GObjectClass *obj_class = G_OBJECT_CLASS(klass);
-	GtkWidgetClass *widget_class = GTK_WIDGET_CLASS(klass);
-
-	obj_class->get_property = pidgin_proxy_options_get_property;
-	obj_class->set_property = pidgin_proxy_options_set_property;
-	obj_class->constructed = pidgin_proxy_options_constructed;
-
-	/**
-	 * PidginProxyOptions:show-global:
-	 *
-	 * Whether or not to show the "Use Global Proxy Settings" option. This
-	 * is turned off for the preferences where we use this widget to define
-	 * the global proxy settings.
-	 *
-	 * Since: 3.0.0
-	 */
-	properties[PROP_SHOW_GLOBAL] = g_param_spec_boolean(
-		"show-global", "show-global",
-		"Whether or not to show the global proxy settings option",
-		TRUE,
-		G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS);
-
-	/**
-	 * PidginProxyOptions:info:
-	 *
-	 * The [class@Purple.ProxyInfo] that this options widget is configuring. If
-	 * unset, a new instance will be created.
-	 *
-	 * Since: 3.0.0
-	 */
-	properties[PROP_INFO] = g_param_spec_object(
-		"info", "info",
-		"The proxy info to configure",
-		PURPLE_TYPE_PROXY_INFO,
-		G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS);
-
-	g_object_class_install_properties(obj_class, N_PROPERTIES, properties);
-
-	gtk_widget_class_set_template_from_resource(
-		widget_class,
-		"/im/pidgin/Pidgin3/proxyoptions.ui"
-	);
-
-	gtk_widget_class_bind_template_child(widget_class, PidginProxyOptions,
-	                                     model);
-	gtk_widget_class_bind_template_child(widget_class, PidginProxyOptions,
-	                                     filter);
-
-	gtk_widget_class_bind_template_child(widget_class, PidginProxyOptions,
-	                                     proxy_type);
-
-	gtk_widget_class_bind_template_child(widget_class, PidginProxyOptions,
-	                                     options);
-	gtk_widget_class_bind_template_child(widget_class, PidginProxyOptions,
-	                                     hostname);
-	gtk_widget_class_bind_template_child(widget_class, PidginProxyOptions,
-	                                     port);
-	gtk_widget_class_bind_template_child(widget_class, PidginProxyOptions,
-	                                     username);
-	gtk_widget_class_bind_template_child(widget_class, PidginProxyOptions,
-	                                     password);
-
-	gtk_widget_class_bind_template_callback(widget_class,
-	                                        pidgin_proxy_options_proxy_type_changed_cb);
-}
-
-/******************************************************************************
- * Public API
- *****************************************************************************/
-GtkWidget *
-pidgin_proxy_options_new(void) {
-	return g_object_new(PIDGIN_TYPE_PROXY_OPTIONS, NULL);
-}
-
-void
-pidgin_proxy_options_set_show_global(PidginProxyOptions *options,
-                                     gboolean show_global)
-{
-	PurpleProxyType proxy_type = PURPLE_PROXY_TYPE_USE_GLOBAL;
-
-	g_return_if_fail(PIDGIN_IS_PROXY_OPTIONS(options));
-
-	if(show_global == options->show_global) {
-		return;
-	}
-
-	options->show_global = show_global;
-
-	if(options->info == NULL) {
-		g_object_notify_by_pspec(G_OBJECT(options),
-		                         properties[PROP_SHOW_GLOBAL]);
-
-		return;
-	}
-
-	proxy_type = purple_proxy_info_get_proxy_type(options->info);
-	if(proxy_type == PURPLE_PROXY_TYPE_USE_GLOBAL && show_global == FALSE) {
-		proxy_type = PURPLE_PROXY_TYPE_NONE;
-	}
-
-	purple_proxy_info_set_proxy_type(options->info, proxy_type);
-
-	options->show_global = show_global;
-
-	g_object_notify_by_pspec(G_OBJECT(options), properties[PROP_SHOW_GLOBAL]);
-
-	/* Tell the filter to rerun. */
-	gtk_tree_model_filter_refilter(options->filter);
-}
-
-gboolean
-pidgin_proxy_options_get_show_global(PidginProxyOptions *options) {
-	g_return_val_if_fail(PIDGIN_IS_PROXY_OPTIONS(options), FALSE);
-
-	return options->show_global;
-}
-
-void
-pidgin_proxy_options_set_info(PidginProxyOptions *options,
-                              PurpleProxyInfo *info)
-{
-	GtkTreeIter iter;
-	GtkTreeModel *model;
-
-	g_return_if_fail(PIDGIN_IS_PROXY_OPTIONS(options));
-
-	/* We want to always have a PurpleProxyInfo instance to make management
-	 * easier. So if someone clears it, just replace it with an empty one
-	 * instead.
-	 */
-	if(!PURPLE_IS_PROXY_INFO(info)) {
-		PurpleProxyInfo *empty_info = purple_proxy_info_new();
-
-		if(!g_set_object(&options->info, empty_info)) {
-			g_assert_not_reached();
-		}
-
-		g_object_unref(empty_info);
-	} else if(!g_set_object(&options->info, info)) {
-		return;
-	}
-
-	model = GTK_TREE_MODEL(options->filter);
-	if(gtk_tree_model_get_iter_first(model, &iter)) {
-		do {
-			PurpleProxyType type = purple_proxy_info_get_proxy_type(options->info);
-			PurpleProxyType row_type;
-
-			gtk_tree_model_get(model, &iter, COLUMN_TYPE, &row_type, -1);
-			if(row_type == type) {
-				gtk_combo_box_set_active_iter(GTK_COMBO_BOX(options->proxy_type),
-				                              &iter);
-				break;
-			}
-		} while(gtk_tree_model_iter_next(model, &iter));
-	}
-
-	g_object_bind_property_full(options->info, "hostname",
-	                            options->hostname, "text",
-	                            G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE,
-	                            pidgin_proxy_options_null_to_empty_str,
-	                            pidgin_proxy_options_empty_str_to_null,
-	                            NULL,
-	                            NULL);
-
-	g_object_bind_property_full(options->info, "port",
-	                            options->port, "value",
-	                            G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE,
-	                            pidgin_proxy_options_gint_to_double,
-	                            pidgin_proxy_options_double_to_gint,
-	                            NULL,
-	                            NULL);
-
-	g_object_bind_property_full(options->info, "username",
-	                            options->username, "text",
-	                            G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE,
-	                            pidgin_proxy_options_null_to_empty_str,
-	                            pidgin_proxy_options_empty_str_to_null,
-	                            NULL,
-	                            NULL);
-
-
-	g_object_bind_property_full(options->info, "password",
-	                            options->password, "text",
-	                            G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE,
-	                            pidgin_proxy_options_null_to_empty_str,
-	                            pidgin_proxy_options_empty_str_to_null,
-	                            NULL,
-	                            NULL);
-
-	g_object_notify_by_pspec(G_OBJECT(options), properties[PROP_INFO]);
-}
-
-PurpleProxyInfo *
-pidgin_proxy_options_get_info(PidginProxyOptions *options) {
-	g_return_val_if_fail(PIDGIN_IS_PROXY_OPTIONS(options), NULL);
-
-	return options->info;
-}
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
@@ -45,7 +45,6 @@
     <file compressed="true">Xfer/xfer.ui</file>
     <file compressed="true">gtk/menus.ui</file>
     <file compressed="true">presenceicon.ui</file>
-    <file compressed="true">proxyoptions.ui</file>
     <file compressed="true">statusprimitivechooser.ui</file>
     <file>icons/16x16/status/pidgin-user-available.png</file>
     <file>icons/16x16/status/pidgin-user-away.png</file>
diff --git a/pidgin/resources/proxyoptions.ui b/pidgin/resources/proxyoptions.ui
deleted file mode 100644
--- a/pidgin/resources/proxyoptions.ui
+++ /dev/null
@@ -1,217 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-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 library; if not, see <https://www.gnu.org/licenses/>.
--->
-<interface>
-  <requires lib="gtk" version="4.0"/>
-  <!-- interface-license-type gplv2 -->
-  <!-- interface-name Pidgin -->
-  <!-- interface-description Internet Messenger -->
-  <!-- interface-copyright Pidgin Developers <devel@pidgin.im> -->
-  <object class="GtkListStore" id="model">
-    <columns>
-      <column type="PurpleProxyType"/>
-      <column type="gchararray"/>
-    </columns>
-    <data>
-      <row>
-        <col id="0">PURPLE_PROXY_TYPE_USE_GLOBAL</col>
-        <col id="1" translatable="yes">Use Global Proxy Settings</col>
-      </row>
-      <row>
-        <col id="0">PURPLE_PROXY_TYPE_NONE</col>
-        <col id="1" translatable="yes">No Proxy</col>
-      </row>
-      <row>
-        <col id="0">PURPLE_PROXY_TYPE_SOCKS4</col>
-        <col id="1" translatable="yes">SOCKS 4</col>
-      </row>
-      <row>
-        <col id="0">PURPLE_PROXY_TYPE_SOCKS5</col>
-        <col id="1" translatable="yes">SOCKS 5</col>
-      </row>
-      <row>
-        <col id="0">PURPLE_PROXY_TYPE_TOR</col>
-        <col id="1" translatable="yes">TOR/Privacy (SOCKS 5)</col>
-      </row>
-      <row>
-        <col id="0">PURPLE_PROXY_TYPE_HTTP</col>
-        <col id="1" translatable="yes">HTTP</col>
-      </row>
-      <row>
-        <col id="0">PURPLE_PROXY_TYPE_USE_ENVVAR</col>
-        <col id="1" translatable="yes">Use Environmental Settings</col>
-      </row>
-    </data>
-  </object>
-  <object class="GtkTreeModelFilter" id="filter">
-    <property name="child-model">model</property>
-  </object>
-  <object class="GtkAdjustment" id="port_adjustment">
-    <property name="lower">-1</property>
-    <property name="upper">65535</property>
-    <property name="step-increment">1</property>
-    <property name="page-increment">10</property>
-  </object>
-  <template class="PidginProxyOptions" parent="GtkBox">
-    <property name="margin-start">12</property>
-    <property name="margin-end">12</property>
-    <property name="margin-top">12</property>
-    <property name="margin-bottom">12</property>
-    <property name="orientation">vertical</property>
-    <property name="spacing">6</property>
-    <child>
-      <object class="GtkBox">
-        <property name="spacing">6</property>
-        <child>
-          <object class="GtkLabel" id="proxy_type_label">
-            <property name="label" translatable="1">Proxy _type:</property>
-            <property name="use-underline">1</property>
-            <property name="mnemonic-widget">proxy_type</property>
-            <property name="xalign">0</property>
-          </object>
-        </child>
-        <child>
-          <object class="GtkComboBox" id="proxy_type">
-            <property name="hexpand">1</property>
-            <property name="model">filter</property>
-            <signal name="changed" handler="pidgin_proxy_options_proxy_type_changed_cb" object="PidginProxyOptions" swapped="no"/>
-            <child>
-              <object class="GtkCellRendererText"/>
-              <attributes>
-                <attribute name="text">1</attribute>
-              </attributes>
-            </child>
-          </object>
-        </child>
-      </object>
-    </child>
-    <child>
-      <object class="GtkBox" id="options">
-        <property name="sensitive">0</property>
-        <property name="orientation">vertical</property>
-        <property name="spacing">6</property>
-        <child>
-          <object class="GtkBox">
-            <property name="spacing">6</property>
-            <child>
-              <object class="GtkLabel" id="host_label">
-                <property name="label" translatable="1">_Host:</property>
-                <property name="use-underline">1</property>
-                <property name="mnemonic-widget">hostname</property>
-                <property name="xalign">0</property>
-              </object>
-            </child>
-            <child>
-              <object class="GtkEntry" id="hostname">
-                <property name="hexpand">1</property>
-                <property name="focusable">1</property>
-              </object>
-            </child>
-          </object>
-        </child>
-        <child>
-          <object class="GtkBox">
-            <property name="spacing">6</property>
-            <child>
-              <object class="GtkLabel" id="port_label">
-                <property name="label" translatable="1">_Port:</property>
-                <property name="use-underline">1</property>
-                <property name="mnemonic-widget">port</property>
-                <property name="xalign">0</property>
-              </object>
-            </child>
-            <child>
-              <object class="GtkSpinButton" id="port">
-                <property name="hexpand">1</property>
-                <property name="focusable">1</property>
-                <property name="adjustment">port_adjustment</property>
-                <property name="numeric">1</property>
-              </object>
-            </child>
-          </object>
-        </child>
-        <child>
-          <object class="GtkBox">
-            <property name="spacing">6</property>
-            <child>
-              <object class="GtkLabel" id="username_label">
-                <property name="label" translatable="1">_Username:</property>
-                <property name="use-underline">1</property>
-                <property name="mnemonic-widget">username</property>
-                <property name="xalign">0</property>
-              </object>
-            </child>
-            <child>
-              <object class="GtkEntry" id="username">
-                <property name="hexpand">1</property>
-                <property name="focusable">1</property>
-              </object>
-            </child>
-          </object>
-        </child>
-        <child>
-          <object class="GtkBox">
-            <property name="spacing">6</property>
-            <child>
-              <object class="GtkLabel" id="password_label">
-                <property name="label" translatable="1">Pa_ssword:</property>
-                <property name="use-underline">1</property>
-                <property name="mnemonic-widget">password</property>
-                <property name="xalign">0</property>
-              </object>
-            </child>
-            <child>
-              <object class="GtkPasswordEntry" id="password">
-                <property name="hexpand">1</property>
-                <property name="focusable">1</property>
-                <property name="show-peek-icon">1</property>
-              </object>
-            </child>
-          </object>
-        </child>
-      </object>
-    </child>
-  </template>
-  <object class="GtkSizeGroup">
-    <widgets>
-      <widget name="proxy_type_label"/>
-      <widget name="host_label"/>
-      <widget name="port_label"/>
-      <widget name="username_label"/>
-      <widget name="password_label"/>
-    </widgets>
-  </object>
-  <menu id="extra">
-    <item>
-      <!-- TRANSLATORS: This is an easter egg.
-           It means one of two things, both intended as humorous:
-           A) your network is really slow and you have nothing better to do than look at butterflies.
-           B) You are looking really closely at something that shouldn't matter.
-      -->
-      <attribute name="label" translatable="yes">If you look real closely</attribute>
-    </item>
-    <item>
-      <!-- TRANSLATORS: This is an easter egg.
-           It means one of two things, both intended as humorous:
-           A) your network is really slow and you have nothing better to do than look at butterflies.
-           B) You are looking really closely at something that shouldn't matter.
-      -->
-      <attribute name="label" translatable="yes">you can see the butterflies mating</attribute>
-    </item>
-  </menu>
-</interface>
diff --git a/po/POTFILES.in b/po/POTFILES.in
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -363,7 +363,6 @@
 pidgin/pidginpluginsmenu.c
 pidgin/pidginpresenceicon.c
 pidgin/pidginprotocolchooser.c
-pidgin/pidginproxyoptions.c
 pidgin/pidginstatusbox.c
 pidgin/pidginstatuseditor.c
 pidgin/pidginstatusmanager.c
@@ -423,7 +422,6 @@
 pidgin/resources/Whiteboard/whiteboard.ui
 pidgin/resources/Xfer/xfer.ui
 pidgin/resources/gtk/menus.ui
-pidgin/resources/proxyoptions.ui
 pidgin/win32/gtkwin32dep.c
 pidgin/win32/winpidgin.c
 purple-history/purplehistorycore.c
