[yelp] [yelp-application] Use GSettings::changed for read-later-changed signal



commit 6473af829d49fb48cdb9c7a29b369be2ee1df1e6
Author: Shaun McCance <shaunm gnome org>
Date:   Tue Aug 10 15:53:08 2010 -0400

    [yelp-application] Use GSettings::changed for read-later-changed signal

 src/yelp-application.c |   17 +++++++++++++++--
 1 files changed, 15 insertions(+), 2 deletions(-)
---
diff --git a/src/yelp-application.c b/src/yelp-application.c
index 8ffd35f..b8e2a01 100644
--- a/src/yelp-application.c
+++ b/src/yelp-application.c
@@ -104,6 +104,9 @@ static void          application_set_font_sensitivity  (YelpApplication       *a
 static void          bookmarks_changed                 (GSettings             *settings,
                                                         const gchar           *key,
                                                         YelpApplication       *app);
+static void          readlater_changed                 (GSettings             *settings,
+                                                        const gchar           *key,
+                                                        YelpApplication       *app);
 static gboolean      window_resized                    (YelpWindow            *window,
                                                         YelpApplication       *app);
 
@@ -586,6 +589,8 @@ application_get_doc_settings (YelpApplication *app, const gchar *doc_uri)
         g_object_set_data ((GObject *) settings, "doc_uri", key);
         g_signal_connect (settings, "changed::bookmarks",
                           G_CALLBACK (bookmarks_changed), app);
+        g_signal_connect (settings, "changed::readlater",
+                          G_CALLBACK (readlater_changed), app);
         g_free (settings_path);
     }
     return settings;
@@ -825,7 +830,6 @@ yelp_application_add_read_later (YelpApplication   *app,
             g_variant_builder_add (&builder, "(ss)", full_uri, title);
             value = g_variant_builder_end (&builder);
             g_settings_set_value (settings, "readlater", value);
-            g_signal_emit (app, signals[READ_LATER_CHANGED], 0, doc_uri);
         }
     }
 }
@@ -852,7 +856,6 @@ yelp_application_remove_read_later (YelpApplication *app,
         g_variant_iter_free (iter);
 
         g_settings_set_value (settings, "readlater", g_variant_builder_end (&builder));
-        g_signal_emit (app, signals[READ_LATER_CHANGED], 0, doc_uri);
     }
 }
 
@@ -899,6 +902,16 @@ bookmarks_changed (GSettings       *settings,
         g_signal_emit_by_name (app, "bookmarks-changed", doc_uri);
 }
 
+static void
+readlater_changed (GSettings       *settings,
+                   const gchar     *key,
+                   YelpApplication *app)
+{
+    const gchar *doc_uri = g_object_get_data ((GObject *) settings, "doc_uri");
+    if (doc_uri)
+        g_signal_emit (app, signals[READ_LATER_CHANGED], 0, doc_uri);
+}
+
 static gboolean
 window_resized (YelpWindow        *window,
                 YelpApplication   *app)



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