Add Detect proxy server automatically to Preferences
This commit is contained in:
parent
f1f27c9322
commit
0d73df50d2
3 changed files with 65 additions and 11 deletions
|
@ -1706,14 +1706,22 @@ soup_session_settings_notify_http_proxy_cb (MidoriWebSettings* settings,
|
||||||
GParamSpec* pspec,
|
GParamSpec* pspec,
|
||||||
SoupSession* session)
|
SoupSession* session)
|
||||||
{
|
{
|
||||||
|
gboolean auto_detect_proxy;
|
||||||
gchar* http_proxy;
|
gchar* http_proxy;
|
||||||
SoupURI* proxy_uri;
|
SoupURI* proxy_uri;
|
||||||
|
|
||||||
http_proxy = katze_object_get_string (settings, "http-proxy");
|
auto_detect_proxy = katze_object_get_boolean (settings, "auto-detect-proxy");
|
||||||
|
if (auto_detect_proxy)
|
||||||
|
http_proxy = g_strdup (g_getenv ("http_proxy"));
|
||||||
|
else
|
||||||
|
http_proxy = katze_object_get_string (settings, "http-proxy");
|
||||||
|
g_debug (http_proxy);
|
||||||
/* soup_uri_new expects a non-NULL string */
|
/* soup_uri_new expects a non-NULL string */
|
||||||
proxy_uri = soup_uri_new (http_proxy ? http_proxy : "");
|
proxy_uri = soup_uri_new (http_proxy ? http_proxy : "");
|
||||||
g_free (http_proxy);
|
g_free (http_proxy);
|
||||||
g_object_set (session, "proxy-uri", proxy_uri, NULL);
|
g_object_set (session, "proxy-uri", proxy_uri, NULL);
|
||||||
|
if (proxy_uri)
|
||||||
|
soup_uri_free (proxy_uri);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -1748,6 +1756,8 @@ soup_session_constructed_cb (GObject* object)
|
||||||
soup_session_settings_notify_ident_string_cb (settings, NULL, session);
|
soup_session_settings_notify_ident_string_cb (settings, NULL, session);
|
||||||
g_signal_connect (settings, "notify::http-proxy",
|
g_signal_connect (settings, "notify::http-proxy",
|
||||||
G_CALLBACK (soup_session_settings_notify_http_proxy_cb), object);
|
G_CALLBACK (soup_session_settings_notify_http_proxy_cb), object);
|
||||||
|
g_signal_connect (settings, "notify::auto-detect-proxy",
|
||||||
|
G_CALLBACK (soup_session_settings_notify_http_proxy_cb), object);
|
||||||
g_signal_connect (settings, "notify::ident-string",
|
g_signal_connect (settings, "notify::ident-string",
|
||||||
G_CALLBACK (soup_session_settings_notify_ident_string_cb), object);
|
G_CALLBACK (soup_session_settings_notify_ident_string_cb), object);
|
||||||
|
|
||||||
|
|
|
@ -224,6 +224,17 @@ midori_preferences_notify_preferred_encoding_cb (MidoriWebSettings* settings,
|
||||||
}
|
}
|
||||||
|
|
||||||
#if HAVE_LIBSOUP
|
#if HAVE_LIBSOUP
|
||||||
|
static void
|
||||||
|
midori_preferences_notify_auto_detect_proxy_cb (MidoriWebSettings* settings,
|
||||||
|
GParamSpec* pspec,
|
||||||
|
GtkWidget* entry)
|
||||||
|
{
|
||||||
|
MidoriIdentity auto_detect_proxy = katze_object_get_enum (settings,
|
||||||
|
"auto-detect-proxy");
|
||||||
|
|
||||||
|
gtk_widget_set_sensitive (entry, !auto_detect_proxy);
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
midori_preferences_notify_identify_as_cb (MidoriWebSettings* settings,
|
midori_preferences_notify_identify_as_cb (MidoriWebSettings* settings,
|
||||||
GParamSpec* pspec,
|
GParamSpec* pspec,
|
||||||
|
@ -543,30 +554,35 @@ midori_preferences_set_settings (MidoriPreferences* preferences,
|
||||||
{
|
{
|
||||||
PAGE_NEW (GTK_STOCK_NETWORK, _("Network"));
|
PAGE_NEW (GTK_STOCK_NETWORK, _("Network"));
|
||||||
FRAME_NEW (_("Network"));
|
FRAME_NEW (_("Network"));
|
||||||
TABLE_NEW (4, 2);
|
TABLE_NEW (5, 2);
|
||||||
label = katze_property_label (settings, "http-proxy");
|
label = katze_property_label (settings, "http-proxy");
|
||||||
INDENTED_ADD (label, 0, 1, 0, 1);
|
INDENTED_ADD (label, 0, 1, 0, 1);
|
||||||
button = katze_property_proxy (settings, "http-proxy", NULL);
|
entry = katze_property_proxy (settings, "http-proxy", NULL);
|
||||||
FILLED_ADD (button, 1, 2, 0, 1);
|
FILLED_ADD (entry, 1, 2, 0, 1);
|
||||||
label = katze_property_label (settings, "identify-as");
|
button = katze_property_proxy (settings, "auto-detect-proxy", NULL);
|
||||||
INDENTED_ADD (label, 0, 1, 1, 2);
|
|
||||||
button = katze_property_proxy (settings, "identify-as", NULL);
|
|
||||||
FILLED_ADD (button, 1, 2, 1, 2);
|
FILLED_ADD (button, 1, 2, 1, 2);
|
||||||
label = katze_property_label (settings, "ident-string");
|
g_signal_connect (settings, "notify::auto-detect-proxy",
|
||||||
|
G_CALLBACK (midori_preferences_notify_auto_detect_proxy_cb), entry);
|
||||||
|
midori_preferences_notify_auto_detect_proxy_cb (settings, NULL, entry);
|
||||||
|
label = katze_property_label (settings, "identify-as");
|
||||||
INDENTED_ADD (label, 0, 1, 2, 3);
|
INDENTED_ADD (label, 0, 1, 2, 3);
|
||||||
|
button = katze_property_proxy (settings, "identify-as", NULL);
|
||||||
|
FILLED_ADD (button, 1, 2, 2, 3);
|
||||||
|
label = katze_property_label (settings, "ident-string");
|
||||||
|
INDENTED_ADD (label, 0, 1, 3, 4);
|
||||||
entry = katze_property_proxy (settings, "ident-string", NULL);
|
entry = katze_property_proxy (settings, "ident-string", NULL);
|
||||||
g_signal_connect (settings, "notify::identify-as",
|
g_signal_connect (settings, "notify::identify-as",
|
||||||
G_CALLBACK (midori_preferences_notify_identify_as_cb), entry);
|
G_CALLBACK (midori_preferences_notify_identify_as_cb), entry);
|
||||||
midori_preferences_notify_identify_as_cb (settings, NULL, entry);
|
midori_preferences_notify_identify_as_cb (settings, NULL, entry);
|
||||||
FILLED_ADD (entry, 1, 2, 2, 3);
|
FILLED_ADD (entry, 1, 2, 3, 4);
|
||||||
label = katze_property_label (settings, "cache-size");
|
label = katze_property_label (settings, "cache-size");
|
||||||
INDENTED_ADD (label, 0, 1, 3, 4);
|
INDENTED_ADD (label, 0, 1, 4, 5);
|
||||||
hbox = gtk_hbox_new (FALSE, 4);
|
hbox = gtk_hbox_new (FALSE, 4);
|
||||||
entry = katze_property_proxy (settings, "cache-size", NULL);
|
entry = katze_property_proxy (settings, "cache-size", NULL);
|
||||||
gtk_box_pack_start (GTK_BOX (hbox), entry, FALSE, FALSE, 0);
|
gtk_box_pack_start (GTK_BOX (hbox), entry, FALSE, FALSE, 0);
|
||||||
gtk_box_pack_start (GTK_BOX (hbox), gtk_label_new (_("MB")),
|
gtk_box_pack_start (GTK_BOX (hbox), gtk_label_new (_("MB")),
|
||||||
FALSE, FALSE, 0);
|
FALSE, FALSE, 0);
|
||||||
FILLED_ADD (hbox, 1, 2, 3, 4);
|
FILLED_ADD (hbox, 1, 2, 4, 5);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -72,6 +72,7 @@ struct _MidoriWebSettings
|
||||||
gboolean remember_last_downloaded_files;
|
gboolean remember_last_downloaded_files;
|
||||||
|
|
||||||
gchar* http_proxy;
|
gchar* http_proxy;
|
||||||
|
gboolean auto_detect_proxy;
|
||||||
MidoriIdentity identify_as;
|
MidoriIdentity identify_as;
|
||||||
gchar* ident_string;
|
gchar* ident_string;
|
||||||
gint cache_size;
|
gint cache_size;
|
||||||
|
@ -138,6 +139,7 @@ enum
|
||||||
PROP_REMEMBER_LAST_DOWNLOADED_FILES,
|
PROP_REMEMBER_LAST_DOWNLOADED_FILES,
|
||||||
|
|
||||||
PROP_HTTP_PROXY,
|
PROP_HTTP_PROXY,
|
||||||
|
PROP_AUTO_DETECT_PROXY,
|
||||||
PROP_IDENTIFY_AS,
|
PROP_IDENTIFY_AS,
|
||||||
PROP_IDENT_STRING,
|
PROP_IDENT_STRING,
|
||||||
PROP_CACHE_SIZE
|
PROP_CACHE_SIZE
|
||||||
|
@ -763,6 +765,26 @@ midori_web_settings_class_init (MidoriWebSettingsClass* class)
|
||||||
G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
|
G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
* MidoriWebSettings:auto-detect-proxy:
|
||||||
|
*
|
||||||
|
* Whether to detect the proxy server automatically from the environment
|
||||||
|
*
|
||||||
|
* Since: 0.1.3
|
||||||
|
*/
|
||||||
|
g_object_class_install_property (gobject_class,
|
||||||
|
PROP_AUTO_DETECT_PROXY,
|
||||||
|
g_param_spec_boolean (
|
||||||
|
"auto-detect-proxy",
|
||||||
|
_("Detect proxy server automatically"),
|
||||||
|
_("Whether to detect the proxy server automatically from the environment"),
|
||||||
|
TRUE,
|
||||||
|
#if HAVE_LIBSOUP
|
||||||
|
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
|
||||||
|
#else
|
||||||
|
G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* MidoriWebSettings:identify-as:
|
* MidoriWebSettings:identify-as:
|
||||||
*
|
*
|
||||||
|
@ -1083,6 +1105,9 @@ midori_web_settings_set_property (GObject* object,
|
||||||
case PROP_HTTP_PROXY:
|
case PROP_HTTP_PROXY:
|
||||||
katze_assign (web_settings->http_proxy, g_value_dup_string (value));
|
katze_assign (web_settings->http_proxy, g_value_dup_string (value));
|
||||||
break;
|
break;
|
||||||
|
case PROP_AUTO_DETECT_PROXY:
|
||||||
|
web_settings->auto_detect_proxy = g_value_get_boolean (value);
|
||||||
|
break;
|
||||||
case PROP_IDENTIFY_AS:
|
case PROP_IDENTIFY_AS:
|
||||||
web_settings->identify_as = g_value_get_enum (value);
|
web_settings->identify_as = g_value_get_enum (value);
|
||||||
if (web_settings->identify_as != MIDORI_IDENT_CUSTOM)
|
if (web_settings->identify_as != MIDORI_IDENT_CUSTOM)
|
||||||
|
@ -1250,6 +1275,9 @@ midori_web_settings_get_property (GObject* object,
|
||||||
case PROP_HTTP_PROXY:
|
case PROP_HTTP_PROXY:
|
||||||
g_value_set_string (value, web_settings->http_proxy);
|
g_value_set_string (value, web_settings->http_proxy);
|
||||||
break;
|
break;
|
||||||
|
case PROP_AUTO_DETECT_PROXY:
|
||||||
|
g_value_set_boolean (value, web_settings->auto_detect_proxy);
|
||||||
|
break;
|
||||||
case PROP_IDENTIFY_AS:
|
case PROP_IDENTIFY_AS:
|
||||||
g_value_set_enum (value, web_settings->identify_as);
|
g_value_set_enum (value, web_settings->identify_as);
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Reference in a new issue