X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=blobdiff_plain;f=pdf%2Fev-poppler.cc;h=bd3151a6bc9d5e3c8b399ff7821ce351443a73fe;hb=2811ddcf49935aba8b8bd4e6eadb4e8ac892e9d6;hp=95ea00e5a91d02387bcdb12ab75f4b24b3b535c9;hpb=6202bf1580c2792a061729aa469b590626551c0d;p=evince.git diff --git a/pdf/ev-poppler.cc b/pdf/ev-poppler.cc index 95ea00e5..bd3151a6 100644 --- a/pdf/ev-poppler.cc +++ b/pdf/ev-poppler.cc @@ -32,13 +32,6 @@ #include "ev-document-security.h" #include "ev-document-thumbnails.h" - -enum { - PROP_0, - PROP_TITLE -}; - - typedef struct { PdfDocument *document; char *text; @@ -94,34 +87,9 @@ G_DEFINE_TYPE_WITH_CODE (PdfDocument, pdf_document, G_TYPE_OBJECT, pdf_document_ps_exporter_iface_init); }); - -static void -pdf_document_get_property (GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec) -{ - PdfDocument *pdf_document = PDF_DOCUMENT (object); - - switch (prop_id) - { - case PROP_TITLE: - if (pdf_document->document == NULL) - g_value_set_string (value, NULL); - else - g_object_get_property (G_OBJECT (pdf_document->document), "title", value); - break; - } -} - static void pdf_document_class_init (PdfDocumentClass *klass) { - GObjectClass *gobject_class = G_OBJECT_CLASS (klass); - - gobject_class->get_property = pdf_document_get_property; - - g_object_class_override_property (gobject_class, PROP_TITLE, "title"); } static void @@ -224,7 +192,7 @@ pdf_document_get_page_label (EvDocument *document, poppler_page = poppler_document_get_page (PDF_DOCUMENT (document)->document, page); - g_object_get (poppler_page, + g_object_get (G_OBJECT (poppler_page), "label", &label, NULL); @@ -286,8 +254,8 @@ pdf_document_render_pixbuf (EvDocument *document, page); poppler_page_get_size (poppler_page, &width_points, &height_points); - width = (int) ceil (width_points * scale); - height = (int) ceil (height_points * scale); + width = (int) ((width_points * scale) + 0.5); + height = (int) ((height_points * scale) + 0.5); pixbuf = gdk_pixbuf_new (GDK_COLORSPACE_RGB, FALSE, 8, @@ -380,6 +348,8 @@ pdf_document_get_info (EvDocument *document) case POPPLER_PAGE_LAYOUT_TWO_PAGE_RIGHT: info->layout = EV_DOCUMENT_LAYOUT_TWO_PAGE_RIGHT; break; + default: + break; } switch (mode) { @@ -397,6 +367,8 @@ pdf_document_get_info (EvDocument *document) break; case POPPLER_PAGE_MODE_USE_ATTACHMENTS: info->mode = EV_DOCUMENT_MODE_USE_ATTACHMENTS; + default: + break; } info->ui_hints = 0; @@ -687,21 +659,22 @@ pdf_document_search_idle_callback (void *data) { PdfDocumentSearch *search = (PdfDocumentSearch*) data; PdfDocument *pdf_document = search->document; - int n_pages, changed_page; + int n_pages; GList *matches; PopplerPage *page; page = poppler_document_get_page (search->document->document, search->search_page); - g_mutex_lock (EV_DOC_MUTEX); + ev_document_doc_mutex_lock (); matches = poppler_page_find_text (page, search->text); - g_mutex_unlock (EV_DOC_MUTEX); + ev_document_doc_mutex_unlock (); search->pages[search->search_page] = matches; - n_pages = pdf_document_get_n_pages (EV_DOCUMENT (search->document)); + ev_document_find_changed (EV_DOCUMENT_FIND (pdf_document), + search->search_page); - changed_page = search->search_page; + n_pages = pdf_document_get_n_pages (EV_DOCUMENT (search->document)); search->search_page += 1; if (search->search_page == n_pages) { /* wrap around */ @@ -709,8 +682,6 @@ pdf_document_search_idle_callback (void *data) } if (search->search_page != search->start_page) { - ev_document_find_changed (EV_DOCUMENT_FIND (pdf_document), - changed_page); return TRUE; } @@ -801,7 +772,6 @@ int pdf_document_find_get_n_results (EvDocumentFind *document_find, int page) { PdfDocumentSearch *search = PDF_DOCUMENT (document_find)->search; - int current_page; if (search) { return g_list_length (search->pages[page]); @@ -820,7 +790,6 @@ pdf_document_find_get_result (EvDocumentFind *document_find, PdfDocumentSearch *search = pdf_document->search; PopplerPage *poppler_page; PopplerRectangle *r; - int current_page; double height; if (search == NULL) @@ -899,14 +868,14 @@ pdf_document_find_iface_init (EvDocumentFindIface *iface) } static void -pdf_document_ps_exporter_begin (EvPSExporter *exporter, const char *filename) +pdf_document_ps_exporter_begin (EvPSExporter *exporter, const char *filename, + int first_page, int last_page) { PdfDocument *pdf_document = PDF_DOCUMENT (exporter); - int n_pages; - n_pages = pdf_document_get_n_pages (EV_DOCUMENT (exporter)); - pdf_document->ps_file = poppler_ps_file_new (pdf_document->document, - filename, n_pages); + pdf_document->ps_file = poppler_ps_file_new (pdf_document->document, filename, + first_page, + last_page - first_page + 1); } static void