X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=blobdiff_plain;f=thumbnailer%2Fevince-thumbnailer.c;h=1c0ba0b4e1aa95bb823ceb8ef0f0437abfc9a934;hb=4990a313c2cee3faef599144d62ac976b4295fc6;hp=4e9f3000db9283241503a035e883aa3cb286d898;hpb=ffd47fa767f69c0b534037a6e067534d7d2345c9;p=evince.git diff --git a/thumbnailer/evince-thumbnailer.c b/thumbnailer/evince-thumbnailer.c index 4e9f3000..1c0ba0b4 100644 --- a/thumbnailer/evince-thumbnailer.c +++ b/thumbnailer/evince-thumbnailer.c @@ -30,71 +30,40 @@ #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) { EvDocument *document = NULL; GError *error = NULL; GdkPixbuf *pixbuf; - char *mime_type = 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; - } + document = ev_document_factory_get_document (uri, &error); - if (!ev_document_load (document, uri, &error)) { + if (error) { if (error->domain == EV_DOCUMENT_ERROR && - error->code == EV_DOCUMENT_ERROR_ENCRYPTED) { + error->code == EV_DOCUMENT_ERROR_ENCRYPTED) { /* FIXME: Create a thumb for cryp docs */ + g_error_free (error); + return FALSE; } g_error_free (error); return FALSE; } + + if (document == NULL) { + return FALSE; + } if (!EV_IS_DOCUMENT_THUMBNAILS (document)) { return FALSE; } pixbuf = ev_document_thumbnails_get_thumbnail - (EV_DOCUMENT_THUMBNAILS (document), 0, size, FALSE); + (EV_DOCUMENT_THUMBNAILS (document), 0, 0, size, FALSE); if (pixbuf != NULL) { const char *overlaid_icon_name = NULL; - if (strcmp (mime_type, "application/pdf") == 0) { - overlaid_icon_name = "pdf-icon.png"; - } - if (overlaid_icon_name) { GdkPixbuf *overlaid_pixbuf;