comparison pidgin/gtkprefs.c @ 21136:93e674197822

merge of '8efbae676804d160b330226a663aa241a8d6a78e' and 'ede8595c50d5172b15365ffcff7a2b7748269bc7'
author Ka-Hing Cheung <khc@hxbc.us>
date Sun, 04 Nov 2007 18:32:21 +0000
parents 68fc9d5c43f7
children 184f5991502d
comparison
equal deleted inserted replaced
21118:f3a995c30205 21136:93e674197822
1124 1124
1125 purple_notify_error(NULL, NULL, _("Cannot start proxy configuration program."), err->message); 1125 purple_notify_error(NULL, NULL, _("Cannot start proxy configuration program."), err->message);
1126 g_error_free(err); 1126 g_error_free(err);
1127 } 1127 }
1128 1128
1129 static void
1130 browser_button_clicked_cb(GtkWidget *button, gpointer null)
1131 {
1132 GError *err = NULL;
1133
1134 if (g_spawn_command_line_async ("gnome-default-applications-properties", &err))
1135 return;
1136
1137 purple_notify_error(NULL, NULL, _("Cannot start browser configuration program."), err->message);
1138 g_error_free(err);
1139 }
1140
1129 static GtkWidget * 1141 static GtkWidget *
1130 network_page() 1142 network_page()
1131 { 1143 {
1132 GtkWidget *ret; 1144 GtkWidget *ret;
1133 GtkWidget *vbox, *hbox, *entry; 1145 GtkWidget *vbox, *hbox, *entry;
1134 GtkWidget *table, *label, *auto_ip_checkbox, *ports_checkbox, *spin_button; 1146 GtkWidget *table, *label, *auto_ip_checkbox, *ports_checkbox, *spin_button;
1135 GtkWidget *warning = NULL, *proxy_button = NULL; 1147 GtkWidget *proxy_warning = NULL, *browser_warning = NULL;
1148 GtkWidget *proxy_button = NULL, *browser_button = NULL;
1136 GtkSizeGroup *sg; 1149 GtkSizeGroup *sg;
1137 PurpleProxyInfo *proxy_info = NULL; 1150 PurpleProxyInfo *proxy_info = NULL;
1138 1151
1139 ret = gtk_vbox_new(FALSE, PIDGIN_HIG_CAT_SPACE); 1152 ret = gtk_vbox_new(FALSE, PIDGIN_HIG_CAT_SPACE);
1140 gtk_container_set_border_width (GTK_CONTAINER (ret), PIDGIN_HIG_BORDER); 1153 gtk_container_set_border_width (GTK_CONTAINER (ret), PIDGIN_HIG_BORDER);
1215 if (!purple_prefs_get_bool("/purple/network/ports_range_use")) 1228 if (!purple_prefs_get_bool("/purple/network/ports_range_use"))
1216 gtk_widget_set_sensitive(GTK_WIDGET(spin_button), FALSE); 1229 gtk_widget_set_sensitive(GTK_WIDGET(spin_button), FALSE);
1217 g_signal_connect(G_OBJECT(ports_checkbox), "clicked", 1230 g_signal_connect(G_OBJECT(ports_checkbox), "clicked",
1218 G_CALLBACK(pidgin_toggle_sensitive), spin_button); 1231 G_CALLBACK(pidgin_toggle_sensitive), spin_button);
1219 1232
1220 vbox = pidgin_make_frame(ret, _("Proxy Server"));
1221 prefs_proxy_frame = gtk_vbox_new(FALSE, 0);
1222
1223 if (purple_running_gnome()) { 1233 if (purple_running_gnome()) {
1224 warning = hbox = gtk_hbox_new(FALSE, PIDGIN_HIG_BOX_SPACE); 1234 vbox = pidgin_make_frame(ret, _("Proxy Server &amp; Browser"));
1235 prefs_proxy_frame = gtk_vbox_new(FALSE, 0);
1236
1237 proxy_warning = hbox = gtk_hbox_new(FALSE, PIDGIN_HIG_BOX_SPACE);
1225 gtk_container_add(GTK_CONTAINER(vbox), hbox); 1238 gtk_container_add(GTK_CONTAINER(vbox), hbox);
1226 1239
1227 label = gtk_label_new(NULL); 1240 label = gtk_label_new(NULL);
1228 gtk_label_set_markup(GTK_LABEL(label), 1241 gtk_label_set_markup(GTK_LABEL(label),
1229 _("<b>Proxy configuration program was not found.</b>")); 1242 _("<b>Proxy configuration program was not found.</b>"));
1230 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); 1243 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
1231 1244
1245 browser_warning = hbox = gtk_hbox_new(FALSE, PIDGIN_HIG_BOX_SPACE);
1246 gtk_container_add(GTK_CONTAINER(vbox), hbox);
1247
1248 label = gtk_label_new(NULL);
1249 gtk_label_set_markup(GTK_LABEL(label),
1250 _("<b>Browser configuration program was not found.</b>"));
1251 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
1252
1232 hbox = gtk_hbox_new(FALSE, PIDGIN_HIG_BOX_SPACE); 1253 hbox = gtk_hbox_new(FALSE, PIDGIN_HIG_BOX_SPACE);
1233 gtk_container_add(GTK_CONTAINER(vbox), hbox); 1254 gtk_container_add(GTK_CONTAINER(vbox), hbox);
1234 label = gtk_label_new(_("Proxy preferences are configured in\n" 1255 label = gtk_label_new(_("Proxy & Browser preferences are configured\n"
1235 "GNOME Control Center: Desktop Preferences")); 1256 "in GNOME Preferences"));
1236 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); 1257 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
1237 gtk_widget_show(label); 1258 gtk_widget_show(label);
1238 1259
1239 hbox = gtk_hbox_new(FALSE, PIDGIN_HIG_BOX_SPACE); 1260 hbox = gtk_hbox_new(FALSE, PIDGIN_HIG_BOX_SPACE);
1240 gtk_container_add(GTK_CONTAINER(vbox), hbox); 1261 gtk_container_add(GTK_CONTAINER(vbox), hbox);
1241 proxy_button = gtk_button_new_with_mnemonic(_("Configure _Proxy")); 1262 proxy_button = gtk_button_new_with_mnemonic(_("Configure _Proxy"));
1242 g_signal_connect(G_OBJECT(proxy_button), "clicked", 1263 g_signal_connect(G_OBJECT(proxy_button), "clicked",
1243 G_CALLBACK(proxy_button_clicked_cb), NULL); 1264 G_CALLBACK(proxy_button_clicked_cb), NULL);
1244 gtk_box_pack_start(GTK_BOX(hbox), proxy_button, FALSE, FALSE, 0); 1265 gtk_box_pack_start(GTK_BOX(hbox), proxy_button, FALSE, FALSE, 0);
1245 gtk_widget_show(proxy_button); 1266 gtk_widget_show(proxy_button);
1267 browser_button = gtk_button_new_with_mnemonic(_("Configure _Browser"));
1268 g_signal_connect(G_OBJECT(browser_button), "clicked",
1269 G_CALLBACK(browser_button_clicked_cb), NULL);
1270 gtk_box_pack_start(GTK_BOX(hbox), browser_button, FALSE, FALSE, 0);
1271 gtk_widget_show(browser_button);
1246 } else { 1272 } else {
1273 vbox = pidgin_make_frame(ret, _("Proxy Server"));
1274 prefs_proxy_frame = gtk_vbox_new(FALSE, 0);
1275
1247 pidgin_prefs_dropdown(vbox, _("Proxy _type:"), PURPLE_PREF_STRING, 1276 pidgin_prefs_dropdown(vbox, _("Proxy _type:"), PURPLE_PREF_STRING,
1248 "/purple/proxy/type", 1277 "/purple/proxy/type",
1249 _("No proxy"), "none", 1278 _("No proxy"), "none",
1250 "SOCKS 4", "socks4", 1279 "SOCKS 4", "socks4",
1251 "SOCKS 5", "socks5", 1280 "SOCKS 5", "socks5",
1349 } else if (purple_running_gnome()) { 1378 } else if (purple_running_gnome()) {
1350 gchar *path; 1379 gchar *path;
1351 path = g_find_program_in_path("gnome-network-preferences"); 1380 path = g_find_program_in_path("gnome-network-preferences");
1352 if (path != NULL) { 1381 if (path != NULL) {
1353 gtk_widget_set_sensitive(proxy_button, TRUE); 1382 gtk_widget_set_sensitive(proxy_button, TRUE);
1354 gtk_widget_hide(warning); 1383 gtk_widget_hide(proxy_warning);
1355 g_free(path); 1384 g_free(path);
1356 } else { 1385 } else {
1357 gtk_widget_set_sensitive(proxy_button, FALSE); 1386 gtk_widget_set_sensitive(proxy_button, FALSE);
1358 gtk_widget_show(warning); 1387 gtk_widget_show(proxy_warning);
1388 }
1389 path = g_find_program_in_path("gnome-default-applications-properties");
1390 if (path != NULL) {
1391 gtk_widget_set_sensitive(browser_button, TRUE);
1392 gtk_widget_hide(browser_warning);
1393 g_free(path);
1394 } else {
1395 gtk_widget_set_sensitive(browser_button, FALSE);
1396 gtk_widget_show(browser_warning);
1359 } 1397 }
1360 } 1398 }
1361 1399
1362 return ret; 1400 return ret;
1363 } 1401 }