summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShaun McCance <shaunm@gnome.org>2010-05-07 12:47:12 -0500
committerShaun McCance <shaunm@gnome.org>2010-05-07 12:47:12 -0500
commit027e005774f458bfa9599c30edb50d0ba4e8ef88 (patch)
treeb293cb7ef345384053ca0ff880157c77f9a94f35
parent14154b158d5ad680d654c5109f6708279fab6cfb (diff)
downloadyelp-027e005774f458bfa9599c30edb50d0ba4e8ef88.tar.gz
[yelp-view] Fixed notify:: signal emissions, adding param specs
-rw-r--r--libyelp/yelp-view.c60
-rw-r--r--libyelp/yelp-view.h1
2 files changed, 49 insertions, 12 deletions
diff --git a/libyelp/yelp-view.c b/libyelp/yelp-view.c
index bb931909..767299b9 100644
--- a/libyelp/yelp-view.c
+++ b/libyelp/yelp-view.c
@@ -460,6 +460,7 @@ yelp_view_load_uri (YelpView *view,
YelpUri *uri)
{
YelpViewPrivate *priv = GET_PRIV (view);
+ GParamSpec *spec;
view_clear_load (view);
g_object_set (view, "state", YELP_VIEW_STATE_LOADING, NULL);
@@ -474,11 +475,26 @@ yelp_view_load_uri (YelpView *view,
priv->page_title = NULL;
priv->page_desc = NULL;
priv->page_icon = NULL;
- g_signal_emit_by_name (view, "notify::page-id");
- g_signal_emit_by_name (view, "notify::root-title");
- g_signal_emit_by_name (view, "notify::page-title");
- g_signal_emit_by_name (view, "notify::page-desc");
- g_signal_emit_by_name (view, "notify::page-icon");
+
+ spec = g_object_class_find_property ((GObjectClass *) YELP_VIEW_GET_CLASS (view),
+ "page-id");
+ g_signal_emit_by_name (view, "notify::page-id", spec);
+
+ spec = g_object_class_find_property ((GObjectClass *) YELP_VIEW_GET_CLASS (view),
+ "root-title");
+ g_signal_emit_by_name (view, "notify::root-title", spec);
+
+ spec = g_object_class_find_property ((GObjectClass *) YELP_VIEW_GET_CLASS (view),
+ "page-title");
+ g_signal_emit_by_name (view, "notify::page-title", spec);
+
+ spec = g_object_class_find_property ((GObjectClass *) YELP_VIEW_GET_CLASS (view),
+ "page-desc");
+ g_signal_emit_by_name (view, "notify::page-desc", spec);
+
+ spec = g_object_class_find_property ((GObjectClass *) YELP_VIEW_GET_CLASS (view),
+ "page-icon");
+ g_signal_emit_by_name (view, "notify::page-icon", spec);
gtk_action_set_sensitive (gtk_action_group_get_action (priv->action_group,
"YelpViewGoPrevious"),
@@ -855,6 +871,7 @@ uri_resolved (YelpUri *uri,
GSList *proxies, *cur;
GError *error;
gchar *struri;
+ GParamSpec *spec;
debug_print (DB_FUNCTION, "entering\n");
@@ -955,11 +972,15 @@ uri_resolved (YelpUri *uri,
gtk_widget_set_tooltip_text (GTK_WIDGET (cur->data), "");
}
- g_signal_emit_by_name (view, "notify::yelp-uri");
+ spec = g_object_class_find_property ((GObjectClass *) YELP_VIEW_GET_CLASS (view),
+ "yelp-uri");
+ g_signal_emit_by_name (view, "notify::yelp-uri", spec);
g_free (priv->page_id);
priv->page_id = yelp_uri_get_page_id (priv->uri);
- g_signal_emit_by_name (view, "notify::page-id");
+ spec = g_object_class_find_property ((GObjectClass *) YELP_VIEW_GET_CLASS (view),
+ "page-id");
+ g_signal_emit_by_name (view, "notify::page-id", spec);
view_load_page (view);
}
@@ -978,15 +999,19 @@ document_callback (YelpDocument *document,
gchar *prev_id, *next_id, *real_id;
GtkAction *action;
YelpBackEntry *back = NULL;
+ GParamSpec *spec;
real_id = yelp_document_get_page_id (document, priv->page_id);
if (priv->page_id && g_str_equal (real_id, priv->page_id)) {
g_free (real_id);
}
else {
+ GParamSpec *spec;
g_free (priv->page_id);
priv->page_id = real_id;
- g_signal_emit_by_name (view, "notify::page-id");
+ spec = g_object_class_find_property ((GObjectClass *) YELP_VIEW_GET_CLASS (view),
+ "page-id");
+ g_signal_emit_by_name (view, "notify::page-id", spec);
}
g_free (priv->root_title);
@@ -1018,10 +1043,21 @@ document_callback (YelpDocument *document,
gtk_action_set_sensitive (action, next_id != NULL);
g_free (next_id);
- g_signal_emit_by_name (view, "notify::root-title");
- g_signal_emit_by_name (view, "notify::page-title");
- g_signal_emit_by_name (view, "notify::page-desc");
- g_signal_emit_by_name (view, "notify::page-icon");
+ spec = g_object_class_find_property ((GObjectClass *) YELP_VIEW_GET_CLASS (view),
+ "root-title");
+ g_signal_emit_by_name (view, "notify::root-title", spec);
+
+ spec = g_object_class_find_property ((GObjectClass *) YELP_VIEW_GET_CLASS (view),
+ "page-title");
+ g_signal_emit_by_name (view, "notify::page-title", spec);
+
+ spec = g_object_class_find_property ((GObjectClass *) YELP_VIEW_GET_CLASS (view),
+ "page-desc");
+ g_signal_emit_by_name (view, "notify::page-desc", spec);
+
+ spec = g_object_class_find_property ((GObjectClass *) YELP_VIEW_GET_CLASS (view),
+ "page-icon");
+ g_signal_emit_by_name (view, "notify::page-icon", spec);
}
else if (signal == YELP_DOCUMENT_SIGNAL_CONTENTS) {
const gchar *contents;
diff --git a/libyelp/yelp-view.h b/libyelp/yelp-view.h
index 0758d784..d6930524 100644
--- a/libyelp/yelp-view.h
+++ b/libyelp/yelp-view.h
@@ -36,6 +36,7 @@ G_BEGIN_DECLS
#define YELP_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), YELP_TYPE_VIEW, YelpViewClass))
#define YELP_IS_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), YELP_TYPE_VIEW))
#define YELP_IS_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), YELP_TYPE_VIEW))
+#define YELP_VIEW_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), YELP_TYPE_VIEW, YelpViewClass))
typedef struct _YelpView YelpView;
typedef struct _YelpViewClass YelpViewClass;