summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorShaun McCance <shaunm@gnome.org>2010-08-10 15:15:23 -0400
committerShaun McCance <shaunm@gnome.org>2010-08-10 15:15:23 -0400
commitaedfdda78c26e18331163f084c0bb906fa7a6b2e (patch)
treee8a117ec05f2dea02168069d891ada5e2da8f9a5 /src
parenta5850bbef17d0e27af5b5ecf948eb4d1252c5157 (diff)
downloadyelp-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.c15
-rw-r--r--src/yelp-window.c10
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);