]> www.fi.muni.cz Git - evince.git/blobdiff - libdocument/ev-document.c
[shell] Do not link to poppler directly
[evince.git] / libdocument / ev-document.c
index 4906851526e061e0c9d09ce743b12d9406725312..edebe372ea23f5494efe17c7f0cc8135e24ff01f 100644 (file)
@@ -141,6 +141,7 @@ ev_document_class_init (EvDocumentClass *klass)
 
        klass->get_page = ev_document_impl_get_page;
        klass->get_info = ev_document_impl_get_info;
+       klass->get_backend_info = NULL;
 
        g_object_class->finalize = ev_document_finalize;
 }
@@ -293,18 +294,10 @@ ev_document_load (EvDocument  *document,
 
                        page_label = _ev_document_get_page_label (document, page);
                        if (page_label) {
-                               if (priv->page_labels) {
-                                       priv->page_labels[i] = page_label;
-                               } else {
-                                       gchar *numeric_label;
-
-                                       numeric_label = g_strdup_printf ("%d", i + 1);
-                                       if (strcmp (numeric_label, page_label) != 0) {
-                                               priv->page_labels = g_new0 (gchar *, priv->n_pages);
-                                               priv->page_labels[i] = page_label;
-                                       }
-                                       g_free (numeric_label);
-                               }
+                               if (!priv->page_labels)
+                                       priv->page_labels = g_new0 (gchar *, priv->n_pages);
+
+                               priv->page_labels[i] = page_label;
                                priv->max_label = MAX (priv->max_label,
                                                       g_utf8_strlen (page_label, 256));
                        }
@@ -431,6 +424,18 @@ ev_document_get_info (EvDocument *document)
        return document->priv->info;
 }
 
+gboolean
+ev_document_get_backend_info (EvDocument *document, EvDocumentBackendInfo *info)
+{
+       g_return_val_if_fail (EV_IS_DOCUMENT (document), FALSE);
+
+       EvDocumentClass *klass = EV_DOCUMENT_GET_CLASS (document);
+       if (klass->get_backend_info == NULL)
+               return FALSE;
+
+       return klass->get_backend_info (document, info);
+}
+
 cairo_surface_t *
 ev_document_render (EvDocument      *document,
                    EvRenderContext *rc)