summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Bailey <rekkanoryo@rekkanoryo.org>2009-11-11 15:19:10 +0000
committerJohn Bailey <rekkanoryo@rekkanoryo.org>2009-11-11 15:19:10 +0000
commit5346834d0afb6315920623e0a89c883c0e5ab63b (patch)
tree8d653e22ae29e32c2f18d9a837e53386dd14e050
parentb152ba302808151944c75adc929b8d72fcb023d9 (diff)
downloadpidgin-5346834d0afb6315920623e0a89c883c0e5ab63b.tar.gz
Move the proxy stuff to a separate tab, per deryni's suggestion.
-rw-r--r--pidgin/gtkprefs.c234
1 files changed, 126 insertions, 108 deletions
diff --git a/pidgin/gtkprefs.c b/pidgin/gtkprefs.c
index 06e9efebbe..7376fd7c44 100644
--- a/pidgin/gtkprefs.c
+++ b/pidgin/gtkprefs.c
@@ -1971,113 +1971,8 @@ network_page(void)
G_CALLBACK(browser_button_clicked_cb), NULL);
gtk_box_pack_start(GTK_BOX(hbox), browser_button, FALSE, FALSE, 0);
gtk_widget_show(browser_button);
- } else {
- vbox = pidgin_make_frame(ret, _("Proxy Server"));
- prefs_proxy_frame = gtk_vbox_new(FALSE, PIDGIN_HIG_BOX_SPACE);
- prefs_proxy_subframe = gtk_vbox_new(FALSE, 0);
-
- /* This is a global option that affects SOCKS4 usage even with account-specific proxy settings */
- pidgin_prefs_checkbox(_("Use remote _DNS with SOCKS4 proxies"),
- "/purple/proxy/socks4_remotedns", prefs_proxy_frame);
- gtk_box_pack_start(GTK_BOX(vbox), prefs_proxy_frame, 0, 0, 0);
-
- pidgin_prefs_dropdown(prefs_proxy_frame, _("Proxy t_ype:"), PURPLE_PREF_STRING,
- "/purple/proxy/type",
- _("No proxy"), "none",
- "SOCKS 4", "socks4",
- "SOCKS 5", "socks5",
- "HTTP", "http",
- _("Use Environmental Settings"), "envvar",
- NULL);
- gtk_box_pack_start(GTK_BOX(prefs_proxy_frame), prefs_proxy_subframe, 0, 0, 0);
- proxy_info = purple_global_proxy_get_info();
-
- purple_prefs_connect_callback(prefs, "/purple/proxy/type",
- proxy_changed_cb, prefs_proxy_subframe);
-
- table = gtk_table_new(4, 2, FALSE);
- gtk_container_set_border_width(GTK_CONTAINER(table), 0);
- gtk_table_set_col_spacings(GTK_TABLE(table), 5);
- gtk_table_set_row_spacings(GTK_TABLE(table), 10);
- gtk_container_add(GTK_CONTAINER(prefs_proxy_subframe), table);
-
-
- label = gtk_label_new_with_mnemonic(_("_Host:"));
- gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5);
- gtk_table_attach(GTK_TABLE(table), label, 0, 1, 0, 1, GTK_FILL, 0, 0, 0);
-
- entry = gtk_entry_new();
- gtk_label_set_mnemonic_widget(GTK_LABEL(label), entry);
- gtk_table_attach(GTK_TABLE(table), entry, 1, 2, 0, 1, GTK_FILL, 0, 0, 0);
- g_signal_connect(G_OBJECT(entry), "changed",
- G_CALLBACK(proxy_print_option), (void *)PROXYHOST);
-
- if (proxy_info != NULL && purple_proxy_info_get_host(proxy_info))
- gtk_entry_set_text(GTK_ENTRY(entry),
- purple_proxy_info_get_host(proxy_info));
-
- hbox = gtk_hbox_new(TRUE, 5);
- gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
- pidgin_set_accessible_label (entry, label);
-
- label = gtk_label_new_with_mnemonic(_("P_ort:"));
- gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5);
- gtk_table_attach(GTK_TABLE(table), label, 2, 3, 0, 1, GTK_FILL, 0, 0, 0);
-
- entry = gtk_spin_button_new_with_range(0, 65535, 1);
- gtk_label_set_mnemonic_widget(GTK_LABEL(label), entry);
- gtk_table_attach(GTK_TABLE(table), entry, 3, 4, 0, 1, GTK_FILL, 0, 0, 0);
- g_signal_connect(G_OBJECT(entry), "changed",
- G_CALLBACK(proxy_print_option), (void *)PROXYPORT);
-
- if (proxy_info != NULL && purple_proxy_info_get_port(proxy_info) != 0) {
- char buf[128];
- g_snprintf(buf, sizeof(buf), "%d",
- purple_proxy_info_get_port(proxy_info));
-
- gtk_entry_set_text(GTK_ENTRY(entry), buf);
- }
- pidgin_set_accessible_label (entry, label);
-
- label = gtk_label_new_with_mnemonic(_("User_name:"));
- gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5);
- gtk_table_attach(GTK_TABLE(table), label, 0, 1, 1, 2, GTK_FILL, 0, 0, 0);
-
- entry = gtk_entry_new();
- gtk_label_set_mnemonic_widget(GTK_LABEL(label), entry);
- gtk_table_attach(GTK_TABLE(table), entry, 1, 2, 1, 2, GTK_FILL, 0, 0, 0);
- g_signal_connect(G_OBJECT(entry), "changed",
- G_CALLBACK(proxy_print_option), (void *)PROXYUSER);
-
- if (proxy_info != NULL && purple_proxy_info_get_username(proxy_info) != NULL)
- gtk_entry_set_text(GTK_ENTRY(entry),
- purple_proxy_info_get_username(proxy_info));
-
- hbox = gtk_hbox_new(TRUE, 5);
- gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
- pidgin_set_accessible_label (entry, label);
-
- label = gtk_label_new_with_mnemonic(_("Pa_ssword:"));
- gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5);
- gtk_table_attach(GTK_TABLE(table), label, 2, 3, 1, 2, GTK_FILL, 0, 0, 0);
-
- entry = gtk_entry_new();
- gtk_label_set_mnemonic_widget(GTK_LABEL(label), entry);
- gtk_table_attach(GTK_TABLE(table), entry, 3, 4, 1, 2, GTK_FILL , 0, 0, 0);
- gtk_entry_set_visibility(GTK_ENTRY(entry), FALSE);
-#if !GTK_CHECK_VERSION(2,16,0)
- if (gtk_entry_get_invisible_char(GTK_ENTRY(entry)) == '*')
- gtk_entry_set_invisible_char(GTK_ENTRY(entry), PIDGIN_INVISIBLE_CHAR);
-#endif /* Less than GTK+ 2.16 */
- g_signal_connect(G_OBJECT(entry), "changed",
- G_CALLBACK(proxy_print_option), (void *)PROXYPASS);
-
- if (proxy_info != NULL && purple_proxy_info_get_password(proxy_info) != NULL)
- gtk_entry_set_text(GTK_ENTRY(entry),
- purple_proxy_info_get_password(proxy_info));
- pidgin_set_accessible_label (entry, label);
}
-
+
gtk_widget_show_all(ret);
g_object_unref(sg);
/* Only hide table if not running gnome otherwise we hide the IP address table! */
@@ -2259,6 +2154,125 @@ browser_page(void)
#endif /*_WIN32*/
static GtkWidget *
+proxy_page(void)
+{
+ GtkWidget *ret = NULL, *vbox = NULL, *hbox = NULL;
+ GtkWidget *table = NULL, *entry = NULL, *label = NULL;
+ PurpleProxyInfo *proxy_info;
+
+ ret = gtk_vbox_new(FALSE, PIDGIN_HIG_CAT_SPACE);
+
+ vbox = pidgin_make_frame(ret, _("Proxy Server"));
+ prefs_proxy_frame = gtk_vbox_new(FALSE, PIDGIN_HIG_BOX_SPACE);
+ prefs_proxy_subframe = gtk_vbox_new(FALSE, 0);
+
+ /* This is a global option that affects SOCKS4 usage even with account-specific proxy settings */
+ pidgin_prefs_checkbox(_("Use remote _DNS with SOCKS4 proxies"),
+ "/purple/proxy/socks4_remotedns", prefs_proxy_frame);
+ gtk_box_pack_start(GTK_BOX(vbox), prefs_proxy_frame, 0, 0, 0);
+
+ pidgin_prefs_dropdown(prefs_proxy_frame, _("Proxy t_ype:"), PURPLE_PREF_STRING,
+ "/purple/proxy/type",
+ _("No proxy"), "none",
+ "SOCKS 4", "socks4",
+ "SOCKS 5", "socks5",
+ "HTTP", "http",
+ _("Use Environmental Settings"), "envvar",
+ NULL);
+ gtk_box_pack_start(GTK_BOX(prefs_proxy_frame), prefs_proxy_subframe, 0, 0, 0);
+ proxy_info = purple_global_proxy_get_info();
+
+ gtk_widget_show_all(ret);
+
+ purple_prefs_connect_callback(prefs, "/purple/proxy/type",
+ proxy_changed_cb, prefs_proxy_subframe);
+
+ table = gtk_table_new(4, 2, FALSE);
+ gtk_container_set_border_width(GTK_CONTAINER(table), 0);
+ gtk_table_set_col_spacings(GTK_TABLE(table), 5);
+ gtk_table_set_row_spacings(GTK_TABLE(table), 10);
+ gtk_container_add(GTK_CONTAINER(prefs_proxy_subframe), table);
+
+
+ label = gtk_label_new_with_mnemonic(_("_Host:"));
+ gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5);
+ gtk_table_attach(GTK_TABLE(table), label, 0, 1, 0, 1, GTK_FILL, 0, 0, 0);
+
+ entry = gtk_entry_new();
+ gtk_label_set_mnemonic_widget(GTK_LABEL(label), entry);
+ gtk_table_attach(GTK_TABLE(table), entry, 1, 2, 0, 1, GTK_FILL, 0, 0, 0);
+ g_signal_connect(G_OBJECT(entry), "changed",
+ G_CALLBACK(proxy_print_option), (void *)PROXYHOST);
+
+ if (proxy_info != NULL && purple_proxy_info_get_host(proxy_info))
+ gtk_entry_set_text(GTK_ENTRY(entry),
+ purple_proxy_info_get_host(proxy_info));
+
+ hbox = gtk_hbox_new(TRUE, 5);
+ gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
+ pidgin_set_accessible_label (entry, label);
+
+ label = gtk_label_new_with_mnemonic(_("P_ort:"));
+ gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5);
+ gtk_table_attach(GTK_TABLE(table), label, 2, 3, 0, 1, GTK_FILL, 0, 0, 0);
+
+ entry = gtk_spin_button_new_with_range(0, 65535, 1);
+ gtk_label_set_mnemonic_widget(GTK_LABEL(label), entry);
+ gtk_table_attach(GTK_TABLE(table), entry, 3, 4, 0, 1, GTK_FILL, 0, 0, 0);
+ g_signal_connect(G_OBJECT(entry), "changed",
+ G_CALLBACK(proxy_print_option), (void *)PROXYPORT);
+
+ if (proxy_info != NULL && purple_proxy_info_get_port(proxy_info) != 0) {
+ char buf[128];
+ g_snprintf(buf, sizeof(buf), "%d",
+ purple_proxy_info_get_port(proxy_info));
+
+ gtk_entry_set_text(GTK_ENTRY(entry), buf);
+ }
+ pidgin_set_accessible_label (entry, label);
+
+ label = gtk_label_new_with_mnemonic(_("User_name:"));
+ gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5);
+ gtk_table_attach(GTK_TABLE(table), label, 0, 1, 1, 2, GTK_FILL, 0, 0, 0);
+
+ entry = gtk_entry_new();
+ gtk_label_set_mnemonic_widget(GTK_LABEL(label), entry);
+ gtk_table_attach(GTK_TABLE(table), entry, 1, 2, 1, 2, GTK_FILL, 0, 0, 0);
+ g_signal_connect(G_OBJECT(entry), "changed",
+ G_CALLBACK(proxy_print_option), (void *)PROXYUSER);
+
+ if (proxy_info != NULL && purple_proxy_info_get_username(proxy_info) != NULL)
+ gtk_entry_set_text(GTK_ENTRY(entry),
+ purple_proxy_info_get_username(proxy_info));
+
+ hbox = gtk_hbox_new(TRUE, 5);
+ gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
+ pidgin_set_accessible_label (entry, label);
+
+ label = gtk_label_new_with_mnemonic(_("Pa_ssword:"));
+ gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5);
+ gtk_table_attach(GTK_TABLE(table), label, 2, 3, 1, 2, GTK_FILL, 0, 0, 0);
+
+ entry = gtk_entry_new();
+ gtk_label_set_mnemonic_widget(GTK_LABEL(label), entry);
+ gtk_table_attach(GTK_TABLE(table), entry, 3, 4, 1, 2, GTK_FILL , 0, 0, 0);
+ gtk_entry_set_visibility(GTK_ENTRY(entry), FALSE);
+#if !GTK_CHECK_VERSION(2,16,0)
+ if (gtk_entry_get_invisible_char(GTK_ENTRY(entry)) == '*')
+ gtk_entry_set_invisible_char(GTK_ENTRY(entry), PIDGIN_INVISIBLE_CHAR);
+#endif /* Less than GTK+ 2.16 */
+ g_signal_connect(G_OBJECT(entry), "changed",
+ G_CALLBACK(proxy_print_option), (void *)PROXYPASS);
+
+ if (proxy_info != NULL && purple_proxy_info_get_password(proxy_info) != NULL)
+ gtk_entry_set_text(GTK_ENTRY(entry),
+ purple_proxy_info_get_password(proxy_info));
+ pidgin_set_accessible_label (entry, label);
+
+ return ret;
+}
+
+static GtkWidget *
logging_page(void)
{
GtkWidget *ret;
@@ -2845,13 +2859,17 @@ prefs_notebook_init(void)
prefs_notebook_add_page(_("Smiley Themes"), theme_page(), notebook_page++);
prefs_notebook_add_page(_("Sounds"), sound_page(), notebook_page++);
prefs_notebook_add_page(_("Network"), network_page(), notebook_page++);
+
#ifndef _WIN32
/* We use the registered default browser in windows */
/* if the user is running gnome 2.x or Mac OS X, hide the browsers tab */
- if ((purple_running_gnome() == FALSE) && (purple_running_osx() == FALSE)) {
+ if((purple_running_gnome() == FALSE) && (purple_running_osx() == FALSE))
prefs_notebook_add_page(_("Browser"), browser_page(), notebook_page++);
- }
#endif
+
+ if(purple_running_gnome() == FALSE)
+ prefs_notebook_add_page(_("Proxy"), proxy_page(), notebook_page++);
+
prefs_notebook_add_page(_("Logging"), logging_page(), notebook_page++);
prefs_notebook_add_page(_("Status / Idle"), away_page(), notebook_page++);
}