]> www.fi.muni.cz Git - evince.git/blobdiff - tiff/tiff-document.c
Text search in djvu. Fix for the bug #303415.
[evince.git] / tiff / tiff-document.c
index d30ab18ea711dfcd908b73995f198f4053a32fd9..9f465a7c5fc2293aa381cec4e530edc5e30fa259 100644 (file)
@@ -42,6 +42,8 @@ struct _TiffDocument
   TIFF *tiff;
   gint n_pages;
   TIFF2PSContext *ps_export_ctx;
+  
+  gchar *uri;
 };
 
 typedef struct _TiffDocumentClass TiffDocumentClass;
@@ -86,7 +88,6 @@ tiff_document_load (EvDocument  *document,
   TIFF *tiff;
 
   push_handlers ();
-  /* FIXME: We could actually load uris  */
   filename = g_filename_from_uri (uri, NULL, error);
   if (!filename)
     {
@@ -108,6 +109,9 @@ tiff_document_load (EvDocument  *document,
       return FALSE;
     }
   tiff_document->tiff = tiff;
+  g_free (tiff_document->uri);
+  g_free (filename);
+  tiff_document->uri = g_strdup (uri);
 
   pop_handlers ();
   return TRUE;
@@ -117,8 +121,10 @@ static gboolean
 tiff_document_save (EvDocument  *document,
                      const char  *uri,
                      GError     **error)
-{
-       return FALSE;
+{              
+       TiffDocument *tiff_document = TIFF_DOCUMENT (document);
+
+       return ev_xfer_uri_simple (tiff_document->uri, uri, error); 
 }
 
 static int
@@ -257,7 +263,7 @@ tiff_document_render_pixbuf (EvDocument      *document,
                                           GDK_INTERP_BILINEAR);
   g_object_unref (pixbuf);
 
-  rotated_pixbuf = gdk_pixbuf_rotate_simple (scaled_pixbuf, rc->rotation);
+  rotated_pixbuf = gdk_pixbuf_rotate_simple (scaled_pixbuf, 360 - rc->rotation);
   g_object_unref (scaled_pixbuf);
 
   return rotated_pixbuf;
@@ -269,6 +275,7 @@ tiff_document_finalize (GObject *object)
        TiffDocument *tiff_document = TIFF_DOCUMENT (object);
 
        TIFFClose (tiff_document->tiff);
+       g_free (tiff_document->uri);
 
        G_OBJECT_CLASS (tiff_document_parent_class)->finalize (object);
 }
@@ -332,7 +339,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);
     }