X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=blobdiff_plain;f=shell%2Fev-sidebar-links.c;h=623753c9272549da6f43db3a9d8f4919bf8866d3;hb=5e55b6b5e74175b5638337616b84527fb8286908;hp=8017f7c605b071aae21054bdf59c7d5bf2d5c240;hpb=4bb9bc83e2de5cd88fa2e3f81a7da6e7d81cbf99;p=evince.git diff --git a/shell/ev-sidebar-links.c b/shell/ev-sidebar-links.c index 8017f7c6..623753c9 100644 --- a/shell/ev-sidebar-links.c +++ b/shell/ev-sidebar-links.c @@ -25,13 +25,14 @@ #endif #include + #include #include -#include "ev-sidebar-page.h" -#include "ev-sidebar-links.h" -#include "ev-job-queue.h" #include "ev-document-links.h" +#include "ev-job-scheduler.h" +#include "ev-sidebar-links.h" +#include "ev-sidebar-page.h" #include "ev-window.h" struct _EvSidebarLinksPrivate { @@ -145,7 +146,7 @@ ev_sidebar_links_dispose (GObject *object) if (sidebar->priv->job) { g_signal_handlers_disconnect_by_func (sidebar->priv->job, job_finished_callback, sidebar); - ev_job_queue_remove_job (sidebar->priv->job); + ev_job_cancel (sidebar->priv->job); g_object_unref (sidebar->priv->job); sidebar->priv->job = NULL; } @@ -323,10 +324,7 @@ print_section_cb (GtkWidget *menuitem, EvSidebarLinks *sidebar) window = gtk_widget_get_toplevel (GTK_WIDGET (sidebar)); if (EV_IS_WINDOW (window)) { -#ifdef WITH_PRINT - ev_window_print_range (EV_WINDOW (window), - first_page, last_page); -#endif + ev_window_print_range (EV_WINDOW (window), first_page, last_page); } } } @@ -437,8 +435,9 @@ ev_sidebar_links_construct (EvSidebarLinks *ev_sidebar_links) renderer = gtk_cell_renderer_text_new (); gtk_tree_view_column_pack_end (GTK_TREE_VIEW_COLUMN (column), renderer, FALSE); gtk_tree_view_column_set_attributes (GTK_TREE_VIEW_COLUMN (column), renderer, - "markup", EV_DOCUMENT_LINKS_COLUMN_PAGE_LABEL, + "text", EV_DOCUMENT_LINKS_COLUMN_PAGE_LABEL, NULL); + g_object_set (G_OBJECT (renderer), "style", PANGO_STYLE_ITALIC, NULL); g_signal_connect (GTK_TREE_VIEW (priv->tree_view), "button_press_event", @@ -467,8 +466,6 @@ fill_page_labels (GtkTreeModel *tree_model, EvLink *link; gint page; gchar *page_label; - gchar *page_string; - gtk_tree_model_get (tree_model, iter, EV_DOCUMENT_LINKS_COLUMN_LINK, &link, @@ -484,14 +481,11 @@ fill_page_labels (GtkTreeModel *tree_model, page_label = ev_page_cache_get_page_label (sidebar_links->priv->page_cache, page); - page_string = g_markup_printf_escaped ("%s", page_label); - gtk_tree_store_set (GTK_TREE_STORE (tree_model), iter, - EV_DOCUMENT_LINKS_COLUMN_PAGE_LABEL, page_string, - -1); + EV_DOCUMENT_LINKS_COLUMN_PAGE_LABEL, page_label, + -1); g_free (page_label); - g_free (page_string); g_object_unref (link); return FALSE; @@ -597,7 +591,7 @@ row_activated_callback (GtkTreeView *treeview, GtkTreePath *arg1, GtkTreeViewColumn *arg2, gpointer user_data) -{ +{ if (gtk_tree_view_row_expanded (GTK_TREE_VIEW (treeview), arg1)) { gtk_tree_view_collapse_row (GTK_TREE_VIEW (treeview), arg1); } else { @@ -652,18 +646,26 @@ job_finished_callback (EvJobLinks *job, selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (priv->tree_view)); gtk_tree_selection_set_mode (selection, GTK_SELECTION_SINGLE); - priv->selection_id = g_signal_connect (selection, "changed", - G_CALLBACK (selection_changed_callback), - sidebar_links); - priv->page_changed_id = g_signal_connect (priv->page_cache, "page-changed", + + if (priv->selection_id <= 0) { + priv->selection_id = + g_signal_connect (selection, "changed", + G_CALLBACK (selection_changed_callback), + sidebar_links); + } + priv->page_changed_id = g_signal_connect (priv->page_cache, "page-changed", G_CALLBACK (update_page_callback), sidebar_links); - priv->row_activated_id = g_signal_connect (G_OBJECT (priv->tree_view), "row-activated", - G_CALLBACK (row_activated_callback), sidebar_links); + if (priv->row_activated_id <= 0) { + priv->row_activated_id = + g_signal_connect (G_OBJECT (priv->tree_view), "row-activated", + G_CALLBACK (row_activated_callback), + sidebar_links); + } + update_page_callback (priv->page_cache, ev_page_cache_get_current_page (priv->page_cache), sidebar_links); - } static void @@ -701,7 +703,7 @@ ev_sidebar_links_set_document (EvSidebarPage *sidebar_page, G_CALLBACK (job_finished_callback), sidebar_links); /* The priority doesn't matter for this job */ - ev_job_queue_add_job (priv->job, EV_JOB_PRIORITY_LOW); + ev_job_scheduler_push_job (priv->job, EV_JOB_PRIORITY_NONE); } static gboolean