[sound-juicer/wip/gsettings] Rationalise http proxy handling



commit 96bc0db7512f81ba2d109c5988c06b2445091a88
Author: Phillip Wood <phillip wood dunelm org uk>
Date:   Tue Jan 21 10:37:33 2014 +0000

    Rationalise http proxy handling
    
    Stop using the 'enabled' key for the http proxy as it's not meant to
    be used - see bug 648237.
    
    Only read and use the proxy settings in one place. Add missing proxy
    properties to SjMetadata and bind them in SjMetadataGetter. Bind the
    properties with G_SETTINGS_BIND_GET_NO_CHANGES to avoid problems when
    the settings are updated from a different thread.
    
    The change to gsettings removes the ability to set a local musicbrainz
    server. The support for this was half-hearted as it was only possible
    to set a custom hostname, not a custom port.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=625897

 libjuicer/sj-metadata-getter.c       |   71 +++++++++++-------
 libjuicer/sj-metadata-getter.h       |    2 -
 libjuicer/sj-metadata-gvfs.c         |   27 ++++++-
 libjuicer/sj-metadata-musicbrainz5.c |  138 ++++++++++++++++++++--------------
 libjuicer/sj-metadata.c              |   27 ++++---
 libjuicer/sj-metadata.h              |    2 -
 src/sj-main.c                        |   59 --------------
 src/sound-juicer.h                   |    4 -
 8 files changed, 163 insertions(+), 167 deletions(-)
---
diff --git a/libjuicer/sj-metadata-getter.c b/libjuicer/sj-metadata-getter.c
index ac700fc..5c39442 100644
--- a/libjuicer/sj-metadata-getter.c
+++ b/libjuicer/sj-metadata-getter.c
@@ -20,6 +20,7 @@
 
 #include "config.h"
 
+#include <gio/gio.h>
 #include <glib-object.h>
 #include <glib/gi18n.h>
 #include "sj-structures.h"
@@ -32,6 +33,12 @@
 #include "sj-metadata-gvfs.h"
 #include "sj-error.h"
 
+#define SJ_SETTINGS_PROXY_HOST "host"
+#define SJ_SETTINGS_PROXY_PORT "port"
+#define SJ_SETTINGS_PROXY_USE_AUTHENTICATION "use-authentication"
+#define SJ_SETTINGS_PROXY_USERNAME "authentication-user"
+#define SJ_SETTINGS_PROXY_PASSWORD "authentication-password"
+
 enum {
   METADATA,
   LAST_SIGNAL
@@ -40,8 +47,6 @@ enum {
 struct SjMetadataGetterPrivate {
   char *url;
   char *cdrom;
-  char *proxy_host;
-  int proxy_port;
 };
 
 struct SjMetadataGetterSignal {
@@ -91,7 +96,6 @@ sj_metadata_getter_finalize (GObject *object)
 
   g_free (priv->url);
   g_free (priv->cdrom);
-  g_free (priv->proxy_host);
 
   G_OBJECT_CLASS (sj_metadata_getter_parent_class)->finalize (object);
 }
@@ -125,26 +129,41 @@ sj_metadata_getter_set_cdrom (SjMetadataGetter *mdg, const char* device)
   priv->cdrom = g_strdup (device);
 }
 
-void
-sj_metadata_getter_set_proxy (SjMetadataGetter *mdg, const char* proxy)
-{
-  SjMetadataGetterPrivate *priv;
-
-  priv = GETTER_PRIVATE (mdg);
-
-  if (priv->proxy_host)
-    g_free (priv->proxy_host);
-  priv->proxy_host = g_strdup (proxy);
-}
-
-void
-sj_metadata_getter_set_proxy_port (SjMetadataGetter *mdg, const int proxy_port)
+static void
+bind_http_proxy_settings (SjMetadata *metadata)
 {
-  SjMetadataGetterPrivate *priv;
-
-  priv = GETTER_PRIVATE (mdg);
-
-  priv->proxy_port = proxy_port;
+  GSettings *settings = g_settings_new ("org.gnome.system.proxy.http");
+  /* bind with G_SETTINGS_BIND_GET_NO_CHANGES to avoid occasional
+     segfaults in g_object_set_property called with an invalid pointer
+     which I think were caused by the update being scheduled before
+     metadata was destroy but happening afterwards (g_settings_bind is
+     not called from the main thread). metadata is a short lived
+     object so there shouldn't be a problem in practice, as the setting
+     are unlikely to change while it exists. If the settings change
+     between ripping one CD and the next then as a new metadata object
+     is created for the second query it will have the updated
+     settings. */
+  g_settings_bind (settings, SJ_SETTINGS_PROXY_HOST,
+                   metadata, "proxy-host",
+                   G_SETTINGS_BIND_GET_NO_CHANGES);
+
+  g_settings_bind (settings, SJ_SETTINGS_PROXY_PORT,
+                   metadata, "proxy-port",
+                   G_SETTINGS_BIND_GET_NO_CHANGES);
+
+  g_settings_bind (settings, SJ_SETTINGS_PROXY_USERNAME,
+                   metadata, "proxy-username",
+                   G_SETTINGS_BIND_GET_NO_CHANGES);
+
+  g_settings_bind (settings, SJ_SETTINGS_PROXY_PASSWORD,
+                   metadata, "proxy-password",
+                   G_SETTINGS_BIND_GET_NO_CHANGES);
+
+  g_settings_bind (settings, SJ_SETTINGS_PROXY_USE_AUTHENTICATION,
+                   metadata, "proxy-use-authentication",
+                   G_SETTINGS_BIND_GET_NO_CHANGES);
+
+  g_object_unref (settings);
 }
 
 static gboolean
@@ -188,10 +207,9 @@ lookup_cd (SjMetadataGetter *mdg)
     GList *albums;
 
     metadata = g_object_new (types[i],
-                            "device", priv->cdrom,
-                            "proxy-host", priv->proxy_host,
-                            "proxy-port", priv->proxy_port,
-                            NULL);
+                             "device", priv->cdrom,
+                             NULL);
+    bind_http_proxy_settings (metadata);
     if (priv->url == NULL)
       albums = sj_metadata_list_albums (metadata, &priv->url, &error);
     else
@@ -247,4 +265,3 @@ sj_metadata_getter_get_submit_url (SjMetadataGetter *mdg)
     return g_strdup (priv->url);
   return NULL;
 }
-
diff --git a/libjuicer/sj-metadata-getter.h b/libjuicer/sj-metadata-getter.h
index 621dc15..c4d5a0e 100644
--- a/libjuicer/sj-metadata-getter.h
+++ b/libjuicer/sj-metadata-getter.h
@@ -52,8 +52,6 @@ struct _SjMetadataGetterClass
 GType sj_metadata_getter_get_type (void);
 SjMetadataGetter *sj_metadata_getter_new (void);
 void sj_metadata_getter_set_cdrom (SjMetadataGetter *mdg, const char* device);
-void sj_metadata_getter_set_proxy (SjMetadataGetter *mdg, const char* proxy);
-void sj_metadata_getter_set_proxy_port (SjMetadataGetter *mdg, const int proxy_port);
 gboolean sj_metadata_getter_list_albums (SjMetadataGetter *mdg, GError **error);
 char *sj_metadata_getter_get_submit_url (SjMetadataGetter *mdg);
 
diff --git a/libjuicer/sj-metadata-gvfs.c b/libjuicer/sj-metadata-gvfs.c
index 961fe39..1311572 100644
--- a/libjuicer/sj-metadata-gvfs.c
+++ b/libjuicer/sj-metadata-gvfs.c
@@ -43,8 +43,11 @@ struct SjMetadataGvfsPrivate {
 enum {
   PROP_0,
   PROP_DEVICE,
+  PROP_PROXY_USE_AUTHENTICATION,
   PROP_PROXY_HOST,
   PROP_PROXY_PORT,
+  PROP_PROXY_USERNAME,
+  PROP_PROXY_PASSWORD
 };
 
 static void metadata_iface_init (gpointer g_iface, gpointer iface_data);
@@ -178,7 +181,13 @@ sj_metadata_gvfs_get_property (GObject *object, guint property_id,
   case PROP_DEVICE:
     g_value_set_string (value, priv->cdrom);
     break;
+  case PROP_PROXY_USE_AUTHENTICATION:
+    /* Do nothing */
+    g_value_set_boolean (value, FALSE);
+    break;
   case PROP_PROXY_HOST:
+  case PROP_PROXY_USERNAME:
+  case PROP_PROXY_PASSWORD:
     /* Do nothing */
     g_value_set_string (value, "");
     break;
@@ -205,8 +214,11 @@ sj_metadata_gvfs_set_property (GObject *object, guint property_id,
     g_free (priv->uri);
     priv->uri = device_to_cdda_uri (priv->cdrom);
     break;
+  case PROP_PROXY_USE_AUTHENTICATION:
   case PROP_PROXY_HOST:
   case PROP_PROXY_PORT:
+  case PROP_PROXY_USERNAME:
+  case PROP_PROXY_PASSWORD:
     /* Do nothing */
     break;
   default:
@@ -247,9 +259,18 @@ sj_metadata_gvfs_class_init (SjMetadataGvfsClass *class)
   object_class->set_property = sj_metadata_gvfs_set_property;
   object_class->finalize = sj_metadata_gvfs_finalize;
 
-  g_object_class_override_property (object_class, PROP_DEVICE, "device");
-  g_object_class_override_property (object_class, PROP_PROXY_HOST, "proxy-host");
-  g_object_class_override_property (object_class, PROP_PROXY_PORT, "proxy-port");
+  g_object_class_override_property (object_class,
+                                    PROP_DEVICE, "device");
+  g_object_class_override_property (object_class,
+                                    PROP_PROXY_USE_AUTHENTICATION, "proxy-use-authentication");
+  g_object_class_override_property (object_class,
+                                    PROP_PROXY_HOST, "proxy-host");
+  g_object_class_override_property (object_class,
+                                    PROP_PROXY_PORT, "proxy-port");
+  g_object_class_override_property (object_class,
+                                    PROP_PROXY_USERNAME, "proxy-username");
+  g_object_class_override_property (object_class,
+                                    PROP_PROXY_PASSWORD, "proxy-password");
 }
 
 
diff --git a/libjuicer/sj-metadata-musicbrainz5.c b/libjuicer/sj-metadata-musicbrainz5.c
index c64f19f..537a99f 100644
--- a/libjuicer/sj-metadata-musicbrainz5.c
+++ b/libjuicer/sj-metadata-musicbrainz5.c
@@ -26,7 +26,6 @@
 
 #include <string.h>
 #include <stdlib.h>
-#include <gio/gio.h>
 #include <glib.h>
 #include <glib-object.h>
 #include <discid/discid.h>
@@ -46,20 +45,18 @@
                field = g_strdup (buffer);                                      \
 }
 
-#define SJ_SETTINGS_PROXY_USE_PROXY "enabled"
-#define SJ_SETTINGS_PROXY_HOST "host"
-#define SJ_SETTINGS_PROXY_PORT "port"
-#define SJ_SETTINGS_PROXY_USE_AUTHENTICATION "use-authentication"
-#define SJ_SETTINGS_PROXY_USERNAME "authentication-user"
-#define SJ_SETTINGS_PROXY_PASSWORD "authentication-password"
+#define SJ_MUSICBRAINZ_USER_AGENT "libjuicer-"VERSION
 
 typedef struct {
   Mb5Query mb;
-  DiscId *disc;
-  char *cdrom;
+  DiscId  *disc;
+  char    *cdrom;
   /* Proxy */
-  char *http_proxy;
-  int http_proxy_port;
+  char    *proxy_host;
+  char    *proxy_username;
+  char    *proxy_password;
+  int      proxy_port;
+  gboolean proxy_use_authentication;
 } SjMetadataMusicbrainz5Private;
 
 #define GET_PRIVATE(o)  \
@@ -68,9 +65,11 @@ typedef struct {
 enum {
   PROP_0,
   PROP_DEVICE,
-  PROP_USE_PROXY,
+  PROP_PROXY_USE_AUTHENTICATION,
   PROP_PROXY_HOST,
   PROP_PROXY_PORT,
+  PROP_PROXY_USERNAME,
+  PROP_PROXY_PASSWORD
 };
 
 static void metadata_interface_init (gpointer g_iface, gpointer iface_data);
@@ -636,6 +635,28 @@ artist-rels" };
   return albums;
 }
 
+static void
+setup_http_proxy (SjMetadataMusicbrainz5Private *priv)
+{
+  if (priv->proxy_host == NULL || priv->proxy_port == 0) {
+    mb5_query_set_proxyhost (priv->mb, NULL);
+    mb5_query_set_proxyport (priv->mb, 0);
+    mb5_query_set_proxyusername (priv->mb, NULL);
+    mb5_query_set_proxypassword (priv->mb, NULL);
+  } else {
+    mb5_query_set_proxyhost (priv->mb, priv->proxy_host);
+    mb5_query_set_proxyport (priv->mb, priv->proxy_port);
+    if (priv->proxy_use_authentication &&
+        priv->proxy_username != NULL && priv->proxy_password != NULL) {
+      mb5_query_set_proxyusername (priv->mb, priv->proxy_username);
+      mb5_query_set_proxypassword (priv->mb, priv->proxy_password);
+    } else {
+      mb5_query_set_proxyusername (priv->mb, NULL);
+      mb5_query_set_proxypassword (priv->mb, NULL);
+    }
+  }
+}
+
 /*
  * GObject methods
  */
@@ -651,40 +672,9 @@ metadata_interface_init (gpointer g_iface, gpointer iface_data)
 static void
 sj_metadata_musicbrainz5_init (SjMetadataMusicbrainz5 *self)
 {
-  GSettings *settings;
-
   SjMetadataMusicbrainz5Private *priv;
 
   priv = GET_PRIVATE (self);
-
-  settings = g_settings_new ("org.gnome.system.proxy.http");
-
-  /* Set the HTTP proxy */
-  if (g_settings_get_boolean (settings, SJ_SETTINGS_PROXY_USE_PROXY)) {
-    char *proxy_host;
-    int port;
-
-    proxy_host = g_settings_get_string (settings, SJ_SETTINGS_PROXY_HOST);
-    mb5_query_set_proxyhost (priv->mb, proxy_host);
-    g_free (proxy_host);
-
-    port = g_settings_get_int (settings, SJ_SETTINGS_PROXY_PORT);
-    mb5_query_set_proxyport (priv->mb, port);
-
-    if (g_settings_get_boolean (settings, SJ_SETTINGS_PROXY_USE_AUTHENTICATION)) {
-      char *username, *password;
-
-      username = g_settings_get_string (settings, SJ_SETTINGS_PROXY_USERNAME);
-      mb5_query_set_proxyusername (priv->mb, username);
-      g_free (username);
-
-      password = g_settings_get_string (settings, SJ_SETTINGS_PROXY_PASSWORD);
-      mb5_query_set_proxypassword (priv->mb, password);
-      g_free (password);
-    }
-  }
-
-  g_object_unref (settings);
   priv->mb = mb5_query_new (SJ_MUSICBRAINZ_USER_AGENT, NULL, 0);
 }
 
@@ -699,11 +689,20 @@ sj_metadata_musicbrainz5_get_property (GObject *object, guint property_id,
   case PROP_DEVICE:
     g_value_set_string (value, priv->cdrom);
     break;
+  case PROP_PROXY_USE_AUTHENTICATION:
+    g_value_set_boolean (value, priv->proxy_use_authentication);
+    break;
   case PROP_PROXY_HOST:
-    g_value_set_string (value, priv->http_proxy);
+    g_value_set_string (value, priv->proxy_host);
     break;
   case PROP_PROXY_PORT:
-    g_value_set_int (value, priv->http_proxy_port);
+    g_value_set_int (value, priv->proxy_port);
+    break;
+  case PROP_PROXY_USERNAME:
+    g_value_set_string (value, priv->proxy_username);
+    break;
+  case PROP_PROXY_PASSWORD:
+    g_value_set_string (value, priv->proxy_password);
     break;
   default:
     G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
@@ -723,17 +722,28 @@ sj_metadata_musicbrainz5_set_property (GObject *object, guint property_id,
       g_free (priv->cdrom);
     priv->cdrom = g_value_dup_string (value);
     break;
+  case PROP_PROXY_USE_AUTHENTICATION:
+    priv->proxy_use_authentication = g_value_get_boolean (value);
+    setup_http_proxy (priv);
+    break;
   case PROP_PROXY_HOST:
-    if (priv->http_proxy) {
-      g_free (priv->http_proxy);
-    }
-    priv->http_proxy = g_value_dup_string (value);
-    /* TODO: check this unsets the proxy if NULL, or should we pass "" ? */
-    mb5_query_set_proxyhost (priv->mb, priv->http_proxy);
+    g_free (priv->proxy_host);
+    priv->proxy_host = g_value_dup_string (value);
+    setup_http_proxy (priv);
     break;
   case PROP_PROXY_PORT:
-    priv->http_proxy_port = g_value_get_int (value);
-    mb5_query_set_proxyport (priv->mb, priv->http_proxy_port);
+    priv->proxy_port = g_value_get_int (value);
+    setup_http_proxy (priv);
+    break;
+  case PROP_PROXY_USERNAME:
+    g_free (priv->proxy_username);
+    priv->proxy_username = g_value_dup_string (value);
+    setup_http_proxy (priv);
+    break;
+  case PROP_PROXY_PASSWORD:
+    g_free (priv->proxy_password);
+    priv->proxy_password = g_value_dup_string (value);
+    setup_http_proxy (priv);
     break;
   default:
     G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
@@ -752,10 +762,13 @@ sj_metadata_musicbrainz5_finalize (GObject *object)
     priv->mb = NULL;
   }
   if (priv->disc != NULL) {
-      discid_free (priv->disc);
-      priv->disc = NULL;
+    discid_free (priv->disc);
+    priv->disc = NULL;
   }
   g_free (priv->cdrom);
+  g_free (priv->proxy_host);
+  g_free (priv->proxy_username);
+  g_free (priv->proxy_password);
 
   G_OBJECT_CLASS (sj_metadata_musicbrainz5_parent_class)->finalize (object);
 }
@@ -771,9 +784,18 @@ sj_metadata_musicbrainz5_class_init (SjMetadataMusicbrainz5Class *class)
   object_class->set_property = sj_metadata_musicbrainz5_set_property;
   object_class->finalize = sj_metadata_musicbrainz5_finalize;
 
-  g_object_class_override_property (object_class, PROP_DEVICE, "device");
-  g_object_class_override_property (object_class, PROP_PROXY_HOST, "proxy-host");
-  g_object_class_override_property (object_class, PROP_PROXY_PORT, "proxy-port");
+  g_object_class_override_property (object_class,
+                                    PROP_DEVICE, "device");
+  g_object_class_override_property (object_class,
+                                    PROP_PROXY_USE_AUTHENTICATION, "proxy-use-authentication");
+  g_object_class_override_property (object_class,
+                                    PROP_PROXY_HOST, "proxy-host");
+  g_object_class_override_property (object_class,
+                                    PROP_PROXY_PORT, "proxy-port");
+  g_object_class_override_property (object_class,
+                                    PROP_PROXY_USERNAME, "proxy-username");
+  g_object_class_override_property (object_class,
+                                    PROP_PROXY_PASSWORD, "proxy-password");
 }
 
 
diff --git a/libjuicer/sj-metadata.c b/libjuicer/sj-metadata.c
index 3324126..df01868 100644
--- a/libjuicer/sj-metadata.c
+++ b/libjuicer/sj-metadata.c
@@ -53,6 +53,11 @@ sj_metadata_base_init (gpointer g_iface)
                                                               
G_PARAM_STATIC_NAME|G_PARAM_STATIC_NICK|G_PARAM_STATIC_BLURB));
 
     g_object_interface_install_property (g_iface,
+                                         g_param_spec_boolean ("proxy-use-authentication", 
"proxy-use-authentication",
+                                                               "Whether the http proxy requires 
authentication", FALSE,
+                                                               G_PARAM_READABLE|G_PARAM_WRITABLE|
+                                                               
G_PARAM_STATIC_NAME|G_PARAM_STATIC_NICK|G_PARAM_STATIC_BLURB));
+    g_object_interface_install_property (g_iface,
                                          g_param_spec_string ("proxy-host", "proxy-host", NULL, NULL,
                                                               G_PARAM_READABLE|G_PARAM_WRITABLE|
                                                               
G_PARAM_STATIC_NAME|G_PARAM_STATIC_NICK|G_PARAM_STATIC_BLURB));
@@ -63,6 +68,16 @@ sj_metadata_base_init (gpointer g_iface)
                                                            G_PARAM_READABLE|G_PARAM_WRITABLE|
                                                            
G_PARAM_STATIC_NAME|G_PARAM_STATIC_NICK|G_PARAM_STATIC_BLURB));
 
+    g_object_interface_install_property (g_iface,
+                                         g_param_spec_string ("proxy-username", "proxy-username", NULL, NULL,
+                                                              G_PARAM_READABLE|G_PARAM_WRITABLE|
+                                                              
G_PARAM_STATIC_NAME|G_PARAM_STATIC_NICK|G_PARAM_STATIC_BLURB));
+
+    g_object_interface_install_property (g_iface,
+                                         g_param_spec_string ("proxy-password", "proxy-password", NULL, NULL,
+                                                              G_PARAM_READABLE|G_PARAM_WRITABLE|
+                                                              
G_PARAM_STATIC_NAME|G_PARAM_STATIC_NICK|G_PARAM_STATIC_BLURB));
+
     initialized = TRUE;
   }
 }
@@ -97,18 +112,6 @@ sj_metadata_set_cdrom (SjMetadata *metadata, const char* device)
   g_object_set (metadata, "device", device, NULL);
 }
 
-void
-sj_metadata_set_proxy (SjMetadata *metadata, const char* proxy)
-{
-  g_object_set (metadata, "proxy-host", proxy, NULL);
-}
-
-void
-sj_metadata_set_proxy_port (SjMetadata *metadata, const int proxy_port)
-{
-  g_object_set (metadata, "proxy-port", proxy_port, NULL);
-}
-
 GList *
 sj_metadata_list_albums (SjMetadata *metadata, char **url, GError **error)
 {
diff --git a/libjuicer/sj-metadata.h b/libjuicer/sj-metadata.h
index 0ab2d44..78806e2 100644
--- a/libjuicer/sj-metadata.h
+++ b/libjuicer/sj-metadata.h
@@ -46,8 +46,6 @@ struct _SjMetadataClass
 
 GType sj_metadata_get_type (void);
 void sj_metadata_set_cdrom (SjMetadata *metadata, const char* device);
-void sj_metadata_set_proxy (SjMetadata *metadata, const char* proxy);
-void sj_metadata_set_proxy_port (SjMetadata *metadata, const int proxy_port);
 GList * sj_metadata_list_albums (SjMetadata *metadata, char **url, GError **error);
 
 char * sj_metadata_helper_scan_disc_number (const char *album_title, int *disc_number);
diff --git a/src/sj-main.c b/src/sj-main.c
index ca5910d..bbbb093 100644
--- a/src/sj-main.c
+++ b/src/sj-main.c
@@ -71,7 +71,6 @@ SjMetadataGetter *metadata;
 SjExtractor *extractor;
 
 GSettings *sj_settings;
-GSettings *http_settings;
 
 GtkWidget *main_window;
 static GtkWidget *message_area_eventbox;
@@ -1559,53 +1558,6 @@ static void profile_changed_cb (GSettings *settings, gchar *key, gpointer user_d
 }
 
 /**
- * Configure the http proxy
- */
-static void
-http_proxy_setup (GSettings *settings)
-{
-  if (!g_settings_get_boolean (settings, SJ_SETTINGS_HTTP_PROXY_ENABLE)) {
-    sj_metadata_getter_set_proxy (metadata, NULL);
-  } else {
-    char *host;
-    int port;
-
-    host = g_settings_get_string (settings, SJ_SETTINGS_HTTP_PROXY);
-    sj_metadata_getter_set_proxy (metadata, host);
-    g_free (host);
-    port = g_settings_get_int (settings, SJ_SETTINGS_HTTP_PROXY_PORT);
-    sj_metadata_getter_set_proxy_port (metadata, port);
-  }
-}
-
-/**
- * The GSettings key for the HTTP proxy being enabled changed.
- */
-static void http_proxy_enable_changed_cb (GSettings *settings, gchar *key, gpointer user_data)
-{
-  g_assert (strcmp (key, SJ_SETTINGS_HTTP_PROXY_ENABLE) == 0);
-  http_proxy_setup (settings);
-}
-
-/**
- * The GSettings key for the HTTP proxy changed.
- */
-static void http_proxy_changed_cb (GSettings *settings, gchar *key, gpointer user_data)
-{
-  g_assert (strcmp (key, SJ_SETTINGS_HTTP_PROXY) == 0);
-  http_proxy_setup (settings);
-}
-
-/**
- * The GSettings key for the HTTP proxy port changed.
- */
-static void http_proxy_port_changed_cb (GSettings *settings, gchar *key, gpointer user_data)
-{
-  g_assert (strcmp (key, SJ_SETTINGS_HTTP_PROXY_PORT) == 0);
-  http_proxy_setup (settings);
-}
-
-/**
  * Clicked on Reread in the UI (button/menu)
  */
 static void on_reread_activate (GSimpleAction *action, GVariant *parameter, gpointer data)
@@ -2032,15 +1984,6 @@ startup_cb (GApplication *app, gpointer user_data)
   g_signal_connect (sj_settings, "changed::"SJ_SETTINGS_AUDIO_VOLUME,
                     (GCallback)audio_volume_changed_cb, NULL);
 
-  http_settings = g_settings_new ("org.gnome.system.proxy.http");
-
-  g_signal_connect (http_settings, "changed::"SJ_SETTINGS_HTTP_PROXY_ENABLE,
-                    (GCallback)http_proxy_enable_changed_cb, NULL);
-  g_signal_connect (http_settings, "changed::"SJ_SETTINGS_HTTP_PROXY,
-                    (GCallback)http_proxy_changed_cb, NULL);
-  g_signal_connect (http_settings, "changed::"SJ_SETTINGS_HTTP_PROXY_PORT,
-                    (GCallback)http_proxy_port_changed_cb, NULL);
-
   g_action_map_add_action_entries (G_ACTION_MAP (app),
                                    app_entries, G_N_ELEMENTS (app_entries),
                                    NULL);
@@ -2266,7 +2209,6 @@ startup_cb (GApplication *app, gpointer user_data)
   selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (track_listview));
   gtk_tree_selection_set_mode (selection, GTK_SELECTION_SINGLE);
 
-  http_proxy_setup (http_settings);
   baseuri_changed_cb (sj_settings, SJ_SETTINGS_BASEURI, NULL);
   path_pattern_changed_cb (sj_settings, SJ_SETTINGS_PATH_PATTERN, NULL);
   file_pattern_changed_cb (sj_settings, SJ_SETTINGS_FILE_PATTERN, NULL);
@@ -2391,7 +2333,6 @@ int main (int argc, char **argv)
   g_object_unref (metadata);
   g_object_unref (extractor);
   g_object_unref (sj_settings);
-  g_object_unref (http_settings);
   brasero_media_library_stop ();
 
   return status;
diff --git a/src/sound-juicer.h b/src/sound-juicer.h
index 224d37e..74c6d3c 100644
--- a/src/sound-juicer.h
+++ b/src/sound-juicer.h
@@ -155,10 +155,6 @@ void sj_debug (SjDebugDomain domain, const gchar* format, ...);
 #define SJ_SETTINGS_WINDOW "window"
 #define SJ_SETTINGS_AUDIO_VOLUME "volume"
 
-#define SJ_SETTINGS_HTTP_PROXY_ENABLE "enabled"
-#define SJ_SETTINGS_HTTP_PROXY "host"
-#define SJ_SETTINGS_HTTP_PROXY_PORT "port"
-
 /* TODO: need to add a SjWindow object or something */
 void sj_main_set_title (const char* detail);
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]