]> www.fi.muni.cz Git - evince.git/blobdiff - properties/ev-properties-main.c
Use an specific lock for FontConfig. Hopefully it fixes some crashes
[evince.git] / properties / ev-properties-main.c
index 87f4a59012927a8b2965bf6c443e138ba06b81fb..32677fc1839c0c5e1b3e3acd89d6a44ffa1c9cc8 100644 (file)
@@ -28,7 +28,7 @@
  */
 
 #include "ev-properties-view.h"
-#include "pdf-document.h"
+#include "ev-document-factory.h"
 
 #include <config.h>
 #include <string.h>
@@ -46,7 +46,7 @@ static GList *ev_properties_get_pages
 static void
 ev_properties_plugin_register_type (GTypeModule *module)
 {
-       static const GTypeInfo info = {
+       const GTypeInfo info = {
                sizeof (GObjectClass),
                (GBaseInitFunc) NULL,
                (GBaseFinalizeFunc) NULL,
@@ -57,7 +57,7 @@ ev_properties_plugin_register_type (GTypeModule *module)
                0,
                (GInstanceInitFunc) NULL
        };
-       static const GInterfaceInfo property_page_provider_iface_info = {
+       const GInterfaceInfo property_page_provider_iface_info = {
                (GInterfaceInitFunc)property_page_provider_iface_init,
                NULL,
                NULL
@@ -82,30 +82,28 @@ static GList *
 ev_properties_get_pages (NautilusPropertyPageProvider *provider,
                         GList *files)
 {
-       GError *error;
+       GError *error = NULL;
        EvDocument *document;
        GList *pages = NULL;
        NautilusFileInfo *file;
        char *uri = NULL;
        GtkWidget *page, *label;
        NautilusPropertyPage *property_page;
-
+       
        /* only add properties page if a single file is selected */
        if (files == NULL || files->next != NULL)
                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 ());
        uri = nautilus_file_info_get_uri (file);
-       if (!ev_document_load (document, uri, &error)) {
+       document = ev_document_factory_get_document (uri, &error);
+
+       if (error) {
                g_error_free (error);
                goto end;
        }
+
        label = gtk_label_new (_("Document"));
        page = ev_properties_view_new ();
        ev_properties_view_set_info (EV_PROPERTIES_VIEW (page),