diff options
author | Shaun McCance <shaunm@gnome.org> | 2010-08-10 15:15:23 -0400 |
---|---|---|
committer | Shaun McCance <shaunm@gnome.org> | 2010-08-10 15:15:23 -0400 |
commit | aedfdda78c26e18331163f084c0bb906fa7a6b2e (patch) | |
tree | e8a117ec05f2dea02168069d891ada5e2da8f9a5 /src | |
parent | a5850bbef17d0e27af5b5ecf948eb4d1252c5157 (diff) | |
download | yelp-aedfdda78c26e18331163f084c0bb906fa7a6b2e.tar.gz |
[libyelp] Move "bookmarks-changed" signal to YelpBookmarks, hook up to location entry
Diffstat (limited to 'src')
-rw-r--r-- | src/yelp-application.c | 15 | ||||
-rw-r--r-- | src/yelp-window.c | 10 |
2 files changed, 12 insertions, 13 deletions
diff --git a/src/yelp-application.c b/src/yelp-application.c index a4635a1c..a3d94cfc 100644 --- a/src/yelp-application.c +++ b/src/yelp-application.c @@ -44,7 +44,6 @@ static gboolean editor_mode = FALSE; enum { - BOOKMARKS_CHANGED, READ_LATER_CHANGED, LAST_SIGNAL }; @@ -158,14 +157,6 @@ yelp_application_class_init (YelpApplicationClass *klass) object_class->dispose = yelp_application_dispose; object_class->finalize = yelp_application_finalize; - signals[BOOKMARKS_CHANGED] = - g_signal_new ("bookmarks-changed", - G_TYPE_FROM_CLASS (klass), - G_SIGNAL_RUN_LAST, - 0, NULL, NULL, - g_cclosure_marshal_VOID__STRING, - G_TYPE_NONE, 1, G_TYPE_STRING); - signals[READ_LATER_CHANGED] = g_signal_new ("read-later-changed", G_TYPE_FROM_CLASS (klass), @@ -659,7 +650,7 @@ yelp_application_add_bookmark (YelpApplication *app, g_variant_builder_add (&builder, "(sss)", page_id, icon, title); value = g_variant_builder_end (&builder); g_settings_set_value (settings, "bookmarks", value); - g_signal_emit (app, signals[BOOKMARKS_CHANGED], 0, doc_uri); + g_signal_emit_by_name (app, "bookmarks-changed", doc_uri); } } } @@ -686,7 +677,7 @@ yelp_application_remove_bookmark (YelpApplication *app, g_variant_iter_free (iter); g_settings_set_value (settings, "bookmarks", g_variant_builder_end (&builder)); - g_signal_emit (app, signals[BOOKMARKS_CHANGED], 0, doc_uri); + g_signal_emit_by_name (app, "bookmarks-changed", doc_uri); } } @@ -758,7 +749,7 @@ yelp_application_update_bookmarks (YelpApplication *app, GVariant *value; value = g_variant_builder_end (&builder); g_settings_set_value (settings, "bookmarks", value); - g_signal_emit (app, signals[BOOKMARKS_CHANGED], 0, doc_uri); + g_signal_emit_by_name (app, "bookmarks-changed", doc_uri); } } } diff --git a/src/yelp-window.c b/src/yelp-window.c index a082527c..ca2e8994 100644 --- a/src/yelp-window.c +++ b/src/yelp-window.c @@ -218,6 +218,7 @@ struct _YelpWindowPrivate { /* no ref */ GtkWidget *bookmarks_list; GtkListStore *bookmarks_store; + gulong bookmarks_changed; /* no refs on these, owned by containers */ YelpView *view; @@ -366,6 +367,11 @@ yelp_window_dispose (GObject *object) priv->bookmark_actions = NULL; } + if (priv->bookmarks_changed) { + g_source_remove (priv->bookmarks_changed); + priv->bookmarks_changed = 0; + } + if (priv->align_location) { g_object_unref (priv->align_location); priv->align_location = NULL; @@ -492,7 +498,9 @@ window_construct (YelpWindow *window) FALSE, FALSE, 0); priv->bookmarks_merge_id = gtk_ui_manager_new_merge_id (priv->ui_manager); - g_signal_connect (priv->application, "bookmarks-changed", G_CALLBACK (app_bookmarks_changed), window); + priv->bookmarks_changed = + g_signal_connect (priv->application, "bookmarks-changed", + G_CALLBACK (app_bookmarks_changed), window); priv->hbox = gtk_hbox_new (FALSE, 0); g_object_set (priv->hbox, "border-width", 2, NULL); |