Implement 'Proxy type' preference which can be Auto, HTTP or None
This commit is contained in:
parent
476f64e9bc
commit
e886293ebf
4 changed files with 87 additions and 26 deletions
|
@ -759,10 +759,10 @@ soup_session_settings_notify_http_proxy_cb (MidoriWebSettings* settings,
|
||||||
GParamSpec* pspec,
|
GParamSpec* pspec,
|
||||||
SoupSession* session)
|
SoupSession* session)
|
||||||
{
|
{
|
||||||
gboolean auto_detect_proxy;
|
MidoriProxy proxy_type;
|
||||||
|
|
||||||
auto_detect_proxy = katze_object_get_boolean (settings, "auto-detect-proxy");
|
proxy_type = katze_object_get_enum (settings, "proxy-type");
|
||||||
if (auto_detect_proxy)
|
if (proxy_type == MIDORI_PROXY_AUTOMATIC)
|
||||||
{
|
{
|
||||||
gboolean gnome_supported = FALSE;
|
gboolean gnome_supported = FALSE;
|
||||||
GModule* module;
|
GModule* module;
|
||||||
|
@ -780,12 +780,14 @@ soup_session_settings_notify_http_proxy_cb (MidoriWebSettings* settings,
|
||||||
if (!gnome_supported)
|
if (!gnome_supported)
|
||||||
midori_soup_session_set_proxy_uri (session, g_getenv ("http_proxy"));
|
midori_soup_session_set_proxy_uri (session, g_getenv ("http_proxy"));
|
||||||
}
|
}
|
||||||
else
|
else if (proxy_type == MIDORI_PROXY_HTTP)
|
||||||
{
|
{
|
||||||
gchar* http_proxy = katze_object_get_string (settings, "http-proxy");
|
gchar* http_proxy = katze_object_get_string (settings, "http-proxy");
|
||||||
midori_soup_session_set_proxy_uri (session, http_proxy);
|
midori_soup_session_set_proxy_uri (session, http_proxy);
|
||||||
g_free (http_proxy);
|
g_free (http_proxy);
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
midori_soup_session_set_proxy_uri (session, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if !WEBKIT_CHECK_VERSION (1, 1, 11)
|
#if !WEBKIT_CHECK_VERSION (1, 1, 11)
|
||||||
|
|
|
@ -183,14 +183,13 @@ midori_preferences_homepage_current_clicked_cb (GtkWidget* button,
|
||||||
|
|
||||||
#if !HAVE_HILDON
|
#if !HAVE_HILDON
|
||||||
static void
|
static void
|
||||||
midori_preferences_notify_auto_detect_proxy_cb (MidoriWebSettings* settings,
|
midori_preferences_notify_proxy_type_cb (MidoriWebSettings* settings,
|
||||||
GParamSpec* pspec,
|
GParamSpec* pspec,
|
||||||
GtkWidget* entry)
|
GtkWidget* entry)
|
||||||
{
|
{
|
||||||
MidoriIdentity auto_detect_proxy = katze_object_get_enum (settings,
|
MidoriProxy proxy_type = katze_object_get_enum (settings, "proxy-type");
|
||||||
"auto-detect-proxy");
|
|
||||||
|
|
||||||
gtk_widget_set_sensitive (entry, !auto_detect_proxy);
|
gtk_widget_set_sensitive (entry, proxy_type == MIDORI_PROXY_HTTP);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -486,16 +485,17 @@ midori_preferences_set_settings (MidoriPreferences* preferences,
|
||||||
PAGE_NEW (GTK_STOCK_NETWORK, _("Network"));
|
PAGE_NEW (GTK_STOCK_NETWORK, _("Network"));
|
||||||
FRAME_NEW (_("Network"));
|
FRAME_NEW (_("Network"));
|
||||||
#if !HAVE_HILDON
|
#if !HAVE_HILDON
|
||||||
label = katze_property_label (settings, "http-proxy");
|
label = katze_property_label (settings, "proxy-type");
|
||||||
|
INDENTED_ADD (label);
|
||||||
|
button = katze_property_proxy (settings, "proxy-type", NULL);
|
||||||
|
SPANNED_ADD (button);
|
||||||
|
label = gtk_label_new (_("Hostname"));
|
||||||
INDENTED_ADD (label);
|
INDENTED_ADD (label);
|
||||||
entry = katze_property_proxy (settings, "http-proxy", NULL);
|
entry = katze_property_proxy (settings, "http-proxy", NULL);
|
||||||
SPANNED_ADD (entry);
|
SPANNED_ADD (entry);
|
||||||
INDENTED_ADD (gtk_event_box_new ());
|
g_signal_connect (settings, "notify::proxy-type",
|
||||||
button = katze_property_proxy (settings, "auto-detect-proxy", NULL);
|
G_CALLBACK (midori_preferences_notify_proxy_type_cb), entry);
|
||||||
SPANNED_ADD (button);
|
midori_preferences_notify_proxy_type_cb (settings, NULL, entry);
|
||||||
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);
|
|
||||||
#endif
|
#endif
|
||||||
label = katze_property_label (settings, "identify-as");
|
label = katze_property_label (settings, "identify-as");
|
||||||
INDENTED_ADD (label);
|
INDENTED_ADD (label);
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
Copyright (C) 2008-2009 Christian Dywan <christian@twotoasts.de>
|
Copyright (C) 2008-2010 Christian Dywan <christian@twotoasts.de>
|
||||||
|
|
||||||
This library is free software; you can redistribute it and/or
|
This library is free software; you can redistribute it and/or
|
||||||
modify it under the terms of the GNU Lesser General Public
|
modify it under the terms of the GNU Lesser General Public
|
||||||
|
@ -85,6 +85,7 @@ struct _MidoriWebSettings
|
||||||
gint maximum_history_age;
|
gint maximum_history_age;
|
||||||
gboolean remember_last_downloaded_files;
|
gboolean remember_last_downloaded_files;
|
||||||
|
|
||||||
|
MidoriProxy proxy_type;
|
||||||
gchar* http_proxy;
|
gchar* http_proxy;
|
||||||
gchar* http_accept_language;
|
gchar* http_accept_language;
|
||||||
gboolean auto_detect_proxy;
|
gboolean auto_detect_proxy;
|
||||||
|
@ -170,6 +171,7 @@ enum
|
||||||
PROP_MAXIMUM_HISTORY_AGE,
|
PROP_MAXIMUM_HISTORY_AGE,
|
||||||
PROP_REMEMBER_LAST_DOWNLOADED_FILES,
|
PROP_REMEMBER_LAST_DOWNLOADED_FILES,
|
||||||
|
|
||||||
|
PROP_PROXY_TYPE,
|
||||||
PROP_HTTP_PROXY,
|
PROP_HTTP_PROXY,
|
||||||
PROP_AUTO_DETECT_PROXY,
|
PROP_AUTO_DETECT_PROXY,
|
||||||
PROP_IDENTIFY_AS,
|
PROP_IDENTIFY_AS,
|
||||||
|
@ -272,6 +274,23 @@ midori_toolbar_style_get_type (void)
|
||||||
return type;
|
return type;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
GType
|
||||||
|
midori_proxy_get_type (void)
|
||||||
|
{
|
||||||
|
static GType type = 0;
|
||||||
|
if (!type)
|
||||||
|
{
|
||||||
|
static const GEnumValue values[] = {
|
||||||
|
{ MIDORI_PROXY_AUTOMATIC, "MIDORI_PROXY_AUTOMATIC", N_("Automatic (GNOME or environment)") },
|
||||||
|
{ MIDORI_PROXY_HTTP, "MIDORI_PROXY_HTTP", N_("HTTP proxy server") },
|
||||||
|
{ MIDORI_PROXY_NONE, "MIDORI_PROXY_NONE", N_("No proxy server") },
|
||||||
|
{ 0, NULL, NULL }
|
||||||
|
};
|
||||||
|
type = g_enum_register_static ("MidoriProxy", values);
|
||||||
|
}
|
||||||
|
return type;
|
||||||
|
}
|
||||||
|
|
||||||
GType
|
GType
|
||||||
midori_accept_cookies_get_type (void)
|
midori_accept_cookies_get_type (void)
|
||||||
{
|
{
|
||||||
|
@ -1019,11 +1038,28 @@ midori_web_settings_class_init (MidoriWebSettingsClass* class)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* MidoriWebSettings:proxy-type:
|
||||||
|
*
|
||||||
|
* The type of proxy server to use.
|
||||||
|
*
|
||||||
|
* Since: 0.2.5
|
||||||
|
*/
|
||||||
|
g_object_class_install_property (gobject_class,
|
||||||
|
PROP_PROXY_TYPE,
|
||||||
|
g_param_spec_enum (
|
||||||
|
"proxy-type",
|
||||||
|
_("Proxy server"),
|
||||||
|
_("The type of proxy server to use"),
|
||||||
|
MIDORI_TYPE_PROXY,
|
||||||
|
MIDORI_PROXY_AUTOMATIC,
|
||||||
|
flags));
|
||||||
|
|
||||||
g_object_class_install_property (gobject_class,
|
g_object_class_install_property (gobject_class,
|
||||||
PROP_HTTP_PROXY,
|
PROP_HTTP_PROXY,
|
||||||
g_param_spec_string (
|
g_param_spec_string (
|
||||||
"http-proxy",
|
"http-proxy",
|
||||||
_("Proxy Server"),
|
_("HTTP Proxy Server"),
|
||||||
_("The proxy server used for HTTP connections"),
|
_("The proxy server used for HTTP connections"),
|
||||||
NULL,
|
NULL,
|
||||||
flags));
|
flags));
|
||||||
|
@ -1033,7 +1069,7 @@ midori_web_settings_class_init (MidoriWebSettingsClass* class)
|
||||||
*
|
*
|
||||||
* Whether to detect the proxy server automatically from the environment
|
* Whether to detect the proxy server automatically from the environment
|
||||||
*
|
*
|
||||||
* Since: 0.1.3
|
* Deprecated: 0.2.5
|
||||||
*/
|
*/
|
||||||
g_object_class_install_property (gobject_class,
|
g_object_class_install_property (gobject_class,
|
||||||
PROP_AUTO_DETECT_PROXY,
|
PROP_AUTO_DETECT_PROXY,
|
||||||
|
@ -1491,6 +1527,13 @@ midori_web_settings_set_property (GObject* object,
|
||||||
web_settings->remember_last_downloaded_files = g_value_get_boolean (value);
|
web_settings->remember_last_downloaded_files = g_value_get_boolean (value);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case PROP_PROXY_TYPE:
|
||||||
|
web_settings->proxy_type = g_value_get_enum (value);
|
||||||
|
web_settings->auto_detect_proxy =
|
||||||
|
web_settings->proxy_type == MIDORI_PROXY_AUTOMATIC
|
||||||
|
? TRUE : FALSE;
|
||||||
|
g_object_notify (object, "auto-detect-proxy");
|
||||||
|
break;
|
||||||
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;
|
||||||
|
@ -1735,6 +1778,9 @@ midori_web_settings_get_property (GObject* object,
|
||||||
g_value_set_boolean (value, web_settings->remember_last_downloaded_files);
|
g_value_set_boolean (value, web_settings->remember_last_downloaded_files);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case PROP_PROXY_TYPE:
|
||||||
|
g_value_set_enum (value, web_settings->proxy_type);
|
||||||
|
break;
|
||||||
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;
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
Copyright (C) 2008 Christian Dywan <christian@twotoasts.de>
|
Copyright (C) 2008-2010 Christian Dywan <christian@twotoasts.de>
|
||||||
|
|
||||||
This library is free software; you can redistribute it and/or
|
This library is free software; you can redistribute it and/or
|
||||||
modify it under the terms of the GNU Lesser General Public
|
modify it under the terms of the GNU Lesser General Public
|
||||||
|
@ -119,6 +119,19 @@ midori_toolbar_style_get_type (void) G_GNUC_CONST;
|
||||||
#define MIDORI_TYPE_TOOLBAR_STYLE \
|
#define MIDORI_TYPE_TOOLBAR_STYLE \
|
||||||
(midori_toolbar_style_get_type ())
|
(midori_toolbar_style_get_type ())
|
||||||
|
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
MIDORI_PROXY_AUTOMATIC,
|
||||||
|
MIDORI_PROXY_HTTP,
|
||||||
|
MIDORI_PROXY_NONE
|
||||||
|
} MidoriProxy;
|
||||||
|
|
||||||
|
GType
|
||||||
|
midori_proxy_get_type (void) G_GNUC_CONST;
|
||||||
|
|
||||||
|
#define MIDORI_TYPE_PROXY \
|
||||||
|
(midori_proxy_get_type ())
|
||||||
|
|
||||||
typedef enum
|
typedef enum
|
||||||
{
|
{
|
||||||
MIDORI_ACCEPT_COOKIES_ALL,
|
MIDORI_ACCEPT_COOKIES_ALL,
|
||||||
|
|
Loading…
Reference in a new issue