Mercurial > pidgin
diff src/gtkprefs.c @ 6001:5e9364e9b29e
[gaim-migrate @ 6449]
This makes the global proxy settings usable, I think.
I think I'll try to get rid of PROXYHOST, PROXYPORT, etc. tomrrow.
For now? Sleep.
committer: Tailor Script <tailor@pidgin.im>
author | Mark Doliner <mark@kingant.net> |
---|---|
date | Thu, 03 Jul 2003 04:49:38 +0000 |
parents | 35d3c1ac5ece |
children | 81869466b6a7 |
line wrap: on
line diff
--- a/src/gtkprefs.c Thu Jul 03 03:23:27 2003 +0000 +++ b/src/gtkprefs.c Thu Jul 03 04:49:38 2003 +0000 @@ -79,6 +79,7 @@ static GtkTreeIter plugin_iter; static guint browser_pref_id = 0; +static guint proxy_pref_id = 0; /* * PROTOTYPES @@ -368,6 +369,7 @@ /* Unregister callbacks. */ gaim_prefs_disconnect_callback(browser_pref_id); + gaim_prefs_disconnect_callback(proxy_pref_id); for (l = gaim_plugins_get_loaded(); l != NULL; l = l->next) { plug = l->data; @@ -387,16 +389,14 @@ static void proxy_print_option(GtkEntry *entry, int entrynum) { - GaimProxyInfo *info = gaim_global_proxy_get_info(); - if (entrynum == PROXYHOST) - gaim_proxy_info_set_host(info, gtk_entry_get_text(entry)); + gaim_prefs_set_string("/core/proxy/host", gtk_entry_get_text(entry)); else if (entrynum == PROXYPORT) - gaim_proxy_info_set_port(info, atoi(gtk_entry_get_text(entry))); + gaim_prefs_set_int("/core/proxy/port", atoi(gtk_entry_get_text(entry))); else if (entrynum == PROXYUSER) - gaim_proxy_info_set_username(info, gtk_entry_get_text(entry)); + gaim_prefs_set_string("/core/proxy/username", gtk_entry_get_text(entry)); else if (entrynum == PROXYPASS) - gaim_proxy_info_set_password(info, gtk_entry_get_text(entry)); + gaim_prefs_set_string("/core/proxy/password", gtk_entry_get_text(entry)); /* If the user specifies it, we want to save it. */ gaim_global_proxy_set_from_prefs(TRUE); @@ -1112,6 +1112,16 @@ return ret; } +static void +proxy_changed_cb(const char *name, GaimPrefType type, gpointer value, + gpointer data) +{ + GtkWidget *frame = data; + const char *proxy = value; + + gtk_widget_set_sensitive(frame, strcmp(proxy, "none")); +} + GtkWidget *proxy_page() { GtkWidget *ret; GtkWidget *vbox; @@ -1141,9 +1151,12 @@ if (proxy_info == NULL || gaim_proxy_info_get_type(proxy_info) == GAIM_PROXY_NONE) { - gtk_widget_set_sensitive(GTK_WIDGET(vbox), FALSE); + gtk_widget_set_sensitive(GTK_WIDGET(prefs_proxy_frame), FALSE); } + proxy_pref_id = gaim_prefs_connect_callback("/core/proxy/type", + proxy_changed_cb, prefs_proxy_frame); + table = gtk_table_new(2, 4, FALSE); gtk_container_set_border_width(GTK_CONTAINER(table), 5); gtk_table_set_col_spacings(GTK_TABLE(table), 5);