diff options
-rw-r--r-- | ChangeLog | 15 | ||||
-rw-r--r-- | Makefile.am | 2 | ||||
-rw-r--r-- | properties/Makefile.am | 7 | ||||
-rw-r--r-- | properties/ev-properties-main.c | 11 | ||||
-rw-r--r-- | shell/Makefile.am | 6 | ||||
-rw-r--r-- | thumbnailer/Makefile.am | 2 | ||||
-rw-r--r-- | thumbnailer/evince-thumbnailer.c | 37 |
7 files changed, 62 insertions, 18 deletions
@@ -1,5 +1,20 @@ 2005-07-05 Marco Pesenti Gritti <mpg@redhat.com> + * Makefile.am: + * properties/Makefile.am: + * properties/ev-properties-main.c: (ev_properties_get_pages): + + Support all mime types + + * shell/Makefile.am: + * thumbnailer/Makefile.am: + * thumbnailer/evince-thumbnailer.c: (get_document_from_uri), + (evince_thumbnail_pngenc_get): + + Use the document factory + +2005-07-05 Marco Pesenti Gritti <mpg@redhat.com> + * backend/Makefile.am: * backend/ev-document-factory.c: (mime_type_supported_by_gdk_pixbuf), diff --git a/Makefile.am b/Makefile.am index 229a03b..7c4883a 100644 --- a/Makefile.am +++ b/Makefile.am @@ -18,7 +18,7 @@ endif # Applications -SUBDIRS += properties shell thumbnailer +SUBDIRS += shell thumbnailer properties intltool_extra = intltool-extract.in intltool-merge.in intltool-update.in diff --git a/properties/Makefile.am b/properties/Makefile.am index 597fb5a..e00edd8 100644 --- a/properties/Makefile.am +++ b/properties/Makefile.am @@ -4,7 +4,6 @@ INCLUDES= \ -DDATADIR=\"$(pkgdatadir)\" \ -DGNOMELOCALEDIR=\"$(datadir)/locale\" \ -I$(top_srcdir)/backend \ - -I$(top_srcdir)/pdf \ $(PROPERTIES_CFLAGS) \ $(NAUTILUS_CFLAGS) \ $(EVINCE_DISABLE_DEPRECATED) \ @@ -33,6 +32,6 @@ libevince_properties_page_la_SOURCES = \ libevince_properties_page_la_LIBADD = \ $(PROPERTIES_LIBS) \ libevproperties.la \ - $(top_builddir)/pdf/libpdfdocument.la \ - $(top_builddir)/backend/libevbackend.la \ - $(top_builddir)/lib/libev.la + $(top_builddir)/shell/libevbackendfactory.la \ + $(top_builddir)/lib/libev.la \ + -ltiff -lz diff --git a/properties/ev-properties-main.c b/properties/ev-properties-main.c index 87f4a59..64f5707 100644 --- a/properties/ev-properties-main.c +++ b/properties/ev-properties-main.c @@ -28,7 +28,7 @@ */ #include "ev-properties-view.h" -#include "pdf-document.h" +#include "ev-document-factory.h" #include <config.h> #include <string.h> @@ -83,6 +83,7 @@ ev_properties_get_pages (NautilusPropertyPageProvider *provider, GList *files) { GError *error; + char *mime; EvDocument *document; GList *pages = NULL; NautilusFileInfo *file; @@ -95,12 +96,12 @@ ev_properties_get_pages (NautilusPropertyPageProvider *provider, goto end; file = files->data; - if (!nautilus_file_info_is_mime_type (file, "application/pdf")) { - goto end; - } /* okay, make the page */ - document = EV_DOCUMENT (pdf_document_new ()); + mime = nautilus_file_info_get_mime_type (file); + document = ev_document_factory_get_document (mime); + g_free (mime); + uri = nautilus_file_info_get_uri (file); if (!ev_document_load (document, uri, &error)) { g_error_free (error); diff --git a/shell/Makefile.am b/shell/Makefile.am index 7dc939f..2b88796 100644 --- a/shell/Makefile.am +++ b/shell/Makefile.am @@ -22,9 +22,7 @@ endif bin_PROGRAMS=evince noinst_LTLIBRARIES = libevbackendfactory.la -libevbackendfactory_la_SOURCES= \ - ev-document-types.c \ - ev-document-types.h +libevbackendfactory_la_SOURCES = libevbackendfactory_la_LIBADD = \ $(top_builddir)/pdf/libpdfdocument.la \ @@ -57,6 +55,8 @@ evince_SOURCES= \ eggfindbar.h \ ev-application.c \ ev-application.h \ + ev-document-types.c \ + ev-document-types.h \ ev-job-queue.h \ ev-job-queue.c \ ev-jobs.h \ diff --git a/thumbnailer/Makefile.am b/thumbnailer/Makefile.am index 8a4e933..a2f7909 100644 --- a/thumbnailer/Makefile.am +++ b/thumbnailer/Makefile.am @@ -5,9 +5,7 @@ NULL= INCLUDES= \ -DDATADIR=\"$(pkgdatadir)\" \ -I$(top_srcdir)/lib \ - -I$(top_srcdir)/pdf \ -I$(top_srcdir)/backend \ - -I$(top_srcdir)/shell \ -DGNOMELOCALEDIR=\"$(datadir)/locale\" \ -DGNOMEICONDIR=\""$(datadir)/pixmaps"\" \ $(THUMBNAILER_CFLAGS) \ diff --git a/thumbnailer/evince-thumbnailer.c b/thumbnailer/evince-thumbnailer.c index 9c67246..4e9f300 100644 --- a/thumbnailer/evince-thumbnailer.c +++ b/thumbnailer/evince-thumbnailer.c @@ -20,15 +20,42 @@ #include <libgnomevfs/gnome-vfs-uri.h> #include <libgnomevfs/gnome-vfs-utils.h> #include <libgnomevfs/gnome-vfs-init.h> +#include <libgnomevfs/gnome-vfs-ops.h> #include <ev-document.h> -#include <ev-document-types.h> #include <ev-document-thumbnails.h> +#include <ev-document-factory.h> #include <string.h> #define THUMBNAIL_SIZE 128 +static EvDocument * +get_document_from_uri (const char *uri, gboolean slow, gchar **mime_type) +{ + EvDocument *document = NULL; + GnomeVFSFileInfo *info; + GnomeVFSResult result; + + info = gnome_vfs_file_info_new (); + result = gnome_vfs_get_file_info (uri, info, + GNOME_VFS_FILE_INFO_GET_MIME_TYPE | + GNOME_VFS_FILE_INFO_FOLLOW_LINKS | + (slow ? GNOME_VFS_FILE_INFO_FORCE_SLOW_MIME_TYPE : 0)); + if (result != GNOME_VFS_OK || info->mime_type == NULL) { + goto end; + } + + document = ev_document_factory_get_document (info->mime_type); + if (mime_type != NULL) { + *mime_type = info->mime_type ? g_strdup (info->mime_type) : NULL; + } + +end: + gnome_vfs_file_info_unref (info); + return document; +} + static gboolean evince_thumbnail_pngenc_get (const char *uri, const char *thumbnail, int size) { @@ -37,9 +64,13 @@ evince_thumbnail_pngenc_get (const char *uri, const char *thumbnail, int size) GdkPixbuf *pixbuf; char *mime_type = NULL; - document = ev_document_types_get_document (uri, &mime_type, &error); - if (document == NULL) + document = get_document_from_uri (uri, FALSE, &mime_type); + if (document == NULL) { + document = get_document_from_uri (uri, TRUE, &mime_type); + } + if (document == NULL) { return FALSE; + } if (!ev_document_load (document, uri, &error)) { if (error->domain == EV_DOCUMENT_ERROR && |