]> www.fi.muni.cz Git - evince.git/blobdiff - shell/ev-sidebar-thumbnails.c
Rework API a bit. Add a border flag and change sizing logic (now the size
[evince.git] / shell / ev-sidebar-thumbnails.c
index 4d54d1178cb4844ee1ac95995bd6853d61cbef95..b602bb26ae7dfa2beaabd47d1504b89a0fe96e47 100644 (file)
@@ -35,7 +35,8 @@
 #include "ev-window.h"
 #include "ev-utils.h"
 
 #include "ev-window.h"
 #include "ev-utils.h"
 
-#define THUMBNAIL_WIDTH 75
+#define THUMBNAIL_WIDTH 100
+
 /* Amount of time we devote to each iteration of the idle, in microseconds */
 #define IDLE_WORK_LENGTH 5000
 
 /* Amount of time we devote to each iteration of the idle, in microseconds */
 #define IDLE_WORK_LENGTH 5000
 
@@ -222,12 +223,14 @@ do_one_iteration (EvSidebarThumbnails *ev_sidebar_thumbnails)
                            COLUMN_THUMBNAIL_SET, &thumbnail_set,
                            -1);
        if (!thumbnail_set) {
                            COLUMN_THUMBNAIL_SET, &thumbnail_set,
                            -1);
        if (!thumbnail_set) {
-               pixbuf = ev_document_thumbnails_get_thumbnail (EV_DOCUMENT_THUMBNAILS (priv->document),
-                                                              priv->current_page, THUMBNAIL_WIDTH);
+               pixbuf = ev_document_thumbnails_get_thumbnail
+                               (EV_DOCUMENT_THUMBNAILS (priv->document),
+                                priv->current_page, THUMBNAIL_WIDTH, TRUE);
 
                gtk_list_store_set (priv->list_store,
                                    &(priv->current_page_iter),
                                    COLUMN_PIXBUF, pixbuf,
 
                gtk_list_store_set (priv->list_store,
                                    &(priv->current_page_iter),
                                    COLUMN_PIXBUF, pixbuf,
+                                   COLUMN_THUMBNAIL_SET, TRUE,
                                    -1);
 
                g_object_unref (pixbuf);
                                    -1);
 
                g_object_unref (pixbuf);
@@ -312,6 +315,10 @@ ev_sidebar_thumbnails_select_page (EvSidebarThumbnails *sidebar,
        GtkTreePath *path;
        GtkTreeSelection *selection;
 
        GtkTreePath *path;
        GtkTreeSelection *selection;
 
+       /* if the EvSidebar's document can't provide thumbnails */
+       if (sidebar->priv->document == NULL) 
+               return;
+
        path = gtk_tree_path_new_from_indices (page - 1, -1);
        selection = gtk_tree_view_get_selection
                        (GTK_TREE_VIEW (sidebar->priv->tree_view));
        path = gtk_tree_path_new_from_indices (page - 1, -1);
        selection = gtk_tree_view_get_selection
                        (GTK_TREE_VIEW (sidebar->priv->tree_view));
@@ -352,11 +359,13 @@ ev_sidebar_thumbnails_set_document (EvSidebarThumbnails *sidebar_thumbnails,
        /* We get the dimensions of the first doc so that we can make a blank
         * icon.  */
        ev_document_thumbnails_get_dimensions (EV_DOCUMENT_THUMBNAILS (priv->document),
        /* We get the dimensions of the first doc so that we can make a blank
         * icon.  */
        ev_document_thumbnails_get_dimensions (EV_DOCUMENT_THUMBNAILS (priv->document),
-                                              0, THUMBNAIL_WIDTH, &width, &height);
+                                              1, THUMBNAIL_WIDTH, &width, &height);
        loading_icon = ev_document_misc_get_thumbnail_frame (width, height, NULL);
 
        loading_icon = ev_document_misc_get_thumbnail_frame (width, height, NULL);
 
-       for (i = 0; i < n_pages; i++) {
-               page = g_strdup_printf ("<i>%d</i>", i + 1);
+       gtk_list_store_clear (priv->list_store);
+
+       for (i = 1; i <= n_pages; i++) {
+               page = g_strdup_printf ("<i>%d</i>", i);
                gtk_list_store_append (priv->list_store, &iter);
                gtk_list_store_set (priv->list_store, &iter,
                                    COLUMN_PAGE_STRING, page,
                gtk_list_store_append (priv->list_store, &iter);
                gtk_list_store_set (priv->list_store, &iter,
                                    COLUMN_PAGE_STRING, page,