]> www.fi.muni.cz Git - evince.git/commitdiff
Set the spin button limits correctly.
authorAnders Carlsson <andersca@gnome.org>
Thu, 13 Jan 2005 16:23:29 +0000 (16:23 +0000)
committerAnders Carlsson <andersca@src.gnome.org>
Thu, 13 Jan 2005 16:23:29 +0000 (16:23 +0000)
2005-01-13  Anders Carlsson  <andersca@gnome.org>

* 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.

ChangeLog
shell/ev-page-action.c
shell/ev-sidebar-thumbnails.c

index 4b8dfac876e776e8d34befd1bea1c486eaa5f12c..7ee0a7e67e21085d52721b8405349e5241fda1b0 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2005-01-13  Anders Carlsson  <andersca@gnome.org>
+
+       * 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  <jeff@nit.ca>
 
        * pixbuf/pixbuf-document.c:
index a13d61e2d05ff834f80762c30c7256e8dec058a2..29bae4ec0ab83d67dd8e7b7a3990fa4465953984 100644 (file)
@@ -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);
index e54eb97e06729ea071ec0177b83100f1ee0ffe09..88d70036abf4d717647ae094faf171f8f1b144ac 100644 (file)
@@ -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 <andersca@gnome.org>
+ *  Copyright (C) 2004, 2005 Anders Carlsson <andersca@gnome.org>
  *
  *  Authors:
  *    Jonathan Blandford <jrb@alum.mit.edu>
@@ -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,