]> www.fi.muni.cz Git - evince.git/commitdiff
Redo rotation (again). prepare for 0.4.0
authorJonathan Blandford <jrb@redhat.com>
Thu, 25 Aug 2005 06:34:20 +0000 (06:34 +0000)
committerJonathan Blandford <jrb@src.gnome.org>
Thu, 25 Aug 2005 06:34:20 +0000 (06:34 +0000)
Thu Aug 25 02:32:32 2005  Jonathan Blandford  <jrb@redhat.com>

        * backend/ev-document-misc.c:
        (ev_document_misc_get_thumbnail_frame):
        * backend/ev-document-misc.h:
        * configure.ac:
        * pdf/ev-poppler.cc:
        * shell/Makefile.am:
        * shell/ev-sidebar-thumbnails.c: (add_range),
        (ev_sidebar_thumbnails_set_loading_icon),
        (ev_sidebar_thumbnails_refresh),
        (ev_sidebar_thumbnails_set_document):
        * shell/ev-sidebar-thumbnails.h:
        * shell/ev-view.c: (ev_view_motion_notify_event),
        (ev_view_set_property), (ev_view_get_property),
        (ev_view_class_init), (ev_view_set_rotation):
        * shell/ev-window.c: (ev_window_cmd_edit_rotate_left),
        (ev_window_cmd_edit_rotate_right), (ev_window_rotation_changed_cb),
        (ev_window_init):
        * tiff/tiff-document.c: (tiff_document_thumbnails_get_thumbnail):
        Redo rotation (again).  prepare for 0.4.0

14 files changed:
ChangeLog
backend/ev-document-misc.c
backend/ev-document-misc.h
configure.ac
help/ChangeLog
help/Makefile.am
help/sr/sr.po
pdf/ev-poppler.cc
shell/Makefile.am
shell/ev-sidebar-thumbnails.c
shell/ev-sidebar-thumbnails.h
shell/ev-view.c
shell/ev-window.c
tiff/tiff-document.c

index 75746a05ac3fb6f4a3175e329e008ada4b274084..739d88c39d4df91b63a90da0a2cd17f259078aa3 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,25 @@
+Thu Aug 25 02:32:32 2005  Jonathan Blandford  <jrb@redhat.com>
+
+       * backend/ev-document-misc.c:
+       (ev_document_misc_get_thumbnail_frame):
+       * backend/ev-document-misc.h:
+       * configure.ac:
+       * pdf/ev-poppler.cc:
+       * shell/Makefile.am:
+       * shell/ev-sidebar-thumbnails.c: (add_range),
+       (ev_sidebar_thumbnails_set_loading_icon),
+       (ev_sidebar_thumbnails_refresh),
+       (ev_sidebar_thumbnails_set_document):
+       * shell/ev-sidebar-thumbnails.h:
+       * shell/ev-view.c: (ev_view_motion_notify_event),
+       (ev_view_set_property), (ev_view_get_property),
+       (ev_view_class_init), (ev_view_set_rotation):
+       * shell/ev-window.c: (ev_window_cmd_edit_rotate_left),
+       (ev_window_cmd_edit_rotate_right), (ev_window_rotation_changed_cb),
+       (ev_window_init):
+       * tiff/tiff-document.c: (tiff_document_thumbnails_get_thumbnail):
+       Redo rotation (again).  prepare for 0.4.0
+
 2005-08-24  Kristian Høgsberg  <krh@redhat.com>
 
        * configure.ac: Bump poppler requirement to 0.4.1.
index 0626e1372567de9cf71fba781a1dc001661907d3..c1fb32c533de4dc87937094784c365e9648a2f3d 100644 (file)
 GdkPixbuf *
 ev_document_misc_get_thumbnail_frame (int        width,
                                      int        height,
+                                     int        rotation,
                                      GdkPixbuf *source_pixbuf)
 {
        GdkPixbuf *retval;
        guchar *data;
        gint rowstride;
        int i;
+       int width_r, height_r;
+
+       rotation = rotation % 360;
+
 
        if (source_pixbuf)
                g_return_val_if_fail (GDK_IS_PIXBUF (source_pixbuf), NULL);
 
        if (source_pixbuf) {
-               width = gdk_pixbuf_get_width (source_pixbuf);
-               height = gdk_pixbuf_get_height (source_pixbuf);
+               width_r = gdk_pixbuf_get_width (source_pixbuf);
+               height_r = gdk_pixbuf_get_height (source_pixbuf);
+       } else {
+               if (rotation == 0 || rotation == 180) {
+                       width_r = width;
+                       height_r = height;
+               } else if (rotation == 90 || rotation == 270) {
+                       width_r = height;
+                       height_r = width;
+               } else {
+                       g_assert_not_reached ();
+               }
        }
 
        /* make sure no one is passing us garbage */
-       g_assert (width >= 0 && height >= 0);
+       g_assert (width_r >= 0 && height_r >= 0);
 
        retval = gdk_pixbuf_new (GDK_COLORSPACE_RGB,
                                 TRUE, 8,
-                                width + 4,
-                                height + 4);
+                                width_r + 4,
+                                height_r + 4);
 
        /* make it black and fill in the middle */
        data = gdk_pixbuf_get_pixels (retval);
        rowstride = gdk_pixbuf_get_rowstride (retval);
 
        gdk_pixbuf_fill (retval, 0x000000ff);
-       for (i = 1; i < height + 1; i++)
-               memset (data + (rowstride * i) + 4, 0xffffffff, width * 4);
+       for (i = 1; i < height_r + 1; i++)
+               memset (data + (rowstride * i) + 4, 0xffffffff, width_r * 4);
 
        /* copy the source pixbuf */
        if (source_pixbuf)
                gdk_pixbuf_copy_area (source_pixbuf, 0, 0,
-                                     width,
-                                     height,
+                                     width_r,
+                                     height_r,
                                      retval,
                                      1, 1);
        /* Add the corner */
-       data [(width + 2) * 4 + 3] = 0;
-       data [(width + 3) * 4 + 3] = 0;
-       data [(width + 2) * 4 + (rowstride * 1) + 3] = 0;
-       data [(width + 3) * 4 + (rowstride * 1) + 3] = 0;
-
-       data [(height + 2) * rowstride + 3] = 0;
-       data [(height + 3) * rowstride + 3] = 0;
-       data [(height + 2) * rowstride + 4 + 3] = 0;
-       data [(height + 3) * rowstride + 4 + 3] = 0;
+       data [(width_r + 2) * 4 + 3] = 0;
+       data [(width_r + 3) * 4 + 3] = 0;
+       data [(width_r + 2) * 4 + (rowstride * 1) + 3] = 0;
+       data [(width_r + 3) * 4 + (rowstride * 1) + 3] = 0;
+
+       data [(height_r + 2) * rowstride + 3] = 0;
+       data [(height_r + 3) * rowstride + 3] = 0;
+       data [(height_r + 2) * rowstride + 4 + 3] = 0;
+       data [(height_r + 3) * rowstride + 4 + 3] = 0;
 
        return retval;
 }
index 05d7f6370601eb562337d986d130e4677f1d47ad..a101f703cec094f062e62c744f5338f048e0de9b 100644 (file)
@@ -31,6 +31,7 @@ G_BEGIN_DECLS
 
 GdkPixbuf *ev_document_misc_get_thumbnail_frame  (int           width,
                                                  int           height,
+                                                 int           rotation,
                                                  GdkPixbuf    *source_pixbuf);
 void       ev_document_misc_get_page_border_size (gint          page_width,
                                                  gint          page_height,
index 266cfe8c3485a9a31256c15af76aae8f8571e5c0..0b79bfbb74fb3dbed72cd877956ee81a83ffc295 100644 (file)
@@ -1,7 +1,7 @@
 dnl Process this file with autoconf to produce a configure script.
 
 AC_PREREQ(2.57)
-AC_INIT(evince, 0.3.4)
+AC_INIT(evince, 0.4.0)
 AM_INIT_AUTOMAKE(AC_PACKAGE_NAME, AC_PACKAGE_VERSION)
 
 AM_CONFIG_HEADER(config.h)
index d977cf5c1ca25759e7f7cdd96554530e4d1ef7e3..0b3385ef6a2ddfd212aef7a9d51cf6c993573cfb 100644 (file)
@@ -1,3 +1,9 @@
+Thu Aug 25 02:32:54 2005  Jonathan Blandford  <jrb@redhat.com>
+
+       * Makefile.am:
+       * sr/sr.po: Remove uk.po from the help pages as I can't get it to
+       validate.
+
 2005-08-18  Maxim Dziumanenko <mvd@mylinux.ua>
 
        * uk.po: Added Ukrainian translation.
index 9da4165ab3b75df4d36d2502750423384b359831..839e7da1124c32b4b0a0dce7817bbf6c04661086 100644 (file)
@@ -6,4 +6,4 @@ DOC_ENTITIES = legal.xml
 DOC_INCLUDES = 
 DOC_FIGURES = figures/evince_start_window.png
 
-DOC_LINGUAS = el es sr uk
+DOC_LINGUAS = el es sr
index 41c152c0c3c7b9657c63f4148b4a458747ca3fdf..ec2a468a87982a66c0624ed54a1a77d459ffac53 100644 (file)
@@ -9,7 +9,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: Evince\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-07-24 06:22+0200\n"
+"POT-Creation-Date: 2005-08-24 21:37-0400\n"
 "PO-Revision-Date: 2005-07-24 06:42+0200\n"
 "Last-Translator: Данило Шеган <danilo@gnome.org>\n"
 "Language-Team: Serbian (sr) <gnom@prevod.org>\n"
@@ -21,42 +21,42 @@ msgstr ""
 
 #. When image changes, this message will be marked fuzzy or untranslated for you.
 #. It doesn't matter what you translate it to: it's not used at all.
-#: C/evince.xml:158 (None)
+#: ../C/evince.xml:158(None)
 msgid ""
 "@@image: 'figures/evince_start_window.png'; "
-"md5=844626d1125e2f50b295b139d6a406d0"
+"md5=7f4da5e33bcac35738a268d93d497d47"
 msgstr ""
 
-#: C/evince.xml:25 (title) C/evince.xml:85 (revnumber)
+#: ../C/evince.xml:25(title) ../C/evince.xml:85(revnumber)
 msgid "Evince Document Viewer Manual V1.0"
 msgstr "Упутство за прегледач докумената Evince 1.0"
 
-#: C/evince.xml:27 (para)
+#: ../C/evince.xml:27(para)
 msgid "User manual for the Evince Document Viewer."
 msgstr "Упутство за кориснике прегледача докумената Evince."
 
-#: C/evince.xml:30 (year)
+#: ../C/evince.xml:30(year)
 msgid "2005"
 msgstr "2005"
 
-#: C/evince.xml:31 (holder) C/evince.xml:88 (para)
+#: ../C/evince.xml:31(holder) ../C/evince.xml:88(para)
 msgid "Nickolay V. Shmyrev"
 msgstr "Николај В. Шмирев"
 
-#: C/evince.xml:34 (year)
+#: ../C/evince.xml:34(year)
 msgid "2004"
 msgstr "2004"
 
-#: C/evince.xml:35 (holder) C/evince.xml:58 (orgname)
+#: ../C/evince.xml:35(holder) ../C/evince.xml:58(orgname)
 msgid "Sun Microsystems"
 msgstr "Sun Microsystems"
 
-#: C/evince.xml:46 (publishername) C/evince.xml:64 (orgname) C/evince.xml:89
-#: (para)
+#: ../C/evince.xml:46(publishername) ../C/evince.xml:64(orgname)
+#: ../C/evince.xml:89(para)
 msgid "GNOME Documentation Project"
 msgstr "Подухват документовања Гнома"
 
-#: C/evince.xml:2 (para)
+#: ../C/evince.xml:2(para)
 msgid ""
 "Permission is granted to copy, distribute and/or modify this document under "
 "the terms of the GNU Free Documentation License (GFDL), Version 1.1 or any "
@@ -73,7 +73,7 @@ msgstr ""
 "\"ghelp:fdl\">адреси</ulink> или у датотеци COPYING-DOCS која је приложена"
 "(може се пронаћи) уз ово упутство."
 
-#: C/evince.xml:12 (para)
+#: ../C/evince.xml:12(para)
 msgid ""
 "This manual is part of a collection of GNOME manuals distributed under the "
 "GFDL. If you want to distribute this manual separately from the collection, "
@@ -85,7 +85,7 @@ msgstr ""
 "од збирке, то можете учинити уз прилагање примерка дозволе уз упутство, као "
 "што је описано у одељку 6 дозволе."
 
-#: C/evince.xml:19 (para)
+#: ../C/evince.xml:19(para)
 msgid ""
 "Many of the names used by companies to distinguish their products and "
 "services are claimed as trademarks. Where those names appear in any GNOME "
@@ -99,7 +99,7 @@ msgstr ""
 "пројекта имају сазнања о томе, тада су називи исписани великим словима или "
 "са великим почетним словима."
 
-#: C/evince.xml:35 (para)
+#: ../C/evince.xml:35(para)
 msgid ""
 "DOCUMENT IS PROVIDED ON AN \"AS IS\" BASIS, WITHOUT WARRANTY OF ANY KIND, "
 "EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT "
@@ -126,7 +126,7 @@ msgstr ""
 "ИЛИ ЊЕГОВЕ ИЗМЕЊЕНЕ ВЕРЗИЈЕ НИЈЕ ДОЗВОЉЕНА ОСИМ ПОД УСЛОВИМА ОВОГ ОГРАНИЧЕЊА "
 "ЈАМСТВА."
 
-#: C/evince.xml:55 (para)
+#: ../C/evince.xml:55(para)
 msgid ""
 "UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER IN TORT (INCLUDING "
 "NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL THE AUTHOR, INITIAL WRITER, ANY "
@@ -151,7 +151,7 @@ msgstr ""
 
 # ова порука ће се мало изменити када се допуни xml2po бољом дефиницијом за ознаке у Докбук документима:
 #   појавиће се само један <placeholder-1/> уместо читавог <orderedlist>
-#: C/evince.xml:28 (para)
+#: ../C/evince.xml:28(para)
 msgid ""
 "DOCUMENT AND MODIFIED VERSIONS OF THE DOCUMENT ARE PROVIDED UNDER THE TERMS "
 "OF THE GNU FREE DOCUMENTATION LICENSE WITH THE FURTHER UNDERSTANDING THAT: "
@@ -160,58 +160,61 @@ msgstr ""
 "ОВАЈ ДОКУМЕНТ И ЊЕГОВЕ ИЗМЕЊЕНЕ ВЕРЗИЈЕ СУ ДОСТУПНЕ ПОД УСЛОВИМА ГНУ-ОВЕ "
 "СЛОБОДНЕ ДОКУМЕНТАЦИОНЕ ДОЗВОЛЕ УЗ ДОДАТНУ САГЛАСНОСТ ДА: <placeholder-1/>"
 
-#: C/evince.xml:56 (firstname)
+#: ../C/evince.xml:56(firstname)
 msgid "Sun"
 msgstr "Sun"
 
-#: C/evince.xml:57 (surname)
+#: ../C/evince.xml:57(surname)
 msgid "GNOME Documentation Team"
 msgstr "Тим за документовање Гнома"
 
-#: C/evince.xml:61 (firstname)
+#: ../C/evince.xml:61(firstname)
 msgid "Nickolay V."
 msgstr "Николај В."
 
-#: C/evince.xml:62 (surname)
+#: ../C/evince.xml:62(surname)
 msgid "Shmyrev"
 msgstr "Шмирев"
 
-#: C/evince.xml:65 (email)
+#: ../C/evince.xml:65(email)
 msgid "nshmyrev@yandex.ru"
 msgstr "nshmyrev@yandex.ru"
 
-#: C/evince.xml:86 (date)
+#: ../C/evince.xml:86(date)
 msgid "2005-04-06"
 msgstr "2005-04-06"
 
-#: C/evince.xml:94 (releaseinfo)
+#: ../C/evince.xml:94(releaseinfo)
 msgid "This manual describes version 0.2 of Evince Document Viewer"
 msgstr "Ово упутство описује издање 0.2 прегледача докумената Evince"
 
-#: C/evince.xml:97 (title)
+#: ../C/evince.xml:97(title)
 msgid "Feedback"
 msgstr "Сарадња"
 
-#: C/evince.xml:98 (para)
+#: ../C/evince.xml:98(para)
 msgid ""
 "To report a bug or make a suggestion regarding the Evince Document Viewer "
 "application or this manual, follow the directions in the <ulink url=\"ghelp:"
 "gnome-feedback\" type=\"help\">GNOME Feedback Page</ulink>."
-msgstr "Да пријавите грешку или учините предлог у вези прегледача докумената Evince или овог упутства, пратите упутства са <ulink url=\"ghelp:gnome-feedback\" type=\"help\">стране за учествовање у Гному</ulink>."
+msgstr ""
+"Да пријавите грешку или учините предлог у вези прегледача докумената Evince "
+"или овог упутства, пратите упутства са <ulink url=\"ghelp:gnome-feedback\" "
+"type=\"help\">стране за учествовање у Гному</ulink>."
 
-#: C/evince.xml:105 (primary)
+#: ../C/evince.xml:105(primary)
 msgid "Evince Document Viewer"
 msgstr "Прегледач докумената Evince"
 
-#: C/evince.xml:108 (primary)
+#: ../C/evince.xml:108(primary)
 msgid "evince"
 msgstr "evince"
 
-#: C/evince.xml:116 (title)
+#: ../C/evince.xml:116(title)
 msgid "Introduction"
 msgstr "Увод"
 
-#: C/evince.xml:117 (para)
+#: ../C/evince.xml:117(para)
 msgid ""
 "The <application>Evince Document Viewer</application> application enables "
 "you to view documents of various formats like Portable Document Format (PDF) "
@@ -220,130 +223,130 @@ msgid ""
 "integration with Desktop Environment."
 msgstr ""
 
-#: C/evince.xml:124 (title)
+#: ../C/evince.xml:124(title)
 msgid "Getting Started"
 msgstr "Како почети"
 
-#: C/evince.xml:127 (title)
+#: ../C/evince.xml:127(title)
 msgid "To Start Evince Document Viewer"
 msgstr "Да покренете прегледач докумената Evince"
 
-#: C/evince.xml:128 (para)
+#: ../C/evince.xml:128(para)
 msgid ""
 "You can start <application>Evince Document Viewer</application> in the "
 "following ways:"
 msgstr ""
 
-#: C/evince.xml:132 (term)
+#: ../C/evince.xml:132(term)
 msgid "<guimenu>Applications</guimenu> menu"
 msgstr "Мени <guimenu>Програми</guimenu>"
 
-#: C/evince.xml:134 (para)
+#: ../C/evince.xml:134(para)
 msgid ""
 "Choose <menuchoice><guisubmenu>Graphics</guisubmenu><guimenuitem>Evince "
 "Document Viewer</guimenuitem></menuchoice>."
 msgstr ""
 
-#: C/evince.xml:139 (term)
+#: ../C/evince.xml:139(term)
 msgid "Command line"
 msgstr "Наредба"
 
-#: C/evince.xml:141 (para)
+#: ../C/evince.xml:141(para)
 msgid "Execute the following command: <command>evince</command>"
 msgstr ""
 
-#: C/evince.xml:149 (title)
+#: ../C/evince.xml:149(title)
 msgid "When You Start Evince Document Viewer"
 msgstr ""
 
-#: C/evince.xml:150 (para)
+#: ../C/evince.xml:150(para)
 msgid ""
 "When you start <application>Evince Document Viewer</application>, the "
 "following window is displayed."
 msgstr ""
 
-#: C/evince.xml:154 (title)
+#: ../C/evince.xml:154(title)
 msgid "Evince Document Viewer Window"
 msgstr ""
 
-#: C/evince.xml:161 (phrase)
+#: ../C/evince.xml:161(phrase)
 msgid ""
 "Shows Evince Document Viewer main window. Contains titlebar, menubar, "
 "toolbar and display area. Menubar contains File, Edit, View, Go and Help "
 "menus."
 msgstr ""
 
-#: C/evince.xml:167 (para)
+#: ../C/evince.xml:167(para)
 msgid ""
 "The <application>Evince Document Viewer</application> window contains the "
 "following elements:"
 msgstr ""
 
-#: C/evince.xml:171 (term) C/evince.xml:219 (para)
+#: ../C/evince.xml:171(term) ../C/evince.xml:219(para)
 msgid "Menubar"
 msgstr ""
 
-#: C/evince.xml:173 (para)
+#: ../C/evince.xml:173(para)
 msgid ""
 "The menus on the menubar contain all of the commands that you need to work "
 "with documents in <application>Evince Document Viewer</application>."
 msgstr ""
 
-#: C/evince.xml:177 (term)
+#: ../C/evince.xml:177(term)
 msgid "Toolbar"
 msgstr "Линија са алатима"
 
-#: C/evince.xml:179 (para)
+#: ../C/evince.xml:179(para)
 msgid ""
 "The toolbar contains a subset of the commands that you can access from the "
 "menubar."
 msgstr ""
 
-#: C/evince.xml:183 (term)
+#: ../C/evince.xml:183(term)
 msgid "Display area"
 msgstr ""
 
-#: C/evince.xml:185 (para)
+#: ../C/evince.xml:185(para)
 msgid "The display area displays the document."
 msgstr ""
 
-#: C/evince.xml:199 (para)
+#: ../C/evince.xml:199(para)
 msgid "UI Component"
 msgstr ""
 
-#: C/evince.xml:201 (para)
+#: ../C/evince.xml:201(para)
 msgid "Action"
 msgstr "Акција"
 
-#: C/evince.xml:206 (para)
+#: ../C/evince.xml:206(para)
 msgid "Window"
 msgstr "Прозор"
 
-#: C/evince.xml:210 (para)
+#: ../C/evince.xml:210(para)
 msgid ""
 "Drag a file into the <application>Evince Document Viewer</application> "
 "window from another application such as a file manager."
 msgstr ""
 
-#: C/evince.xml:213 (para)
+#: ../C/evince.xml:213(para)
 msgid "Double-click on the file name in the file manager"
 msgstr ""
 
-#: C/evince.xml:220 (para) C/evince.xml:247
+#: ../C/evince.xml:220(para) ../C/evince.xml:247(para)
 msgid ""
 "Choose <menuchoice><guimenu>File</guimenu><guimenuitem>Open</guimenuitem></"
 "menuchoice>."
 msgstr ""
 
-#: C/evince.xml:224 (para)
+#: ../C/evince.xml:224(para)
 msgid "Shortcut keys"
 msgstr ""
 
-#: C/evince.xml:225 (para)
+#: ../C/evince.xml:225(para)
 msgid "Press <keycombo><keycap>Ctrl</keycap><keycap>O</keycap></keycombo>."
 msgstr ""
 
-#: C/evince.xml:190 (para)
+#: ../C/evince.xml:190(para)
 msgid ""
 "In <application>Evince Document Viewer</application>, you can perform the "
 "same action in several ways. For example, you can open a document in the "
@@ -357,35 +360,35 @@ msgid ""
 "\"><placeholder-7/><placeholder-8/></row></tbody></tgroup></informaltable>"
 msgstr ""
 
-#: C/evince.xml:231 (para)
+#: ../C/evince.xml:231(para)
 msgid "This manual documents functionality from the menubar."
 msgstr ""
 
-#: C/evince.xml:239 (title)
+#: ../C/evince.xml:239(title)
 msgid "Usage"
 msgstr ""
 
-#: C/evince.xml:243 (title)
+#: ../C/evince.xml:243(title)
 msgid "To Open a File"
 msgstr ""
 
-#: C/evince.xml:244 (para)
+#: ../C/evince.xml:244(para)
 msgid "To open a File, perform the following steps:"
 msgstr ""
 
-#: C/evince.xml:251 (para)
+#: ../C/evince.xml:251(para)
 msgid ""
 "In the <guilabel>Load file</guilabel> dialog, select the file you want to "
 "open."
 msgstr ""
 
-#: C/evince.xml:256 (para)
+#: ../C/evince.xml:256(para)
 msgid ""
 "Click <guibutton>Open</guibutton>. <application>Evince Document Viewer</"
 "application> displays the name of the document in the titlebar of the window."
 msgstr ""
 
-#: C/evince.xml:261 (para)
+#: ../C/evince.xml:261(para)
 msgid ""
 "To open another document, choose <menuchoice><guimenu>File</"
 "guimenu><guimenuitem>Open</guimenuitem></menuchoice> again. "
@@ -393,113 +396,113 @@ msgid ""
 "window."
 msgstr ""
 
-#: C/evince.xml:264 (para)
+#: ../C/evince.xml:264(para)
 msgid ""
 "If you try to open a document with format that <application>Evince Document "
 "Viewer</application> does not recognize, the application displays an error "
 "message."
 msgstr ""
 
-#: C/evince.xml:270 (title)
+#: ../C/evince.xml:270(title)
 msgid "To Navigate Through a Document"
 msgstr ""
 
-#: C/evince.xml:271 (para)
+#: ../C/evince.xml:271(para)
 msgid "You can navigate through a file as follows:"
 msgstr ""
 
-#: C/evince.xml:274 (para)
+#: ../C/evince.xml:274(para)
 msgid ""
 "To view the next page, choose <menuchoice><guimenu>Go</"
 "guimenu><guimenuitem>Next Page</guimenuitem></menuchoice>."
 msgstr ""
 
-#: C/evince.xml:278 (para)
+#: ../C/evince.xml:278(para)
 msgid ""
 "To view the previous page, choose <menuchoice><guimenu>Go</"
 "guimenu><guimenuitem>Previous Page</guimenuitem></menuchoice>."
 msgstr ""
 
-#: C/evince.xml:282 (para)
+#: ../C/evince.xml:282(para)
 msgid ""
 "To view the first page in the document, choose <menuchoice><guimenu>Go</"
 "guimenu><guimenuitem>First Page</guimenuitem></menuchoice>."
 msgstr ""
 
-#: C/evince.xml:286 (para)
+#: ../C/evince.xml:286(para)
 msgid ""
 "To view the last page in the document, choose <menuchoice><guimenu>Go</"
 "guimenu><guimenuitem>Last Page</guimenuitem></menuchoice>."
 msgstr ""
 
-#: C/evince.xml:290 (para)
+#: ../C/evince.xml:290(para)
 msgid ""
 "To view a particular page, enter the page number or page label in the text "
 "box on the toolbar, then press <keycap>Return</keycap>."
 msgstr ""
 
-#: C/evince.xml:297 (title)
+#: ../C/evince.xml:297(title)
 msgid "To Scroll a Page"
 msgstr ""
 
-#: C/evince.xml:298 (para)
+#: ../C/evince.xml:298(para)
 msgid ""
 "To display the page contents that are not currently displayed in the display "
 "area, use the following methods:"
 msgstr ""
 
-#: C/evince.xml:301 (para)
+#: ../C/evince.xml:301(para)
 msgid "Use the arrow keys or space key on the keyboard."
 msgstr ""
 
-#: C/evince.xml:304 (para)
+#: ../C/evince.xml:304(para)
 msgid ""
 "Drag the display area in the opposite direction to the direction in which "
 "you want to scroll. For example, to scroll down the page, drag the display "
 "area upwards in the window."
 msgstr ""
 
-#: C/evince.xml:307 (para)
+#: ../C/evince.xml:307(para)
 msgid "Use the scrollbars on the window."
 msgstr ""
 
-#: C/evince.xml:314 (title)
+#: ../C/evince.xml:314(title)
 msgid "To Change the Page Size"
 msgstr ""
 
-#: C/evince.xml:315 (para)
+#: ../C/evince.xml:315(para)
 msgid ""
 "You can use the following methods to resize a page in the "
 "<application>Evince Document Viewer</application> display area:"
 msgstr ""
 
-#: C/evince.xml:320 (para)
+#: ../C/evince.xml:320(para)
 msgid ""
 "To increase the page size, choose <menuchoice><guimenu>View</"
 "guimenu><guimenuitem>Zoom In</guimenuitem></menuchoice>."
 msgstr ""
 
-#: C/evince.xml:325 (para)
+#: ../C/evince.xml:325(para)
 msgid ""
 "To decrease the page size, choose <menuchoice><guimenu>View</"
 "guimenu><guimenuitem>Zoom Out</guimenuitem></menuchoice>."
 msgstr ""
 
-#: C/evince.xml:330 (para)
+#: ../C/evince.xml:330(para)
 msgid ""
 "To resize a page to have the same width as the <application>Evince Document "
 "Viewer</application> display area, choose <menuchoice><guimenu>View</"
 "guimenu><guimenuitem>Fit page width</guimenuitem></menuchoice>."
 msgstr ""
 
-#: C/evince.xml:335 (para)
+#: ../C/evince.xml:335(para)
 msgid ""
 "To resize a page to fit within the <application>Evince Document Viewer</"
 "application> display area, choose <menuchoice><guimenu>View</"
 "guimenu><guimenuitem>Best Fit</guimenuitem></menuchoice>."
 msgstr ""
 
-#: C/evince.xml:340 (para)
+#: ../C/evince.xml:340(para)
 msgid ""
 "To resize the <application>Evince Document Viewer</application> window to "
 "have the same width and height as the screen, choose "
@@ -509,64 +512,64 @@ msgid ""
 "guibutton> button."
 msgstr ""
 
-#: C/evince.xml:348 (title)
+#: ../C/evince.xml:348(title)
 msgid "To View Pages or Document Structore"
 msgstr ""
 
-#: C/evince.xml:349 (para)
+#: ../C/evince.xml:349(para)
 msgid "To view bookmarks or pages, perform the following steps:"
 msgstr ""
 
-#: C/evince.xml:353 (para)
+#: ../C/evince.xml:353(para)
 msgid ""
 "Choose <menuchoice><guimenu>View</guimenu><guimenuitem>Sidebar</"
 "guimenuitem></menuchoice> or press <keycap>F9</keycap>."
 msgstr ""
 
-#: C/evince.xml:358 (para)
+#: ../C/evince.xml:358(para)
 msgid ""
 "Use the drop-down list in the side-pane header to select whether to display "
 "document structure or pages in the side pane."
 msgstr ""
 
-#: C/evince.xml:363 (para)
+#: ../C/evince.xml:363(para)
 msgid ""
 "Use the side-pane scrollbars to display the required item or page in the "
 "side pane."
 msgstr ""
 
-#: C/evince.xml:368 (para)
+#: ../C/evince.xml:368(para)
 msgid ""
 "Click on an entry to navigate to that location in the document. Click on a "
 "page to navigate to that page in the document."
 msgstr ""
 
-#: C/evince.xml:374 (title)
+#: ../C/evince.xml:374(title)
 msgid "To View the Properties of a Document"
 msgstr ""
 
-#: C/evince.xml:375 (para)
+#: ../C/evince.xml:375(para)
 msgid ""
 "To view the properties of a document, choose <menuchoice><guimenu>File</"
 "guimenu><guimenuitem>Properties</guimenuitem></menuchoice>."
 msgstr ""
 
-#: C/evince.xml:381 (para)
+#: ../C/evince.xml:381(para)
 msgid ""
 "The <guilabel>Properties</guilabel> dialog displays all information available"
 msgstr ""
 
-#: C/evince.xml:387 (title)
+#: ../C/evince.xml:387(title)
 msgid "To Print a Document"
 msgstr ""
 
-#: C/evince.xml:388 (para)
+#: ../C/evince.xml:388(para)
 msgid ""
 "To print a Document, choose <menuchoice><guimenu>File</"
 "guimenu><guimenuitem>Print</guimenuitem></menuchoice>."
 msgstr ""
 
-#: C/evince.xml:392 (para)
+#: ../C/evince.xml:392(para)
 msgid ""
 "If you cannot choose the <guimenuitem>Print</guimenuitem> menu item, the "
 "author of the document has disabled the print option for this document. To "
@@ -575,269 +578,270 @@ msgid ""
 "about password-protected files."
 msgstr ""
 
-#: C/evince.xml:396 (para)
+#: ../C/evince.xml:396(para)
 msgid ""
 "The <guilabel>Print</guilabel> dialog has the following tabbed sections:"
 msgstr ""
 
-#: C/evince.xml:402 (link) C/evince.xml:418 (title)
+#: ../C/evince.xml:402(link) ../C/evince.xml:418(title)
 msgid "Job"
 msgstr "Посао"
 
-#: C/evince.xml:407 (link) C/evince.xml:440 (title) C/evince.xml:442
-#: (guilabel)
+#: ../C/evince.xml:407(link) ../C/evince.xml:440(title)
+#: ../C/evince.xml:442(guilabel)
 msgid "Printer"
 msgstr "Штампач"
 
-#: C/evince.xml:412 (link) C/evince.xml:534 (title)
+#: ../C/evince.xml:412(link) ../C/evince.xml:534(title)
 msgid "Paper"
 msgstr "Папир"
 
-#: C/evince.xml:420 (guilabel)
+#: ../C/evince.xml:420(guilabel)
 msgid "Print range"
 msgstr ""
 
-#: C/evince.xml:422 (para)
+#: ../C/evince.xml:422(para)
 msgid ""
 "Select one of the following options to determine how many pages to print:"
 msgstr ""
 
-#: C/evince.xml:425 (guilabel)
+#: ../C/evince.xml:425(guilabel)
 msgid "All"
 msgstr "Све"
 
-#: C/evince.xml:426 (para)
+#: ../C/evince.xml:426(para)
 msgid "Select this option to print all of the pages in the document."
 msgstr ""
 
-#: C/evince.xml:429 (guilabel)
+#: ../C/evince.xml:429(guilabel)
 msgid "Pages From"
 msgstr ""
 
-#: C/evince.xml:430 (para)
+#: ../C/evince.xml:430(para)
 msgid ""
 "Select this option to print the selected range of pages in the document. Use "
 "the spin boxes to specify the first page and last page of the range."
 msgstr ""
 
-#: C/evince.xml:444 (para)
+#: ../C/evince.xml:444(para)
 msgid ""
 "Use this drop-down list to select the printer to which you want to print the "
 "document."
 msgstr ""
 
-#: C/evince.xml:446 (para)
+#: ../C/evince.xml:446(para)
 msgid ""
 "The <guilabel>Create a PDF document</guilabel> option is not supported in "
 "this version of <application>Evince Document Viewer</application>."
 msgstr ""
 
-#: C/evince.xml:452 (guilabel)
+#: ../C/evince.xml:452(guilabel)
 msgid "Settings"
 msgstr "Подешавања"
 
-#: C/evince.xml:454 (para)
+#: ../C/evince.xml:454(para)
 msgid "Use this drop-down list to select the printer settings."
 msgstr ""
 
-#: C/evince.xml:456 (para)
+#: ../C/evince.xml:456(para)
 msgid ""
 "To configure the printer, click <guibutton>Configure</guibutton>. For "
 "example, you can enable or disable duplex printing, or schedule delayed "
 "printing, if this functionality is supported by the printer."
 msgstr ""
 
-#: C/evince.xml:460 (guilabel)
+#: ../C/evince.xml:460(guilabel)
 msgid "Location"
 msgstr "Место"
 
-#: C/evince.xml:462 (para)
+#: ../C/evince.xml:462(para)
 msgid ""
 "Use this drop-down list to select one of the following print destinations:"
 msgstr ""
 
-#: C/evince.xml:467 (guilabel)
+#: ../C/evince.xml:467(guilabel)
 msgid "CUPS"
 msgstr ""
 
-#: C/evince.xml:469 (para)
+#: ../C/evince.xml:469(para)
 msgid "Print the document to a CUPS printer."
 msgstr ""
 
-#: C/evince.xml:473 (para)
+#: ../C/evince.xml:473(para)
 msgid ""
 "If the selected printer is a CUPS printer, <guilabel>CUPS</guilabel> is the "
 "only entry in this drop-down list."
 msgstr ""
 
 # bug: is this a command name, or what?
-#: C/evince.xml:480 (guilabel)
+#: ../C/evince.xml:480(guilabel)
 msgid "lpr"
 msgstr "lpr"
 
-#: C/evince.xml:482 (para)
+#: ../C/evince.xml:482(para)
 msgid "Print the document to a printer."
 msgstr ""
 
-#: C/evince.xml:488 (guilabel)
+#: ../C/evince.xml:488(guilabel)
 msgid "File"
 msgstr "Датотека"
 
-#: C/evince.xml:490 (para)
+#: ../C/evince.xml:490(para)
 msgid "Print the document to a PostScript file."
 msgstr ""
 
-#: C/evince.xml:493 (para)
+#: ../C/evince.xml:493(para)
 msgid ""
 "Click <guibutton>Save As</guibutton> to display a dialog where you specify "
 "the name and location of the PostScript file."
 msgstr ""
 
-#: C/evince.xml:499 (guilabel)
+#: ../C/evince.xml:499(guilabel)
 msgid "Custom"
 msgstr "Произвољно"
 
-#: C/evince.xml:501 (para)
+#: ../C/evince.xml:501(para)
 msgid "Use the specified command to print the document."
 msgstr ""
 
-#: C/evince.xml:504 (para)
+#: ../C/evince.xml:504(para)
 msgid ""
 "Type the name of the command in the text box. Include all command-line "
 "arguments."
 msgstr ""
 
-#: C/evince.xml:512 (guilabel)
+#: ../C/evince.xml:512(guilabel)
 msgid "State"
 msgstr "Стање"
 
-#: C/evince.xml:514 (para) C/evince.xml:520 C/evince.xml:526
+#: ../C/evince.xml:514(para) ../C/evince.xml:520(para)
+#: ../C/evince.xml:526(para)
 msgid ""
 "This functionality is not supported in this version of <application>Evince "
 "Document Viewer</application>."
 msgstr ""
 
-#: C/evince.xml:518 (guilabel)
+#: ../C/evince.xml:518(guilabel)
 msgid "Type"
 msgstr "Тип"
 
-#: C/evince.xml:524 (guilabel)
+#: ../C/evince.xml:524(guilabel)
 msgid "Comment"
 msgstr "Примедба"
 
-#: C/evince.xml:536 (guilabel)
+#: ../C/evince.xml:536(guilabel)
 msgid "Paper size"
 msgstr ""
 
-#: C/evince.xml:538 (para)
+#: ../C/evince.xml:538(para)
 msgid ""
 "Use this drop-down list to select the size of the paper to which you want to "
 "print the document."
 msgstr ""
 
-#: C/evince.xml:541 (guilabel)
+#: ../C/evince.xml:541(guilabel)
 msgid "Width"
 msgstr "Ширина"
 
-#: C/evince.xml:543 (para)
+#: ../C/evince.xml:543(para)
 msgid ""
 "Use this spin box to specify the width of the paper. Use the adjacent drop-"
 "down list to change the measurement unit."
 msgstr ""
 
-#: C/evince.xml:546 (guilabel)
+#: ../C/evince.xml:546(guilabel)
 msgid "Height"
 msgstr "Висина"
 
-#: C/evince.xml:548 (para)
+#: ../C/evince.xml:548(para)
 msgid "Use this spin box to specify the height of the paper."
 msgstr ""
 
-#: C/evince.xml:551 (guilabel)
+#: ../C/evince.xml:551(guilabel)
 msgid "Feed orientation"
 msgstr ""
 
-#: C/evince.xml:553 (para)
+#: ../C/evince.xml:553(para)
 msgid ""
 "Use this drop-down list to select the orientation of the paper in the "
 "printer."
 msgstr ""
 
-#: C/evince.xml:556 (guilabel)
+#: ../C/evince.xml:556(guilabel)
 msgid "Page orientation"
 msgstr ""
 
-#: C/evince.xml:558 (para)
+#: ../C/evince.xml:558(para)
 msgid "Use this drop-down list to select the page orientation."
 msgstr ""
 
-#: C/evince.xml:561 (guilabel)
+#: ../C/evince.xml:561(guilabel)
 msgid "Layout"
 msgstr "Изглед"
 
-#: C/evince.xml:563 (para)
+#: ../C/evince.xml:563(para)
 msgid ""
 "Use this drop-down list to select the page layout. A preview of each layout "
 "that you select is displayed in the <guilabel>Preview</guilabel> area."
 msgstr ""
 
-#: C/evince.xml:566 (guilabel)
+#: ../C/evince.xml:566(guilabel)
 msgid "Paper Tray"
 msgstr ""
 
-#: C/evince.xml:568 (para)
+#: ../C/evince.xml:568(para)
 msgid "Use this drop-down list to select the paper tray."
 msgstr ""
 
-#: C/evince.xml:578 (title)
+#: ../C/evince.xml:578(title)
 msgid "To Copy a Document"
 msgstr ""
 
-#: C/evince.xml:579 (para)
+#: ../C/evince.xml:579(para)
 msgid "To copy a file, perform the following steps:"
 msgstr ""
 
-#: C/evince.xml:583 (para)
+#: ../C/evince.xml:583(para)
 msgid ""
 "Choose <menuchoice><guimenu>File</guimenu><guimenuitem>Save a Copy</"
 "guimenuitem></menuchoice>."
 msgstr ""
 
-#: C/evince.xml:588 (para)
+#: ../C/evince.xml:588(para)
 msgid ""
 "Type the new filename in the <guilabel>Filename</guilabel> text box in the "
 "<guilabel>Save a Copy</guilabel> dialog."
 msgstr ""
 
-#: C/evince.xml:591 (para)
+#: ../C/evince.xml:591(para)
 msgid ""
 "If necessary, specify the location of the copied document. By default, "
 "copies are saved in your home directory."
 msgstr ""
 
-#: C/evince.xml:596 (para)
+#: ../C/evince.xml:596(para)
 msgid "Click <guibutton>Save</guibutton>."
 msgstr ""
 
-#: C/evince.xml:605 (title)
+#: ../C/evince.xml:605(title)
 msgid "To Work With Password-Protected Documents"
 msgstr ""
 
-#: C/evince.xml:606 (para)
+#: ../C/evince.xml:606(para)
 msgid "An author can use the following password levels to protect a document:"
 msgstr ""
 
-#: C/evince.xml:611 (para)
+#: ../C/evince.xml:611(para)
 msgid "User password that allows others only to read the document."
 msgstr ""
 
-#: C/evince.xml:615 (para)
+#: ../C/evince.xml:615(para)
 msgid ""
 "Master password that allows others to perform additional actions, such as "
 "print the document."
 msgstr ""
 
-#: C/evince.xml:619 (para)
+#: ../C/evince.xml:619(para)
 msgid ""
 "When you try to open a password-protected document, <application>Evince "
 "Document Viewer</application> displays a security dialog. Type either the "
@@ -846,37 +850,37 @@ msgid ""
 "guibutton>."
 msgstr ""
 
-#: C/evince.xml:626 (title)
+#: ../C/evince.xml:626(title)
 msgid "To Close a Document"
 msgstr ""
 
-#: C/evince.xml:627 (para)
+#: ../C/evince.xml:627(para)
 msgid ""
 "To close a document, choose <menuchoice><guimenu>File</"
 "guimenu><guimenuitem>Close</guimenuitem></menuchoice>."
 msgstr ""
 
-#: C/evince.xml:629 (para)
+#: ../C/evince.xml:629(para)
 msgid ""
 "If the window is the last <application>Evince Document Viewer</application> "
 "window open, the application exits."
 msgstr ""
 
-#: C/evince.xml:632 (para)
+#: ../C/evince.xml:632(para)
 msgid ""
 "To quit <application>Evince Document Viewer</application> at any time, no "
 "matter how many windows are open, choose <menuchoice><guimenu>File</"
 "guimenu><guimenuitem>Quit</guimenuitem></menuchoice>."
 msgstr ""
 
-#: C/evince.xml:634 (para)
+#: ../C/evince.xml:634(para)
 msgid ""
 "When you quit, <application>Evince Document Viewer</application> closes all "
 "documents opened in the current session."
 msgstr ""
 
 #. Put one translator per line, in the form of NAME <EMAIL>, YEAR1, YEAR2.
-#: C/evince.xml:0 (None)
+#: ../C/evince.xml:0(None)
 msgid "translator-credits"
 msgstr ""
 "Данило Шеган <danilo@gnome.org>\n"
index fa7713014d4b8c02261d154a2a771b661dc16558..bbcb978120ff4a82f2025302ede323cab6803b71 100644 (file)
@@ -809,12 +809,22 @@ make_thumbnail_for_size (PdfDocument   *pdf_document,
        scale = width / unscaled_width;
 
        if (border) {
-               pixbuf = ev_document_misc_get_thumbnail_frame (width, height, NULL);
+               pixbuf = ev_document_misc_get_thumbnail_frame (width, height, rotation, NULL);
 
+               width = gdk_pixbuf_get_width (pixbuf);
+               height = gdk_pixbuf_get_height (pixbuf);
                sub_pixbuf = gdk_pixbuf_new_subpixbuf (pixbuf,
                                                       1, 1,
                                                       width - 1, height - 1);
        } else {
+               /* rotate */
+               if (rotation == 90 || rotation == 270) {
+                       int temp;
+                       temp = width;
+                       width = height;
+                       height = temp;
+               }
+
                pixbuf = gdk_pixbuf_new (GDK_COLORSPACE_RGB, TRUE, 8,
                                         width, height);
                gdk_pixbuf_fill (pixbuf, 0xffffffff);
@@ -856,7 +866,7 @@ pdf_document_thumbnails_get_thumbnail (EvDocumentThumbnails *document_thumbnails
                if (border) {
                        GdkPixbuf *real_pixbuf;
 
-                       real_pixbuf = ev_document_misc_get_thumbnail_frame (-1, -1, pixbuf);
+                       real_pixbuf = ev_document_misc_get_thumbnail_frame (-1, -1, rotation, pixbuf);
                        g_object_unref (pixbuf);
                        pixbuf = real_pixbuf;
                }
index 7ec4113679e729ffc4c75d0829d801b0a5e9354d..ae0129017df89dcc4889b2e34a215f0b9fb0ce84 100644 (file)
@@ -93,6 +93,9 @@ ev-marshal.c: ev-marshal.list
        echo '#include "ev-marshal.h"' > ev-marshal.c
        glib-genmarshal --prefix=ev_marshal ev-marshal.list --body >> ev-marshal.c
 
+DISTCLEANFILES= \
+       ev-application-service.h
+
 if DBUS_TOOL_NO_PREFIX
 ev-application-service.h: $(srcdir)/ev-application-service.xml
        dbus-binding-tool --mode=glib-server --output=ev-application-service.h $(srcdir)/ev-application-service.xml
index 362ef48028d53ccf669ee6232b8f7259aa69dd0f..6ed20a21753a020769684b7b6f654577ea50f6e0 100644 (file)
@@ -57,6 +57,8 @@ struct _EvSidebarThumbnailsPrivate {
 
        gint n_pages, pages_done;
 
+       int rotation;
+
        /* Visible pages */
        gint start_page, end_page;
 };
@@ -230,7 +232,7 @@ add_range (EvSidebarThumbnails *sidebar_thumbnails,
 
                if (job == NULL && !thumbnail_set) {
                        /* FIXME: Need rotation */
-                       job = (EvJobThumbnail *)ev_job_thumbnail_new (priv->document, page, 0, THUMBNAIL_WIDTH);
+                       job = (EvJobThumbnail *)ev_job_thumbnail_new (priv->document, page, priv->rotation, THUMBNAIL_WIDTH);
                        ev_job_queue_add_job (EV_JOB (job), EV_JOB_PRIORITY_HIGH);
                        g_object_set_data_full (G_OBJECT (job), "tree_iter",
                                                gtk_tree_iter_copy (&iter),
@@ -355,11 +357,47 @@ ev_sidebar_thumbnails_fill_model (EvSidebarThumbnails *sidebar_thumbnails)
        }
 }
 
+
+static void
+ev_sidebar_thumbnails_set_loading_icon (EvSidebarThumbnails *sidebar_thumbnails)
+{
+       gint width = THUMBNAIL_WIDTH;
+       gint height = THUMBNAIL_WIDTH;
+
+       if (sidebar_thumbnails->priv->loading_icon)
+               g_object_unref (sidebar_thumbnails->priv->loading_icon);
+
+       if (sidebar_thumbnails->priv->document) {
+               /* We get the dimensions of the first doc so that we can make a blank
+                * icon.  */
+               ev_document_doc_mutex_lock ();
+               ev_document_thumbnails_get_dimensions (EV_DOCUMENT_THUMBNAILS (sidebar_thumbnails->priv->document),
+                                                      0, THUMBNAIL_WIDTH, &width, &height);
+               ev_document_doc_mutex_unlock ();
+               sidebar_thumbnails->priv->loading_icon =
+                       ev_document_misc_get_thumbnail_frame (width, height, sidebar_thumbnails->priv->rotation, NULL);
+       } else {
+               sidebar_thumbnails->priv->loading_icon = NULL;
+       }
+
+}
 void
-ev_sidebar_thumbnails_refresh (EvSidebarThumbnails *sidebar_thumbnails)
+ev_sidebar_thumbnails_refresh (EvSidebarThumbnails *sidebar_thumbnails,
+
+                              int                  rotation)
 {
+       sidebar_thumbnails->priv->rotation = rotation;
+       ev_sidebar_thumbnails_set_loading_icon (sidebar_thumbnails);
+
+       if (sidebar_thumbnails->priv->document == NULL)
+               return;
+
        ev_sidebar_thumbnails_clear_model (sidebar_thumbnails);
        ev_sidebar_thumbnails_fill_model (sidebar_thumbnails);
+
+       /* Trigger a redraw */
+       sidebar_thumbnails->priv->start_page = 0;
+       sidebar_thumbnails->priv->end_page = 0;
        adjustment_changed_cb (sidebar_thumbnails);
 }
 
@@ -545,8 +583,6 @@ ev_sidebar_thumbnails_set_document (EvSidebarPage   *sidebar_page,
                                    EvDocument          *document)
 {
        EvSidebarThumbnails *sidebar_thumbnails = EV_SIDEBAR_THUMBNAILS (sidebar_page);
-       gint width = THUMBNAIL_WIDTH;
-       gint height = THUMBNAIL_WIDTH;
 
        EvSidebarThumbnailsPrivate *priv = sidebar_thumbnails->priv;
 
@@ -556,16 +592,7 @@ ev_sidebar_thumbnails_set_document (EvSidebarPage  *sidebar_page,
        priv->document = document;
        priv->n_pages = ev_page_cache_get_n_pages (priv->page_cache);
 
-       /* We get the dimensions of the first doc so that we can make a blank
-        * icon.  */
-       ev_document_doc_mutex_lock ();
-       ev_document_thumbnails_get_dimensions (EV_DOCUMENT_THUMBNAILS (priv->document),
-                                              0, THUMBNAIL_WIDTH, &width, &height);
-       ev_document_doc_mutex_unlock ();
-
-       if (priv->loading_icon)
-               g_object_unref (priv->loading_icon);
-       priv->loading_icon = ev_document_misc_get_thumbnail_frame (width, height, NULL);
+       ev_sidebar_thumbnails_set_loading_icon (sidebar_thumbnails);
 
        ev_sidebar_thumbnails_clear_model (sidebar_thumbnails);
        ev_sidebar_thumbnails_fill_model (sidebar_thumbnails);
@@ -595,6 +622,8 @@ ev_sidebar_thumbnails_set_document (EvSidebarPage   *sidebar_page,
 
        /* Connect to the signal and trigger a fake callback */
        g_signal_connect (priv->page_cache, "page-changed", G_CALLBACK (page_changed_cb), sidebar_thumbnails);
+       sidebar_thumbnails->priv->start_page = 0;
+       sidebar_thumbnails->priv->end_page = 0;
        adjustment_changed_cb (sidebar_thumbnails);
 }
 
index 6e93a8f098f3c0c0c2222bf6f9138808917f6bdc..e3d6bb127ed9d0bfdd091ef354b180a512792c04 100644 (file)
@@ -53,7 +53,8 @@ struct _EvSidebarThumbnailsClass {
 
 GType      ev_sidebar_thumbnails_get_type     (void);
 GtkWidget *ev_sidebar_thumbnails_new          (void);
-void       ev_sidebar_thumbnails_refresh      (EvSidebarThumbnails *sidebar_thumbnails);
+void       ev_sidebar_thumbnails_refresh      (EvSidebarThumbnails *sidebar_thumbnails,
+                                              int                  rotation);
 
 G_END_DECLS
 
index 1e954594fa5359bdbbe445e93005d3de25a0a839..a59b64abcc940ac6ab911562a024fa942e783e2a 100644 (file)
@@ -53,6 +53,7 @@ enum {
        PROP_PRESENTATION,
        PROP_SIZING_MODE,
        PROP_ZOOM,
+       PROP_ROTATION,
 };
 
 enum {
@@ -1465,7 +1466,11 @@ ev_view_motion_notify_event (GtkWidget      *widget,
        if (!view->document)
                return FALSE;
 
-       if (view->pressed_button == 1) {
+       /* For the Evince 0.4.x release, we limit selection to un-rotated
+        * documents only.
+        */
+       if (view->pressed_button == 1 &&
+           view->rotation == 0) {
                view->selection_info.in_selection = TRUE;
                view->motion_x = event->x + view->scroll_x;
                view->motion_y = event->y + view->scroll_y;
@@ -1515,7 +1520,11 @@ ev_view_motion_notify_event (GtkWidget      *widget,
 
                        return TRUE;
                }
-       } else if (view->pressed_button <= 0) {
+       /* For the Evince 0.4.x release, we limit links to un-rotated documents
+        * only.
+        */
+       } else if (view->pressed_button <= 0 &&
+                  view->rotation == 0) {
                EvLink *link;
 
                link = get_link_at_location (view, event->x + view->scroll_x, event->y + view->scroll_y);
@@ -1856,6 +1865,9 @@ ev_view_set_property (GObject      *object,
        case PROP_ZOOM:
                ev_view_set_zoom (view, g_value_get_double (value), FALSE);
                break;
+       case PROP_ROTATION:
+               ev_view_set_rotation (view, g_value_get_int (value));
+               break;
        default:
                G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
        }
@@ -1895,6 +1907,9 @@ ev_view_get_property (GObject *object,
        case PROP_ZOOM:
                g_value_set_double (value, view->scale);
                break;
+       case PROP_ROTATION:
+               g_value_set_int (value, view->rotation);
+               break;
        default:
                G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
        }
@@ -2023,6 +2038,15 @@ ev_view_class_init (EvViewClass *class)
                                                               MAX_SCALE,
                                                               1.0,
                                                               G_PARAM_READWRITE));
+       g_object_class_install_property (object_class,
+                                        PROP_ROTATION,
+                                        g_param_spec_double ("rotation",
+                                                             "Rotation",
+                                                              "Rotation",
+                                                              0,
+                                                              360,
+                                                              0,
+                                                              G_PARAM_READWRITE));
 
        binding_set = gtk_binding_set_by_class (class);
 
@@ -2432,6 +2456,8 @@ ev_view_set_rotation (EvView *view, int rotation)
                ev_pixbuf_cache_clear (view->pixbuf_cache);
                gtk_widget_queue_resize (GTK_WIDGET (view));
        }
+       
+       g_object_notify (G_OBJECT (view), "rotation");
 }
 
 int
index d860d74589186daff904a6cb20c4dae0bd6eeadd..0c8139a55846f4545cbc253026774395ba287a4e 100644 (file)
@@ -2060,35 +2060,16 @@ ev_window_cmd_edit_toolbar_cb (GtkDialog *dialog, gint response, gpointer data)
         gtk_widget_destroy (GTK_WIDGET (dialog));
 }
 
-/* should these be hooked up to properties?? */
-static void
-save_rotation_to_file (EvWindow *window)
-{
-       int rotation;
-
-       if (window->priv->uri) {
-               rotation = ev_view_get_rotation (EV_VIEW (window->priv->view));
-               ev_metadata_manager_set_int (window->priv->uri, "rotation",
-                                            rotation);
-       }
-
-
-}
-
 static void
 ev_window_cmd_edit_rotate_left (GtkAction *action, EvWindow *ev_window)
 {
        ev_view_rotate_left (EV_VIEW (ev_window->priv->view));
-       ev_sidebar_thumbnails_refresh (EV_SIDEBAR_THUMBNAILS (ev_window->priv->sidebar_thumbs));
-       save_rotation_to_file (ev_window);
 }
 
 static void
 ev_window_cmd_edit_rotate_right (GtkAction *action, EvWindow *ev_window)
 {
        ev_view_rotate_right (EV_VIEW (ev_window->priv->view));
-       ev_sidebar_thumbnails_refresh (EV_SIDEBAR_THUMBNAILS (ev_window->priv->sidebar_thumbs));
-       save_rotation_to_file (ev_window);
 }
 
 static void
@@ -2420,6 +2401,22 @@ ev_window_continuous_changed_cb (EvView *view, GParamSpec *pspec, EvWindow *ev_w
                                         ev_view_get_continuous (EV_VIEW (ev_window->priv->view)));
 }
 
+static void     
+ev_window_rotation_changed_cb (EvView *view, GParamSpec *pspec, EvWindow *window)
+{
+       int rotation;
+
+       rotation = ev_view_get_rotation (EV_VIEW (window->priv->view));
+
+       if (window->priv->uri) {
+               ev_metadata_manager_set_int (window->priv->uri, "rotation",
+                                            rotation);
+       }
+
+       ev_sidebar_thumbnails_refresh (EV_SIDEBAR_THUMBNAILS (window->priv->sidebar_thumbs),
+                                      rotation);
+}
+
 static void     
 ev_window_dual_mode_changed_cb (EvView *view, GParamSpec *pspec, EvWindow *ev_window)
 {
@@ -3513,6 +3510,10 @@ ev_window_init (EvWindow *ev_window)
                          "notify::continuous",
                          G_CALLBACK (ev_window_continuous_changed_cb),
                          ev_window);
+       g_signal_connect (ev_window->priv->view,
+                         "notify::rotation",
+                         G_CALLBACK (ev_window_rotation_changed_cb),
+                         ev_window);
 
        ev_window->priv->statusbar = ev_statusbar_new ();
        gtk_box_pack_end (GTK_BOX (ev_window->priv->main_box),
index ce4f9ab64bdfa7e26792735fbe218b93f3ee3ccb..7831bc6f07f4b2bb861ed170910166b153514fe3 100644 (file)
@@ -332,7 +332,7 @@ tiff_document_thumbnails_get_thumbnail (EvDocumentThumbnails *document,
   if (border)
     {
       GdkPixbuf *tmp_pixbuf = pixbuf;
-      pixbuf = ev_document_misc_get_thumbnail_frame (-1, -1, tmp_pixbuf);
+      pixbuf = ev_document_misc_get_thumbnail_frame (-1, -1, 0, tmp_pixbuf);
       g_object_unref (tmp_pixbuf);
     }