From: Anders Carlsson Date: Thu, 13 Jan 2005 16:23:29 +0000 (+0000) Subject: Set the spin button limits correctly. X-Git-Tag: EVINCE_0_1_1~49 X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=commitdiff_plain;h=ddc0ad5b3bd75a640ba362cdccde7449654bae61;p=evince.git Set the spin button limits correctly. 2005-01-13 Anders Carlsson * shell/ev-page-action.c: (update_spin), (total_pages_changed_cb), (create_tool_item): Set the spin button limits correctly. * shell/ev-sidebar-thumbnails.c: (ev_sidebar_tree_selection_changed), (ev_sidebar_thumbnails_init): Support changing pages by clicking on the thumbnails. --- diff --git a/ChangeLog b/ChangeLog index 4b8dfac8..7ee0a7e6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +2005-01-13 Anders Carlsson + + * shell/ev-page-action.c: (update_spin), (total_pages_changed_cb), + (create_tool_item): + Set the spin button limits correctly. + + * shell/ev-sidebar-thumbnails.c: + (ev_sidebar_tree_selection_changed), (ev_sidebar_thumbnails_init): + Support changing pages by clicking on the thumbnails. + 2005-01-13 Jeff Muizelaar * pixbuf/pixbuf-document.c: diff --git a/shell/ev-page-action.c b/shell/ev-page-action.c index a13d61e2..29bae4ec 100644 --- a/shell/ev-page-action.c +++ b/shell/ev-page-action.c @@ -84,7 +84,7 @@ update_spin (GtkAction *action, gpointer dummy, GtkWidget *proxy) value = gtk_spin_button_get_value (GTK_SPIN_BUTTON (spin)); - if (value != page->priv->current_page) + if (value != page->priv->current_page ) { gtk_spin_button_set_value (GTK_SPIN_BUTTON (spin), page->priv->current_page); @@ -101,6 +101,14 @@ value_changed_cb (GtkWidget *spin, GtkAction *action) g_signal_emit (action, signals[GOTO_PAGE_SIGNAL], 0, value); } +static void +total_pages_changed_cb (EvPageAction *action, GParamSpec *pspec, + GtkSpinButton *spin) +{ + gtk_spin_button_set_range (GTK_SPIN_BUTTON (spin), 1, + action->priv->total_pages); +} + static GtkWidget * create_tool_item (GtkAction *action) { @@ -118,6 +126,9 @@ create_tool_item (GtkAction *action) g_object_set_data (G_OBJECT (item), "spin", spin); gtk_widget_show (spin); + g_signal_connect (action, "notify::total-pages", + G_CALLBACK (total_pages_changed_cb), + spin); g_signal_connect (spin, "value_changed", G_CALLBACK (value_changed_cb), action); diff --git a/shell/ev-sidebar-thumbnails.c b/shell/ev-sidebar-thumbnails.c index e54eb97e..88d70036 100644 --- a/shell/ev-sidebar-thumbnails.c +++ b/shell/ev-sidebar-thumbnails.c @@ -1,7 +1,7 @@ /* this file is part of evince, a gnome document viewer * * Copyright (C) 2004 Red Hat, Inc. - * Copyright (C) 2004 Anders Carlsson + * Copyright (C) 2004, 2005 Anders Carlsson * * Authors: * Jonathan Blandford @@ -128,18 +128,46 @@ adjustment_changed_cb (GtkAdjustment *adjustment, } } +static void +ev_sidebar_tree_selection_changed (GtkTreeSelection *selection, + EvSidebarThumbnails *ev_sidebar_thumbnails) +{ + EvSidebarThumbnailsPrivate *priv; + GtkTreePath *path; + GtkTreeIter iter; + int page; + + priv = ev_sidebar_thumbnails->priv = EV_SIDEBAR_THUMBNAILS_GET_PRIVATE (ev_sidebar_thumbnails); + + if (!gtk_tree_selection_get_selected (selection, NULL, &iter)) + return; + + path = gtk_tree_model_get_path (GTK_TREE_MODEL (priv->list_store), + &iter); + + page = gtk_tree_path_get_indices (path)[0] + 1; + + gtk_tree_path_free (path); + + ev_document_set_page (priv->document, page); +} + static void ev_sidebar_thumbnails_init (EvSidebarThumbnails *ev_sidebar_thumbnails) { GtkWidget *swindow; EvSidebarThumbnailsPrivate *priv; GtkCellRenderer *renderer; + GtkTreeSelection *selection; priv = ev_sidebar_thumbnails->priv = EV_SIDEBAR_THUMBNAILS_GET_PRIVATE (ev_sidebar_thumbnails); - + priv->list_store = gtk_list_store_new (NUM_COLUMNS, G_TYPE_STRING, GDK_TYPE_PIXBUF, G_TYPE_BOOLEAN); priv->tree_view = gtk_tree_view_new_with_model (GTK_TREE_MODEL (priv->list_store)); - + + selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (priv->tree_view)); + g_signal_connect (selection, "changed", + G_CALLBACK (ev_sidebar_tree_selection_changed), ev_sidebar_thumbnails); gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (priv->tree_view), FALSE); renderer = g_object_new (GTK_TYPE_CELL_RENDERER_PIXBUF, "xpad", 2,