]> www.fi.muni.cz Git - evince.git/blobdiff - shell/ev-sidebar-links.c
Remove a bunch of strings that was used only by the statusbar.
[evince.git] / shell / ev-sidebar-links.c
index 55f2ddb341d787c29835781fea65e270e41708e4..4107063ad2310fd8049df3a1bb0adc0931f3ca32 100644 (file)
@@ -55,6 +55,10 @@ enum {
        PROP_WIDGET,
 };
 
+enum {
+       LINK_ACTIVATED,
+       N_SIGNALS
+};
 
 static void links_page_num_func                                (GtkTreeViewColumn *tree_column,
                                                         GtkCellRenderer   *cell,
@@ -77,6 +81,7 @@ static gboolean ev_sidebar_links_support_document     (EvSidebarPage  *sidebar_page,
                                                         EvDocument     *document);
 static const gchar* ev_sidebar_links_get_label                 (EvSidebarPage *sidebar_page);
 
+static guint signals[N_SIGNALS];
 
 G_DEFINE_TYPE_EXTENDED (EvSidebarLinks, 
                         ev_sidebar_links, 
@@ -177,6 +182,14 @@ ev_sidebar_links_class_init (EvSidebarLinksClass *ev_sidebar_links_class)
        g_object_class->get_property = ev_sidebar_links_get_property;
        g_object_class->dispose = ev_sidebar_links_dispose;
 
+       signals[LINK_ACTIVATED] = g_signal_new ("link-activated",
+                        G_TYPE_FROM_CLASS (g_object_class),
+                        G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
+                        G_STRUCT_OFFSET (EvSidebarLinksClass, link_activated),
+                        NULL, NULL,
+                        g_cclosure_marshal_VOID__OBJECT,
+                        G_TYPE_NONE, 1, G_TYPE_OBJECT);
+
        g_object_class_install_property (g_object_class,
                                         PROP_MODEL,
                                         g_param_spec_object ("model",
@@ -216,8 +229,7 @@ selection_changed_callback (GtkTreeSelection   *selection,
 
                g_signal_handler_block (ev_sidebar_links->priv->page_cache,
                                        ev_sidebar_links->priv->page_changed_id);
-               /* FIXME: we should handle this better.  This breaks w/ URLs */
-               ev_page_cache_set_link (ev_sidebar_links->priv->page_cache, link);
+               g_signal_emit (ev_sidebar_links, signals[LINK_ACTIVATED], 0, link);
                g_signal_handler_unblock (ev_sidebar_links->priv->page_cache,
                                          ev_sidebar_links->priv->page_changed_id);
 
@@ -578,11 +590,12 @@ job_finished_callback (EvJobLinks     *job,
        GtkTreeSelection *selection;
 
        priv = sidebar_links->priv;
-
-       priv->model = g_object_ref (job->model);
+       
+       priv->model = job->model;
        g_object_notify (G_OBJECT (sidebar_links), "model");
 
        gtk_tree_view_set_model (GTK_TREE_VIEW (priv->tree_view), job->model);
+       
        g_object_unref (job);
        priv->job = NULL;