[empathy: 2/6] use gsettings version of the document-font-name key (#626810)



commit 87f228d727344e28bb9d87f6a86845f6473a38b0
Author: Guillaume Desmottes <guillaume desmottes collabora co uk>
Date:   Thu Nov 11 15:42:14 2010 +0100

    use gsettings version of the document-font-name key (#626810)

 libempathy-gtk/empathy-chat-text-view.c |   38 ++++++++++--------------------
 libempathy-gtk/empathy-theme-adium.c    |   32 ++++++++++---------------
 libempathy/empathy-gsettings.h          |    3 ++
 3 files changed, 29 insertions(+), 44 deletions(-)
---
diff --git a/libempathy-gtk/empathy-chat-text-view.c b/libempathy-gtk/empathy-chat-text-view.c
index 07ad45d..644bd00 100644
--- a/libempathy-gtk/empathy-chat-text-view.c
+++ b/libempathy-gtk/empathy-chat-text-view.c
@@ -32,7 +32,6 @@
 
 #include <glib/gi18n-lib.h>
 #include <gtk/gtk.h>
-#include <gconf/gconf-client.h>
 
 #include <telepathy-glib/util.h>
 
@@ -69,7 +68,7 @@ typedef struct {
 	time_t                last_timestamp;
 	gboolean              allow_scrolling;
 	guint                 notify_system_fonts_id;
-	GConfClient          *gconf_client;
+	GSettings            *gsettings;
 	EmpathySmileyManager *smiley_manager;
 	gboolean              only_if_date;
 } EmpathyChatTextViewPriv;
@@ -209,9 +208,8 @@ chat_text_view_system_font_update (EmpathyChatTextView *view)
 	PangoFontDescription *font_description = NULL;
 	gchar                *font_name;
 
-	font_name = gconf_client_get_string (priv->gconf_client,
-			"/desktop/gnome/interface/document_font_name",
-			NULL);
+	font_name = g_settings_get_string (priv->gsettings,
+			EMPATHY_PREFS_DESKTOP_INTERFACE_DOCUMENT_FONT_NAME);
 
 	if (font_name != NULL) {
 		font_description = pango_font_description_from_string (font_name);
@@ -228,14 +226,11 @@ chat_text_view_system_font_update (EmpathyChatTextView *view)
 }
 
 static void
-chat_text_view_notify_system_font_cb (GConfClient *conf,
-				      guint id,
-				      GConfEntry *entry,
-				      gpointer user_data)
+chat_text_view_notify_system_font_cb (GSettings *gsettings,
+				      const gchar *key,
+				      EmpathyChatTextView *self)
 {
-	EmpathyChatTextView *view = user_data;
-
-	chat_text_view_system_font_update (view);
+	chat_text_view_system_font_update (self);
 }
 
 static void
@@ -565,9 +560,7 @@ chat_text_view_finalize (GObject *object)
 
 	DEBUG ("%p", object);
 
-	gconf_client_notify_remove (priv->gconf_client,
-				    priv->notify_system_fonts_id);
-	g_object_unref (priv->gconf_client);
+	g_object_unref (priv->gsettings);
 
 	if (priv->last_contact) {
 		g_object_unref (priv->last_contact);
@@ -642,16 +635,11 @@ empathy_chat_text_view_init (EmpathyChatTextView *view)
 		      "cursor-visible", FALSE,
 		      NULL);
 
-	priv->gconf_client = gconf_client_get_default ();
-	gconf_client_add_dir (priv->gconf_client,
-			      "/desktop/gnome/interface",
-			      GCONF_CLIENT_PRELOAD_ONELEVEL,
-			      NULL);
-	priv->notify_system_fonts_id =
-		gconf_client_notify_add (priv->gconf_client,
-					 "/desktop/gnome/interface/document_font_name",
-					 chat_text_view_notify_system_font_cb,
-					 view, NULL, NULL);
+	priv->gsettings = g_settings_new (EMPATHY_PREFS_DESKTOP_INTERFACE_SCHEMA);
+	g_signal_connect (priv->gsettings,
+			  "changed::" EMPATHY_PREFS_DESKTOP_INTERFACE_DOCUMENT_FONT_NAME,
+			  G_CALLBACK (chat_text_view_notify_system_font_cb),
+			  view);
 	chat_text_view_system_font_update (view);
 	chat_text_view_create_tags (view);
 
diff --git a/libempathy-gtk/empathy-theme-adium.c b/libempathy-gtk/empathy-theme-adium.c
index b9b6169..5b89898 100644
--- a/libempathy-gtk/empathy-theme-adium.c
+++ b/libempathy-gtk/empathy-theme-adium.c
@@ -28,7 +28,6 @@
 #include <telepathy-glib/dbus.h>
 #include <telepathy-glib/util.h>
 
-#include <gconf/gconf-client.h>
 #include <pango/pango.h>
 #include <gdk/gdk.h>
 
@@ -48,8 +47,6 @@
 
 #define GET_PRIV(obj) EMPATHY_GET_PRIV (obj, EmpathyThemeAdium)
 
-/* GConf key containing current value of font */
-#define EMPATHY_GCONF_FONT_KEY_NAME "/desktop/gnome/interface/document_font_name"
 #define BORING_DPI_DEFAULT 96
 
 /* "Join" consecutive messages with timestamps within five minutes */
@@ -981,24 +978,21 @@ theme_adium_inspect_web_view_cb (WebKitWebInspector *inspector,
 static PangoFontDescription *
 theme_adium_get_default_font (void)
 {
-	GConfClient *gconf_client;
+	GSettings *gsettings;
 	PangoFontDescription *pango_fd;
-	gchar *gconf_font_family;
+	gchar *font_family;
 
-	gconf_client = gconf_client_get_default ();
-	if (gconf_client == NULL) {
-		return NULL;
-	}
-	gconf_font_family = gconf_client_get_string (gconf_client,
-		     EMPATHY_GCONF_FONT_KEY_NAME,
-		     NULL);
-	if (gconf_font_family == NULL) {
-		g_object_unref (gconf_client);
-		return NULL;
-	}
-	pango_fd = pango_font_description_from_string (gconf_font_family);
-	g_free (gconf_font_family);
-	g_object_unref (gconf_client);
+	gsettings = g_settings_new (EMPATHY_PREFS_DESKTOP_INTERFACE_SCHEMA);
+
+	font_family = g_settings_get_string (gsettings,
+		     EMPATHY_PREFS_DESKTOP_INTERFACE_DOCUMENT_FONT_NAME);
+
+	if (font_family == NULL)
+	return NULL;
+
+	pango_fd = pango_font_description_from_string (font_family);
+	g_free (font_family);
+	g_object_unref (gsettings);
 	return pango_fd;
 }
 
diff --git a/libempathy/empathy-gsettings.h b/libempathy/empathy-gsettings.h
index aba78c8..6c4f73a 100644
--- a/libempathy/empathy-gsettings.h
+++ b/libempathy/empathy-gsettings.h
@@ -91,6 +91,9 @@ G_BEGIN_DECLS
 #define EMPATHY_PREFS_LOGGER_SCHEMA "org.freedesktop.Telepathy.Logger"
 #define EMPATHY_PREFS_LOGGER_ENABLED "enabled"
 
+#define EMPATHY_PREFS_DESKTOP_INTERFACE_SCHEMA "org.gnome.desktop.interface"
+#define EMPATHY_PREFS_DESKTOP_INTERFACE_DOCUMENT_FONT_NAME "document-font-name"
+
 G_END_DECLS
 
 #endif /* __EMPATHY_GSETTINGS_H__ */



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