]> www.fi.muni.cz Git - evince.git/blobdiff - pdf/ev-poppler.cc
Labels don't expand when the dialogue is resized
[evince.git] / pdf / ev-poppler.cc
index 082c3dc971058c600bc5f5b1028e1409ca5ae41e..7f2330da8755974adfbced7f3efcb1248ee4ecd0 100644 (file)
@@ -23,6 +23,7 @@
 #include <poppler.h>
 #include <poppler-document.h>
 #include <poppler-page.h>
 #include <poppler.h>
 #include <poppler-document.h>
 #include <poppler-page.h>
+#include <glib/gi18n.h>
 
 #include "ev-poppler.h"
 #include "ev-ps-exporter.h"
 
 #include "ev-poppler.h"
 #include "ev-ps-exporter.h"
@@ -87,9 +88,22 @@ G_DEFINE_TYPE_WITH_CODE (PdfDocument, pdf_document, G_TYPE_OBJECT,
                                                        pdf_document_ps_exporter_iface_init);
                         });
 
                                                        pdf_document_ps_exporter_iface_init);
                         });
 
+static void
+pdf_document_dispose (GObject *object)
+{
+       PdfDocument *pdf_document = PDF_DOCUMENT(object);
+
+       if (pdf_document->document) {
+               g_object_unref (pdf_document->document);
+       }
+}
+
 static void
 pdf_document_class_init (PdfDocumentClass *klass)
 {
 static void
 pdf_document_class_init (PdfDocumentClass *klass)
 {
+       GObjectClass *g_object_class = G_OBJECT_CLASS (klass);
+
+       g_object_class->dispose = pdf_document_dispose;
 }
 
 static void
 }
 
 static void
@@ -305,6 +319,7 @@ pdf_document_get_info (EvDocument *document)
        PopplerPageLayout layout;
        PopplerPageMode mode;
        PopplerViewerPreferences view_prefs;
        PopplerPageLayout layout;
        PopplerPageMode mode;
        PopplerViewerPreferences view_prefs;
+       PopplerPermissions permissions;
 
        info = g_new0 (EvDocumentInfo, 1);
 
 
        info = g_new0 (EvDocumentInfo, 1);
 
@@ -315,8 +330,15 @@ pdf_document_get_info (EvDocument *document)
                            EV_DOCUMENT_INFO_KEYWORDS |
                            EV_DOCUMENT_INFO_LAYOUT |
                            EV_DOCUMENT_INFO_START_MODE |
                            EV_DOCUMENT_INFO_KEYWORDS |
                            EV_DOCUMENT_INFO_LAYOUT |
                            EV_DOCUMENT_INFO_START_MODE |
-                           /* Missing EV_DOCUMENT_INFO_CREATION_DATE | */
-                           EV_DOCUMENT_INFO_UI_HINTS;
+                           EV_DOCUMENT_INFO_PERMISSIONS |
+                           EV_DOCUMENT_INFO_UI_HINTS |
+                           EV_DOCUMENT_INFO_CREATOR |
+                           EV_DOCUMENT_INFO_PRODUCER |
+                           EV_DOCUMENT_INFO_CREATION_DATE |
+                           EV_DOCUMENT_INFO_MOD_DATE |
+                           EV_DOCUMENT_INFO_LINEARIZED |
+                           EV_DOCUMENT_INFO_N_PAGES |
+                           EV_DOCUMENT_INFO_SECURITY;
 
 
        g_object_get (PDF_DOCUMENT (document)->document,
 
 
        g_object_get (PDF_DOCUMENT (document)->document,
@@ -328,6 +350,12 @@ pdf_document_get_info (EvDocument *document)
                      "page-mode", &mode,
                      "page-layout", &layout,
                      "viewer-preferences", &view_prefs,
                      "page-mode", &mode,
                      "page-layout", &layout,
                      "viewer-preferences", &view_prefs,
+                     "permissions", &permissions,
+                     "creator", &(info->creator),
+                     "producer", &(info->producer),
+                     "creation-date", &(info->creation_date),
+                     "mod-date", &(info->modified_date),
+                     "linearized", &(info->linearized),
                      NULL);
 
        switch (layout) {
                      NULL);
 
        switch (layout) {
@@ -394,6 +422,30 @@ pdf_document_get_info (EvDocument *document)
                info->ui_hints |=  EV_DOCUMENT_UI_HINT_DIRECTION_RTL;
        }
 
                info->ui_hints |=  EV_DOCUMENT_UI_HINT_DIRECTION_RTL;
        }
 
+       info->permissions = 0;
+       if (permissions & POPPLER_PERMISSIONS_OK_TO_PRINT) {
+               info->permissions |= EV_DOCUMENT_PERMISSIONS_OK_TO_PRINT;
+       }
+       if (permissions & POPPLER_PERMISSIONS_OK_TO_MODIFY) {
+               info->permissions |= EV_DOCUMENT_PERMISSIONS_OK_TO_MODIFY;
+       }
+       if (permissions & POPPLER_PERMISSIONS_OK_TO_COPY) {
+               info->permissions |= EV_DOCUMENT_PERMISSIONS_OK_TO_COPY;
+       }
+       if (permissions & POPPLER_PERMISSIONS_OK_TO_ADD_NOTES) {
+               info->permissions |= EV_DOCUMENT_PERMISSIONS_OK_TO_ADD_NOTES;
+       }
+
+       info->n_pages = ev_document_get_n_pages (document);
+
+       if (ev_document_security_has_document_security (EV_DOCUMENT_SECURITY (document))) {
+               /* translators: this is the document security state */
+               info->security = g_strdup (_("Yes"));
+       } else {
+               /* translators: this is the document security state */
+               info->security = g_strdup (_("No"));
+       }
+
        return info;
 }
 
        return info;
 }
 
@@ -874,7 +926,8 @@ pdf_document_ps_exporter_begin (EvPSExporter *exporter, const char *filename,
        PdfDocument *pdf_document = PDF_DOCUMENT (exporter);
        
        pdf_document->ps_file = poppler_ps_file_new (pdf_document->document, filename,
        PdfDocument *pdf_document = PDF_DOCUMENT (exporter);
        
        pdf_document->ps_file = poppler_ps_file_new (pdf_document->document, filename,
-                                                    first_page, last_page);
+                                                    first_page,
+                                                    last_page - first_page + 1);
 }
 
 static void
 }
 
 static void