From 2c7d2f16951128f2940b0444aa6cb98eabe5d1df Mon Sep 17 00:00:00 2001 From: Pierre Pronchery Date: Sat, 14 May 2011 16:37:25 +0000 Subject: [PATCH] Code cleanup --- po/de.po | 90 +++++++++++++------------- po/es.po | 90 +++++++++++++------------- po/fr.po | 90 +++++++++++++------------- po/it.po | 90 +++++++++++++------------- src/callbacks.c | 163 +--------------------------------------------- src/surfer.c | 169 ++++++++++++++++++++++++++++++++++++++++++++++++ src/surfer.h | 1 + 7 files changed, 351 insertions(+), 342 deletions(-) diff --git a/po/de.po b/po/de.po index 395fa9d..4b63261 100644 --- a/po/de.po +++ b/po/de.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Surfer 0.1.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-05-14 18:12+0200\n" +"POT-Creation-Date: 2011-05-14 18:27+0200\n" "PO-Revision-Date: 2010-04-01 19:40+0200\n" "Last-Translator: Pierre Pronchery \n" "Language-Team: German\n" @@ -27,42 +27,6 @@ msgid "" "Do you really want to close every tab opened in this window?" msgstr "" -#: ../src/callbacks.c:524 -msgid "Web surfer preferences" -msgstr "Web surfer Einstellungen" - -#: ../src/callbacks.c:544 -msgid "Homepage:" -msgstr "" - -#: ../src/callbacks.c:552 -msgid "Focus new tabs" -msgstr "" - -#: ../src/callbacks.c:556 -msgid "General" -msgstr "" - -#: ../src/callbacks.c:560 -msgid "Direct connection" -msgstr "" - -#: ../src/callbacks.c:564 -msgid "HTTP proxy:" -msgstr "" - -#: ../src/callbacks.c:571 -msgid "Hostname:" -msgstr "" - -#: ../src/callbacks.c:575 -msgid "Port:" -msgstr "" - -#: ../src/callbacks.c:583 -msgid "Network" -msgstr "" - #: ../src/common/conn.c:204 ../src/download.c:210 ../src/ghtml-gtkhtml.c:876 msgid "Resolving..." msgstr "" @@ -389,7 +353,7 @@ msgstr "Web surfer" msgid " Location: " msgstr "" -#: ../src/surfer.c:395 ../src/surfer.c:1572 ../src/surfer.c:1577 +#: ../src/surfer.c:395 ../src/surfer.c:1741 ../src/surfer.c:1746 msgid "Security information" msgstr "" @@ -457,27 +421,63 @@ msgstr "" msgid "Line" msgstr "Linie" -#: ../src/surfer.c:1558 +#: ../src/surfer.c:1568 +msgid "Web surfer preferences" +msgstr "Web surfer Einstellungen" + +#: ../src/surfer.c:1588 +msgid "Homepage:" +msgstr "" + +#: ../src/surfer.c:1596 +msgid "Focus new tabs" +msgstr "" + +#: ../src/surfer.c:1600 +msgid "General" +msgstr "" + +#: ../src/surfer.c:1604 +msgid "Direct connection" +msgstr "" + +#: ../src/surfer.c:1608 +msgid "HTTP proxy:" +msgstr "" + +#: ../src/surfer.c:1615 +msgid "Hostname:" +msgstr "" + +#: ../src/surfer.c:1619 +msgid "Port:" +msgstr "" + +#: ../src/surfer.c:1627 +msgid "Network" +msgstr "" + +#: ../src/surfer.c:1727 msgid "This connection is encrypted and trusted." msgstr "" -#: ../src/surfer.c:1561 +#: ../src/surfer.c:1730 msgid "This connection is encrypted but not trusted." msgstr "" -#: ../src/surfer.c:1565 +#: ../src/surfer.c:1734 msgid "This connection is not encrypted." msgstr "" -#: ../src/surfer.c:1621 +#: ../src/surfer.c:1790 msgid "Web surfer - Source of " msgstr "" -#: ../src/surfer.c:1663 ../src/surfer.c:1666 ../src/surfer.c:1721 -#: ../src/surfer.c:1726 +#: ../src/surfer.c:1832 ../src/surfer.c:1835 ../src/surfer.c:1890 +#: ../src/surfer.c:1895 msgid "Warning" msgstr "Achtung" -#: ../src/surfer.c:1725 +#: ../src/surfer.c:1894 msgid "This file already exists. Overwrite?" msgstr "" diff --git a/po/es.po b/po/es.po index d9b610f..97ae93b 100644 --- a/po/es.po +++ b/po/es.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Surfer 0.1.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-05-14 18:12+0200\n" +"POT-Creation-Date: 2011-05-14 18:27+0200\n" "PO-Revision-Date: 2010-04-01 19:40+0200\n" "Last-Translator: Pierre Pronchery \n" "Language-Team: Spanish\n" @@ -27,42 +27,6 @@ msgid "" "Do you really want to close every tab opened in this window?" msgstr "" -#: ../src/callbacks.c:524 -msgid "Web surfer preferences" -msgstr "Web surfer preferencias" - -#: ../src/callbacks.c:544 -msgid "Homepage:" -msgstr "" - -#: ../src/callbacks.c:552 -msgid "Focus new tabs" -msgstr "" - -#: ../src/callbacks.c:556 -msgid "General" -msgstr "" - -#: ../src/callbacks.c:560 -msgid "Direct connection" -msgstr "" - -#: ../src/callbacks.c:564 -msgid "HTTP proxy:" -msgstr "" - -#: ../src/callbacks.c:571 -msgid "Hostname:" -msgstr "" - -#: ../src/callbacks.c:575 -msgid "Port:" -msgstr "" - -#: ../src/callbacks.c:583 -msgid "Network" -msgstr "" - #: ../src/common/conn.c:204 ../src/download.c:210 ../src/ghtml-gtkhtml.c:876 msgid "Resolving..." msgstr "" @@ -389,7 +353,7 @@ msgstr "Web surfer" msgid " Location: " msgstr "" -#: ../src/surfer.c:395 ../src/surfer.c:1572 ../src/surfer.c:1577 +#: ../src/surfer.c:395 ../src/surfer.c:1741 ../src/surfer.c:1746 msgid "Security information" msgstr "" @@ -457,27 +421,63 @@ msgstr "" msgid "Line" msgstr "" -#: ../src/surfer.c:1558 +#: ../src/surfer.c:1568 +msgid "Web surfer preferences" +msgstr "Web surfer preferencias" + +#: ../src/surfer.c:1588 +msgid "Homepage:" +msgstr "" + +#: ../src/surfer.c:1596 +msgid "Focus new tabs" +msgstr "" + +#: ../src/surfer.c:1600 +msgid "General" +msgstr "" + +#: ../src/surfer.c:1604 +msgid "Direct connection" +msgstr "" + +#: ../src/surfer.c:1608 +msgid "HTTP proxy:" +msgstr "" + +#: ../src/surfer.c:1615 +msgid "Hostname:" +msgstr "" + +#: ../src/surfer.c:1619 +msgid "Port:" +msgstr "" + +#: ../src/surfer.c:1627 +msgid "Network" +msgstr "" + +#: ../src/surfer.c:1727 msgid "This connection is encrypted and trusted." msgstr "" -#: ../src/surfer.c:1561 +#: ../src/surfer.c:1730 msgid "This connection is encrypted but not trusted." msgstr "" -#: ../src/surfer.c:1565 +#: ../src/surfer.c:1734 msgid "This connection is not encrypted." msgstr "" -#: ../src/surfer.c:1621 +#: ../src/surfer.c:1790 msgid "Web surfer - Source of " msgstr "" -#: ../src/surfer.c:1663 ../src/surfer.c:1666 ../src/surfer.c:1721 -#: ../src/surfer.c:1726 +#: ../src/surfer.c:1832 ../src/surfer.c:1835 ../src/surfer.c:1890 +#: ../src/surfer.c:1895 msgid "Warning" msgstr "" -#: ../src/surfer.c:1725 +#: ../src/surfer.c:1894 msgid "This file already exists. Overwrite?" msgstr "" diff --git a/po/fr.po b/po/fr.po index 8cb58bb..783a110 100644 --- a/po/fr.po +++ b/po/fr.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Surfer 0.1.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-05-14 18:12+0200\n" +"POT-Creation-Date: 2011-05-14 18:27+0200\n" "PO-Revision-Date: 2010-04-01 19:40+0200\n" "Last-Translator: Calimero \n" "Language-Team: French\n" @@ -29,42 +29,6 @@ msgstr "" "Plusieurs onglets sont ouverts.\n" "Voulez-vous vraiment fermer tous les onglets de cette fenêtre ?" -#: ../src/callbacks.c:524 -msgid "Web surfer preferences" -msgstr "Préférences de Web surfer" - -#: ../src/callbacks.c:544 -msgid "Homepage:" -msgstr "Page d'accueil :" - -#: ../src/callbacks.c:552 -msgid "Focus new tabs" -msgstr "Focaliser les nouveaux onglets" - -#: ../src/callbacks.c:556 -msgid "General" -msgstr "Général" - -#: ../src/callbacks.c:560 -msgid "Direct connection" -msgstr "Connexion directe" - -#: ../src/callbacks.c:564 -msgid "HTTP proxy:" -msgstr "Proxy HTTP :" - -#: ../src/callbacks.c:571 -msgid "Hostname:" -msgstr "Hôte :" - -#: ../src/callbacks.c:575 -msgid "Port:" -msgstr "Port :" - -#: ../src/callbacks.c:583 -msgid "Network" -msgstr "Réseau" - #: ../src/common/conn.c:204 ../src/download.c:210 ../src/ghtml-gtkhtml.c:876 msgid "Resolving..." msgstr "Résolution du domaine..." @@ -395,7 +359,7 @@ msgstr "Web surfer" msgid " Location: " msgstr " Adresse: " -#: ../src/surfer.c:395 ../src/surfer.c:1572 ../src/surfer.c:1577 +#: ../src/surfer.c:395 ../src/surfer.c:1741 ../src/surfer.c:1746 msgid "Security information" msgstr "Informations de sécurité" @@ -463,27 +427,63 @@ msgstr "Source" msgid "Line" msgstr "Ligne" -#: ../src/surfer.c:1558 +#: ../src/surfer.c:1568 +msgid "Web surfer preferences" +msgstr "Préférences de Web surfer" + +#: ../src/surfer.c:1588 +msgid "Homepage:" +msgstr "Page d'accueil :" + +#: ../src/surfer.c:1596 +msgid "Focus new tabs" +msgstr "Focaliser les nouveaux onglets" + +#: ../src/surfer.c:1600 +msgid "General" +msgstr "Général" + +#: ../src/surfer.c:1604 +msgid "Direct connection" +msgstr "Connexion directe" + +#: ../src/surfer.c:1608 +msgid "HTTP proxy:" +msgstr "Proxy HTTP :" + +#: ../src/surfer.c:1615 +msgid "Hostname:" +msgstr "Hôte :" + +#: ../src/surfer.c:1619 +msgid "Port:" +msgstr "Port :" + +#: ../src/surfer.c:1627 +msgid "Network" +msgstr "Réseau" + +#: ../src/surfer.c:1727 msgid "This connection is encrypted and trusted." msgstr "Cette connexion est chiffrée et de confiance." -#: ../src/surfer.c:1561 +#: ../src/surfer.c:1730 msgid "This connection is encrypted but not trusted." msgstr "Cette connexion est chiffrée mais pas de confiance." -#: ../src/surfer.c:1565 +#: ../src/surfer.c:1734 msgid "This connection is not encrypted." msgstr "Cette connexion n'est pas chiffrée." -#: ../src/surfer.c:1621 +#: ../src/surfer.c:1790 msgid "Web surfer - Source of " msgstr "Web surfer - Source de " -#: ../src/surfer.c:1663 ../src/surfer.c:1666 ../src/surfer.c:1721 -#: ../src/surfer.c:1726 +#: ../src/surfer.c:1832 ../src/surfer.c:1835 ../src/surfer.c:1890 +#: ../src/surfer.c:1895 msgid "Warning" msgstr "Avertissement" -#: ../src/surfer.c:1725 +#: ../src/surfer.c:1894 msgid "This file already exists. Overwrite?" msgstr "Le fichier existe déjà. L'écraser ?" diff --git a/po/it.po b/po/it.po index b32a048..2f6b555 100644 --- a/po/it.po +++ b/po/it.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Surfer 0.1.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-05-14 18:12+0200\n" +"POT-Creation-Date: 2011-05-14 18:27+0200\n" "PO-Revision-Date: 2010-04-11 12:06+0200\n" "Last-Translator: Pierre Pronchery \n" "Language-Team: Italian\n" @@ -27,42 +27,6 @@ msgid "" "Do you really want to close every tab opened in this window?" msgstr "" -#: ../src/callbacks.c:524 -msgid "Web surfer preferences" -msgstr "" - -#: ../src/callbacks.c:544 -msgid "Homepage:" -msgstr "" - -#: ../src/callbacks.c:552 -msgid "Focus new tabs" -msgstr "" - -#: ../src/callbacks.c:556 -msgid "General" -msgstr "" - -#: ../src/callbacks.c:560 -msgid "Direct connection" -msgstr "" - -#: ../src/callbacks.c:564 -msgid "HTTP proxy:" -msgstr "" - -#: ../src/callbacks.c:571 -msgid "Hostname:" -msgstr "" - -#: ../src/callbacks.c:575 -msgid "Port:" -msgstr "" - -#: ../src/callbacks.c:583 -msgid "Network" -msgstr "" - #: ../src/common/conn.c:204 ../src/download.c:210 ../src/ghtml-gtkhtml.c:876 msgid "Resolving..." msgstr "" @@ -389,7 +353,7 @@ msgstr "" msgid " Location: " msgstr "" -#: ../src/surfer.c:395 ../src/surfer.c:1572 ../src/surfer.c:1577 +#: ../src/surfer.c:395 ../src/surfer.c:1741 ../src/surfer.c:1746 msgid "Security information" msgstr "" @@ -457,27 +421,63 @@ msgstr "" msgid "Line" msgstr "" -#: ../src/surfer.c:1558 +#: ../src/surfer.c:1568 +msgid "Web surfer preferences" +msgstr "" + +#: ../src/surfer.c:1588 +msgid "Homepage:" +msgstr "" + +#: ../src/surfer.c:1596 +msgid "Focus new tabs" +msgstr "" + +#: ../src/surfer.c:1600 +msgid "General" +msgstr "" + +#: ../src/surfer.c:1604 +msgid "Direct connection" +msgstr "" + +#: ../src/surfer.c:1608 +msgid "HTTP proxy:" +msgstr "" + +#: ../src/surfer.c:1615 +msgid "Hostname:" +msgstr "" + +#: ../src/surfer.c:1619 +msgid "Port:" +msgstr "" + +#: ../src/surfer.c:1627 +msgid "Network" +msgstr "" + +#: ../src/surfer.c:1727 msgid "This connection is encrypted and trusted." msgstr "" -#: ../src/surfer.c:1561 +#: ../src/surfer.c:1730 msgid "This connection is encrypted but not trusted." msgstr "" -#: ../src/surfer.c:1565 +#: ../src/surfer.c:1734 msgid "This connection is not encrypted." msgstr "" -#: ../src/surfer.c:1621 +#: ../src/surfer.c:1790 msgid "Web surfer - Source of " msgstr "" -#: ../src/surfer.c:1663 ../src/surfer.c:1666 ../src/surfer.c:1721 -#: ../src/surfer.c:1726 +#: ../src/surfer.c:1832 ../src/surfer.c:1835 ../src/surfer.c:1890 +#: ../src/surfer.c:1895 msgid "Warning" msgstr "" -#: ../src/surfer.c:1725 +#: ../src/surfer.c:1894 msgid "This file already exists. Overwrite?" msgstr "" diff --git a/src/callbacks.c b/src/callbacks.c index b52c6b7..71701bc 100644 --- a/src/callbacks.c +++ b/src/callbacks.c @@ -497,172 +497,11 @@ void on_path_activate(gpointer data) /* on_preferences */ -static void _preferences_set(Surfer * surfer); -/* callbacks */ -static gboolean _preferences_on_closex(gpointer data); -static void _preferences_on_response(GtkWidget * widget, gint response, - gpointer data); -static void _preferences_on_cancel(gpointer data); -static void _preferences_on_ok(gpointer data); -static void _preferences_on_proxy_http_toggled(gpointer data); - void on_preferences(gpointer data) { Surfer * surfer = data; - GtkWidget * vbox; - GtkWidget * widget; - GtkWidget * notebook; - GtkWidget * page; - GtkWidget * hbox; - if(surfer->pr_window != NULL) - { - gtk_widget_show(surfer->pr_window); - return; - } - surfer->pr_window = gtk_dialog_new_with_buttons( - _("Web surfer preferences"), GTK_WINDOW(surfer->window), - GTK_DIALOG_DESTROY_WITH_PARENT, - GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, - GTK_STOCK_OK, GTK_RESPONSE_OK, NULL); - g_signal_connect_swapped(G_OBJECT(surfer->pr_window), "delete-event", - G_CALLBACK(_preferences_on_closex), surfer); - g_signal_connect(G_OBJECT(surfer->pr_window), "response", - G_CALLBACK(_preferences_on_response), surfer); -#if GTK_CHECK_VERSION(2, 14, 0) - vbox = gtk_dialog_get_content_area(GTK_DIALOG(surfer->pr_window)); -#else - vbox = GTK_DIALOG(surfer->pr_window)->vbox; -#endif - /* notebook */ - notebook = gtk_notebook_new(); - /* general tab */ - page = gtk_vbox_new(FALSE, 4); - gtk_container_set_border_width(GTK_CONTAINER(page), 4); - /* homepage */ - hbox = gtk_hbox_new(FALSE, 4); - widget = gtk_label_new(_("Homepage:")); - gtk_box_pack_start(GTK_BOX(hbox), widget, FALSE, TRUE, 0); - surfer->pr_homepage = gtk_entry_new(); - gtk_box_pack_start(GTK_BOX(hbox), surfer->pr_homepage, TRUE, TRUE, 0); - gtk_box_pack_start(GTK_BOX(page), hbox, FALSE, TRUE, 0); - /* focus new tabs */ - hbox = gtk_hbox_new(FALSE, 4); - surfer->pr_focus_tabs = gtk_check_button_new_with_label( - _("Focus new tabs")); - gtk_box_pack_start(GTK_BOX(hbox), surfer->pr_focus_tabs, TRUE, TRUE, 0); - gtk_box_pack_start(GTK_BOX(page), hbox, FALSE, TRUE, 0); - gtk_notebook_append_page(GTK_NOTEBOOK(notebook), page, - gtk_label_new(_("General"))); - /* network tab */ - page = gtk_vbox_new(FALSE, 4); - gtk_container_set_border_width(GTK_CONTAINER(page), 4); - widget = gtk_radio_button_new_with_label(NULL, _("Direct connection")); - surfer->pr_proxy_radio_direct = widget; - gtk_box_pack_start(GTK_BOX(page), widget, FALSE, TRUE, 0); - widget = gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON( - widget), _("HTTP proxy:")); - surfer->pr_proxy_radio_http = widget; - g_signal_connect_swapped(G_OBJECT(widget), "toggled", G_CALLBACK( - _preferences_on_proxy_http_toggled), surfer); - gtk_box_pack_start(GTK_BOX(page), widget, FALSE, TRUE, 0); - /* http proxy */ - hbox = gtk_hbox_new(FALSE, 4); - widget = gtk_label_new(_("Hostname:")); - gtk_box_pack_start(GTK_BOX(hbox), widget, FALSE, TRUE, 0); - surfer->pr_proxy_http = gtk_entry_new(); - gtk_box_pack_start(GTK_BOX(hbox), surfer->pr_proxy_http, TRUE, TRUE, 0); - widget = gtk_label_new(_("Port:")); - gtk_box_pack_start(GTK_BOX(hbox), widget, FALSE, TRUE, 0); - surfer->pr_proxy_http_port = gtk_spin_button_new_with_range(0, 65535, - 1.0); - gtk_box_pack_start(GTK_BOX(hbox), surfer->pr_proxy_http_port, FALSE, - TRUE, 0); - gtk_box_pack_start(GTK_BOX(page), hbox, FALSE, TRUE, 0); - gtk_notebook_append_page(GTK_NOTEBOOK(notebook), page, - gtk_label_new(_("Network"))); - gtk_box_pack_start(GTK_BOX(vbox), notebook, TRUE, TRUE, 0); - _preferences_set(surfer); - gtk_widget_show_all(surfer->pr_window); -} - -static void _preferences_set(Surfer * surfer) -{ - char const * p; - - gtk_entry_set_text(GTK_ENTRY(surfer->pr_homepage), surfer->homepage - != NULL ? surfer->homepage : ""); - if((p = config_get(surfer->config, "", "focus_new_tabs")) != NULL - && strcmp(p, "1") == 0) - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON( - surfer->pr_focus_tabs), TRUE); - else - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON( - surfer->pr_focus_tabs), FALSE); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON( - surfer->pr_proxy_radio_http), - surfer->proxy_type == SPT_HTTP); - _preferences_on_proxy_http_toggled(surfer); - if(surfer->proxy_http != NULL) - gtk_entry_set_text(GTK_ENTRY(surfer->pr_proxy_http), - surfer->proxy_http); - gtk_spin_button_set_value(GTK_SPIN_BUTTON(surfer->pr_proxy_http_port), - surfer->proxy_http_port); -} - -static gboolean _preferences_on_closex(gpointer data) -{ - Surfer * surfer = data; - - _preferences_on_cancel(surfer); - return TRUE; -} - -static void _preferences_on_response(GtkWidget * widget, gint response, - gpointer data) -{ - gtk_widget_hide(widget); - if(response == GTK_RESPONSE_OK) - _preferences_on_ok(data); - else if(response == GTK_RESPONSE_CANCEL) - _preferences_on_cancel(data); -} - -static void _preferences_on_cancel(gpointer data) -{ - Surfer * surfer = data; - - gtk_widget_hide(surfer->pr_window); - _preferences_set(surfer); -} - -static void _preferences_on_ok(gpointer data) -{ - Surfer * surfer = data; - SurferProxyType type = SPT_NONE; - - gtk_widget_hide(surfer->pr_window); - surfer_set_homepage(surfer, gtk_entry_get_text(GTK_ENTRY( - surfer->pr_homepage))); - if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON( - surfer->pr_proxy_radio_http))) - type = SPT_HTTP; - surfer_set_proxy(surfer, type, gtk_entry_get_text(GTK_ENTRY( - surfer->pr_proxy_http)), - gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON( - surfer->pr_proxy_http_port))); - surfer_config_save(surfer); -} - -static void _preferences_on_proxy_http_toggled(gpointer data) -{ - Surfer * surfer = data; - gboolean active; - - active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON( - surfer->pr_proxy_radio_http)); - gtk_widget_set_sensitive(surfer->pr_proxy_http, active); - gtk_widget_set_sensitive(surfer->pr_proxy_http_port, active); + surfer_view_preferences(surfer); } diff --git a/src/surfer.c b/src/surfer.c index 2eae489..141dd0a 100644 --- a/src/surfer.c +++ b/src/surfer.c @@ -1541,6 +1541,175 @@ void surfer_unselect_all(Surfer * surfer) } +/* surfer_view_preferences */ +static void _preferences_set(Surfer * surfer); +/* callbacks */ +static gboolean _preferences_on_closex(gpointer data); +static void _preferences_on_response(GtkWidget * widget, gint response, + gpointer data); +static void _preferences_on_cancel(gpointer data); +static void _preferences_on_ok(gpointer data); +static void _preferences_on_proxy_http_toggled(gpointer data); + +void surfer_view_preferences(Surfer * surfer) +{ + GtkWidget * vbox; + GtkWidget * widget; + GtkWidget * notebook; + GtkWidget * page; + GtkWidget * hbox; + + if(surfer->pr_window != NULL) + { + gtk_widget_show(surfer->pr_window); + return; + } + surfer->pr_window = gtk_dialog_new_with_buttons( + _("Web surfer preferences"), GTK_WINDOW(surfer->window), + GTK_DIALOG_DESTROY_WITH_PARENT, + GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, + GTK_STOCK_OK, GTK_RESPONSE_OK, NULL); + g_signal_connect_swapped(G_OBJECT(surfer->pr_window), "delete-event", + G_CALLBACK(_preferences_on_closex), surfer); + g_signal_connect(G_OBJECT(surfer->pr_window), "response", + G_CALLBACK(_preferences_on_response), surfer); +#if GTK_CHECK_VERSION(2, 14, 0) + vbox = gtk_dialog_get_content_area(GTK_DIALOG(surfer->pr_window)); +#else + vbox = GTK_DIALOG(surfer->pr_window)->vbox; +#endif + /* notebook */ + notebook = gtk_notebook_new(); + /* general tab */ + page = gtk_vbox_new(FALSE, 4); + gtk_container_set_border_width(GTK_CONTAINER(page), 4); + /* homepage */ + hbox = gtk_hbox_new(FALSE, 4); + widget = gtk_label_new(_("Homepage:")); + gtk_box_pack_start(GTK_BOX(hbox), widget, FALSE, TRUE, 0); + surfer->pr_homepage = gtk_entry_new(); + gtk_box_pack_start(GTK_BOX(hbox), surfer->pr_homepage, TRUE, TRUE, 0); + gtk_box_pack_start(GTK_BOX(page), hbox, FALSE, TRUE, 0); + /* focus new tabs */ + hbox = gtk_hbox_new(FALSE, 4); + surfer->pr_focus_tabs = gtk_check_button_new_with_label( + _("Focus new tabs")); + gtk_box_pack_start(GTK_BOX(hbox), surfer->pr_focus_tabs, TRUE, TRUE, 0); + gtk_box_pack_start(GTK_BOX(page), hbox, FALSE, TRUE, 0); + gtk_notebook_append_page(GTK_NOTEBOOK(notebook), page, + gtk_label_new(_("General"))); + /* network tab */ + page = gtk_vbox_new(FALSE, 4); + gtk_container_set_border_width(GTK_CONTAINER(page), 4); + widget = gtk_radio_button_new_with_label(NULL, _("Direct connection")); + surfer->pr_proxy_radio_direct = widget; + gtk_box_pack_start(GTK_BOX(page), widget, FALSE, TRUE, 0); + widget = gtk_radio_button_new_with_label_from_widget(GTK_RADIO_BUTTON( + widget), _("HTTP proxy:")); + surfer->pr_proxy_radio_http = widget; + g_signal_connect_swapped(G_OBJECT(widget), "toggled", G_CALLBACK( + _preferences_on_proxy_http_toggled), surfer); + gtk_box_pack_start(GTK_BOX(page), widget, FALSE, TRUE, 0); + /* http proxy */ + hbox = gtk_hbox_new(FALSE, 4); + widget = gtk_label_new(_("Hostname:")); + gtk_box_pack_start(GTK_BOX(hbox), widget, FALSE, TRUE, 0); + surfer->pr_proxy_http = gtk_entry_new(); + gtk_box_pack_start(GTK_BOX(hbox), surfer->pr_proxy_http, TRUE, TRUE, 0); + widget = gtk_label_new(_("Port:")); + gtk_box_pack_start(GTK_BOX(hbox), widget, FALSE, TRUE, 0); + surfer->pr_proxy_http_port = gtk_spin_button_new_with_range(0, 65535, + 1.0); + gtk_box_pack_start(GTK_BOX(hbox), surfer->pr_proxy_http_port, FALSE, + TRUE, 0); + gtk_box_pack_start(GTK_BOX(page), hbox, FALSE, TRUE, 0); + gtk_notebook_append_page(GTK_NOTEBOOK(notebook), page, + gtk_label_new(_("Network"))); + gtk_box_pack_start(GTK_BOX(vbox), notebook, TRUE, TRUE, 0); + _preferences_set(surfer); + gtk_widget_show_all(surfer->pr_window); +} + +static void _preferences_set(Surfer * surfer) +{ + char const * p; + + gtk_entry_set_text(GTK_ENTRY(surfer->pr_homepage), surfer->homepage + != NULL ? surfer->homepage : ""); + if((p = config_get(surfer->config, "", "focus_new_tabs")) != NULL + && strcmp(p, "1") == 0) + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON( + surfer->pr_focus_tabs), TRUE); + else + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON( + surfer->pr_focus_tabs), FALSE); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON( + surfer->pr_proxy_radio_http), + surfer->proxy_type == SPT_HTTP); + _preferences_on_proxy_http_toggled(surfer); + if(surfer->proxy_http != NULL) + gtk_entry_set_text(GTK_ENTRY(surfer->pr_proxy_http), + surfer->proxy_http); + gtk_spin_button_set_value(GTK_SPIN_BUTTON(surfer->pr_proxy_http_port), + surfer->proxy_http_port); +} + +static gboolean _preferences_on_closex(gpointer data) +{ + Surfer * surfer = data; + + _preferences_on_cancel(surfer); + return TRUE; +} + +static void _preferences_on_response(GtkWidget * widget, gint response, + gpointer data) +{ + gtk_widget_hide(widget); + if(response == GTK_RESPONSE_OK) + _preferences_on_ok(data); + else if(response == GTK_RESPONSE_CANCEL) + _preferences_on_cancel(data); +} + +static void _preferences_on_cancel(gpointer data) +{ + Surfer * surfer = data; + + gtk_widget_hide(surfer->pr_window); + _preferences_set(surfer); +} + +static void _preferences_on_ok(gpointer data) +{ + Surfer * surfer = data; + SurferProxyType type = SPT_NONE; + + gtk_widget_hide(surfer->pr_window); + surfer_set_homepage(surfer, gtk_entry_get_text(GTK_ENTRY( + surfer->pr_homepage))); + if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON( + surfer->pr_proxy_radio_http))) + type = SPT_HTTP; + surfer_set_proxy(surfer, type, gtk_entry_get_text(GTK_ENTRY( + surfer->pr_proxy_http)), + gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON( + surfer->pr_proxy_http_port))); + surfer_config_save(surfer); +} + +static void _preferences_on_proxy_http_toggled(gpointer data) +{ + Surfer * surfer = data; + gboolean active; + + active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON( + surfer->pr_proxy_radio_http)); + gtk_widget_set_sensitive(surfer->pr_proxy_http, active); + gtk_widget_set_sensitive(surfer->pr_proxy_http_port, active); +} + + /* surfer_view_security */ void surfer_view_security(Surfer * surfer) { diff --git a/src/surfer.h b/src/surfer.h index b57991a..8ac9300 100644 --- a/src/surfer.h +++ b/src/surfer.h @@ -131,6 +131,7 @@ void surfer_refresh(Surfer * surfer); void surfer_reload(Surfer * surfer); void surfer_stop(Surfer * surfer); +void surfer_view_preferences(Surfer * surfer); void surfer_view_security(Surfer * surfer); void surfer_view_source(Surfer * surfer);