]> www.fi.muni.cz Git - evince.git/blobdiff - libdocument/ev-document-factory.c
Move mime-type functions from document-facrory to file-helpers so that it
[evince.git] / libdocument / ev-document-factory.c
index 125583314fab195ff955f1158ed28ed33f71d4b7..09baef24683cf66412f633b39633db642088ba8c 100644 (file)
@@ -104,61 +104,9 @@ get_compression_from_mime_type (const gchar *mime_type)
        return EV_COMPRESSION_NONE;
 }
 
-static gchar *
-get_mime_type_from_uri (const gchar *uri, GError **error)
-{
-       GFile     *file;
-       GFileInfo *file_info;
-       gchar     *mime_type;
-
-       file = g_file_new_for_uri (uri);
-       file_info = g_file_query_info (file,
-                                      G_FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE,
-                                      0, NULL, error);
-       g_object_unref (file);
-
-       if (file_info == NULL)
-               return NULL;
-
-       mime_type = g_strdup (g_file_info_get_content_type (file_info));
-       g_object_unref (file_info);
-
-       return mime_type;
-}
-
-static gchar *
-get_mime_type_from_data (const gchar *uri, GError **error)
-{
-       GFile            *file;
-       GFileInputStream *input_stream;
-       gssize            size_read;
-       guchar            buffer[1024];
-
-       file = g_file_new_for_uri (uri);
-       
-       input_stream = g_file_read (file, NULL, error);
-       if (!input_stream) {
-               g_object_unref (file);
-               return NULL;
-       }
-
-       size_read = g_input_stream_read (G_INPUT_STREAM (input_stream),
-                                        buffer, 1024, NULL, NULL);
-       g_input_stream_close (G_INPUT_STREAM (input_stream), NULL, error);
-
-       g_object_unref (file);
-
-       if (size_read == -1)
-               return NULL;
-
-       return g_content_type_guess (NULL, /* no filename */
-                                    buffer, 1024,
-                                    NULL);
-}
-
 static EvDocument *
 get_document_from_uri (const char        *uri,
-                      gboolean           slow,
+                      gboolean           fast,
                       EvCompressionType *compression,
                       GError           **error)
 {
@@ -167,9 +115,7 @@ get_document_from_uri (const char        *uri,
 
        *compression = EV_COMPRESSION_NONE;
 
-       mime_type = slow ?
-               get_mime_type_from_data (uri, error) :
-               get_mime_type_from_uri (uri, error);
+       mime_type = ev_file_get_mime_type (uri, fast, error);
 
        if (mime_type == NULL) {
                g_free (mime_type);
@@ -231,7 +177,7 @@ ev_document_factory_get_document (const char *uri, GError **error)
        EvCompressionType compression;
        gchar *uri_unc = NULL;
 
-       document = get_document_from_uri (uri, FALSE, &compression, error);
+       document = get_document_from_uri (uri, TRUE, &compression, error);
        if (*error == NULL) {
                uri_unc = ev_file_uncompress (uri, compression, error);
                if (uri_unc) {
@@ -271,7 +217,7 @@ ev_document_factory_get_document (const char *uri, GError **error)
 
        uri_unc = NULL;
 
-       document = get_document_from_uri (uri, TRUE, &compression, error);
+       document = get_document_from_uri (uri, FALSE, &compression, error);
 
        if (*error != NULL) {
                return NULL;