Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog10
-rw-r--r--shell/ev-page-action.c13
-rw-r--r--shell/ev-sidebar-thumbnails.c34
3 files changed, 53 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index 4b8dfac..7ee0a7e 100644
--- 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:
diff --git a/shell/ev-page-action.c b/shell/ev-page-action.c
index a13d61e..29bae4e 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 e54eb97..88d7003 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 <andersca@gnome.org>
+ * Copyright (C) 2004, 2005 Anders Carlsson <andersca@gnome.org>
*
* Authors:
* Jonathan Blandford <jrb@alum.mit.edu>
@@ -129,17 +129,45 @@ 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,