]> git.0d.be Git - empathy.git/blobdiff - libempathy-gtk/empathy-chat-text-view.c
Merge branch 'sasl'
[empathy.git] / libempathy-gtk / empathy-chat-text-view.c
index 5b6d5727b2375394265d2a36525ec827e3ba2977..5d5dcde4636a3e61f3fc969fa399d6797e73ee60 100644 (file)
@@ -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,8 @@ typedef struct {
        time_t                last_timestamp;
        gboolean              allow_scrolling;
        guint                 notify_system_fonts_id;
-       GConfClient          *gconf_client;
+       GSettings            *gsettings_desktop;
+       GSettings            *gsettings_chat;
        EmpathySmileyManager *smiley_manager;
        gboolean              only_if_date;
 } EmpathyChatTextViewPriv;
@@ -209,9 +209,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_desktop,
+                       EMPATHY_PREFS_DESKTOP_INTERFACE_DOCUMENT_FONT_NAME);
 
        if (font_name != NULL) {
                font_description = pango_font_description_from_string (font_name);
@@ -228,14 +227,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
@@ -344,7 +340,7 @@ chat_text_view_is_scrolled_down (EmpathyChatTextView *view)
        gdouble upper;
        gdouble page_size;
 
-       vadj = gtk_text_view_get_vadjustment (GTK_TEXT_VIEW (view));
+       vadj = gtk_scrollable_get_vadjustment (GTK_SCROLLABLE (view));
        value = gtk_adjustment_get_value (vadj);
        upper = gtk_adjustment_get_upper (vadj);
        page_size = gtk_adjustment_get_page_size (vadj);
@@ -495,7 +491,7 @@ chat_text_view_size_allocate (GtkWidget     *widget,
        if (down) {
                GtkAdjustment *adj;
 
-               adj = gtk_text_view_get_vadjustment (GTK_TEXT_VIEW (widget));
+               adj = gtk_scrollable_get_vadjustment (GTK_SCROLLABLE (widget));
                gtk_adjustment_set_value (adj,
                                          gtk_adjustment_get_upper (adj) -
                                          gtk_adjustment_get_page_size (adj));
@@ -565,9 +561,8 @@ 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_chat);
+       g_object_unref (priv->gsettings_desktop);
 
        if (priv->last_contact) {
                g_object_unref (priv->last_contact);
@@ -642,16 +637,14 @@ 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_chat = g_settings_new (EMPATHY_PREFS_CHAT_SCHEMA);
+
+       priv->gsettings_desktop = g_settings_new (
+                         EMPATHY_PREFS_DESKTOP_INTERFACE_SCHEMA);
+       g_signal_connect (priv->gsettings_desktop,
+                         "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);
 
@@ -683,7 +676,7 @@ chat_text_view_scroll_cb (EmpathyChatTextView *view)
 
        priv = GET_PRIV (view);
 
-       adj = gtk_text_view_get_vadjustment (GTK_TEXT_VIEW (view));
+       adj = gtk_scrollable_get_vadjustment (GTK_SCROLLABLE (view));
        max_val = gtk_adjustment_get_upper (adj) - gtk_adjustment_get_page_size (adj);
 
        g_return_val_if_fail (priv->scroll_time != NULL, FALSE);
@@ -1418,11 +1411,9 @@ empathy_chat_text_view_append_body (EmpathyChatTextView *view,
        GtkTextIter              start_iter;
        GtkTextIter              iter;
        GtkTextMark             *mark;
-       GSettings               *gsettings_chat;
 
        /* Check if we have to parse smileys */
-       gsettings_chat = g_settings_new (EMPATHY_PREFS_CHAT_SCHEMA);
-       use_smileys = g_settings_get_boolean (gsettings_chat,
+       use_smileys = g_settings_get_boolean (priv->gsettings_chat,
                        EMPATHY_PREFS_CHAT_SHOW_SMILEYS);
 
        if (use_smileys)
@@ -1449,8 +1440,6 @@ empathy_chat_text_view_append_body (EmpathyChatTextView *view,
                                           &iter);
 
        gtk_text_buffer_delete_mark (priv->buffer, mark);
-
-       g_object_unref (gsettings_chat);
 }
 
 void