#include "printing.h"
#include "prefs_common.h"
#include "gtk/gtkutils.h"
+#include "gtk/inputdialog.h"
#include "mimeview.h"
#ifndef POPPLER_WITH_GDK
#include "stdbool.h"
gdk_pixbuf_fill(sel_pb, SELECTION_COLOR);
- page_pb = gtk_image_get_pixbuf(GTK_IMAGE(viewer->pdf_view));
-
page_pb = gdk_pixbuf_new(GDK_COLORSPACE_RGB,
FALSE, 8,
(int)(viewer->width * viewer->zoom),
PopplerDest *dest = poppler_document_find_dest(
viewer->pdf_doc, action->goto_dest.dest->named_dest);
if (dest->type != POPPLER_DEST_XYZ) {
- g_warning("couldn't figure out link\n");
+ g_warning("couldn't figure out link");
poppler_dest_free(dest);
continue;
}
#endif
else {
#ifdef HAVE_POPPLER_DEST_NAMED
- g_warning("unhandled link type %d\nplease contact developers\n", action->goto_dest.dest->type);
+ g_warning("unhandled link type %d. please contact developers", action->goto_dest.dest->type);
#else
- g_warning("unhandled link type %d\nplease upgrade libpoppler-glib to 0.5.4\n", action->goto_dest.dest->type);
+ g_warning("unhandled link type %d. please upgrade libpoppler-glib to 0.5.4", action->goto_dest.dest->type);
#endif
continue;
}
dest = poppler_document_find_dest(
viewer->pdf_doc, viewer->link_action->goto_dest.dest->named_dest);
if (dest->type != POPPLER_DEST_XYZ) {
- g_warning("couldn't figure out link\n");
+ g_warning("couldn't figure out link");
poppler_dest_free(dest);
break;
}
dest = poppler_document_find_dest(
viewer->pdf_doc, viewer->link_action->goto_remote.dest->named_dest);
if (dest->type != POPPLER_DEST_XYZ) {
- g_warning ("couldn't figure out link\n");
+ g_warning ("couldn't figure out link");
poppler_dest_free(dest);
break;
}
{
PdfViewer *viewer = (PdfViewer *) _viewer;
- GError *error;
+ GError *error = NULL;
gchar *tmpfile = NULL;
gchar *tmp;
+ gchar *password = NULL;
debug_print("pdf_viewer_update\n");
- error = NULL;
if (reload_file) {
if (viewer->pdf_doc) {
g_object_unref(G_OBJECT(viewer->pdf_doc));
g_free(tmp);
}
else {
- g_warning("gs conversion failed: %s returned %d\n", cmdline, result);
+ g_warning("gs conversion failed: %s returned %d", cmdline, result);
tmp = g_strdup_printf("gs: err %d", result);
alertpanel_warning("%s", tmp);
g_free(tmp);
g_free(tmpfile);
}
else {
- g_warning("gs conversion disabled: gs binary was not found\n");
+ g_warning("gs conversion disabled: gs binary was not found");
alertpanel_warning("PostScript view disabled: required gs program not found");
result = 1;
else {
viewer->pdf_doc = poppler_document_new_from_file( viewer->fsname, NULL, &error);
}
+ if (error && g_error_matches(error, POPPLER_ERROR, POPPLER_ERROR_ENCRYPTED)) {
+ g_clear_error(&error);
+ password = input_dialog_with_invisible(_("Enter password"),
+ _("This document is locked and requires a password before it can be opened."),
+ "");
+ viewer->pdf_doc = poppler_document_new_from_file(viewer->fsname, password, &error);
+ g_free(password);
+ }
viewer->num_pages = poppler_document_get_n_pages(viewer->pdf_doc);
main_window_cursor_normal(mainwindow_get_mainwindow());
}
if (viewer->pdf_doc == NULL) {
- strretchomp(error->message);
stock_pixbuf_gdk(viewer->hbox,
STOCK_PIXMAP_MIME_APPLICATION,
&viewer->icon_pixbuf);
gtk_image_set_from_pixbuf(GTK_IMAGE(viewer->icon_type), viewer->icon_pixbuf);
- alertpanel_error("%s", error->message);
-
+ if (error) {
+ strretchomp(error->message);
+ alertpanel_error("%s", error->message);
+ } else {
+ alertpanel_error(_("PDF rendering failed for an unknown reason."));
+ }
pdf_viewer_show_controls(viewer, FALSE);
g_error_free(error);
return;
viewer->pdf_page = poppler_document_get_page(viewer->pdf_doc, page_num - 1);
if (viewer->pdf_page == NULL) {
- g_warning("Page not found\n");
+ g_warning("Page not found");
return;
}
viewer->rotate = 0;
viewer->to_load = partinfo;
+ if (messageview)
+ messageview->updating = TRUE;
+
memset(buf, 0, sizeof(buf));
- messageview->updating = TRUE;
debug_print("pdf_viewer_show_mimepart\n");
if (viewer->filename != NULL) {
if (partinfo && !(procmime_get_part(viewer->filename, partinfo) < 0)) {
- if (_viewer && _viewer->mimeview &&
- _viewer->mimeview->messageview->forced_charset) {
+ if (messageview && messageview->forced_charset)
charset = _viewer->mimeview->messageview->forced_charset;
- }
- else {
+ else
charset = procmime_mimeinfo_get_parameter(partinfo, "charset");
- }
+
if (charset == NULL) {
charset = conv_get_locale_charset_str();
}
pdf_viewer_update((MimeViewer *)viewer, TRUE, 1);
- messageview->updating = FALSE;
+ if (messageview)
+ messageview->updating = FALSE;
}
static void pdf_viewer_clear(MimeViewer *_viewer)
gtk_table_set_col_spacing(GTK_TABLE(viewer->widgets_table), col, 3*BUTTON_H_PADDING); \
col++;
-#if GTK_CHECK_VERSION(2,10,0) && POPPLER_HAS_CAIRO && !USE_LIBGNOMEPRINT
+#if POPPLER_HAS_CAIRO
static PangoContext *pdf_viewer_get_pango_context(gpointer data)
{
return NULL;
viewer->mimeviewer.text_search = pdf_viewer_text_search;
viewer->mimeviewer.scroll_page = pdf_viewer_scroll_page;
viewer->mimeviewer.scroll_one_line = pdf_viewer_scroll_one_line;
-#if GTK_CHECK_VERSION(2,10,0) && POPPLER_HAS_CAIRO && !USE_LIBGNOMEPRINT
+#if POPPLER_HAS_CAIRO
viewer->mimeviewer.print = pdf_viewer_print;
#endif
viewer->scrollwin = gtk_scrolled_window_new(NULL, NULL);
gtk_widget_set_size_request(viewer->frame_index, 18, -1);
gtk_frame_set_label(GTK_FRAME(viewer->frame_index), _("Document Index"));
-#if !(GTK_CHECK_VERSION(2,12,0))
- viewer->button_bar_tips = tips;
-#endif
-
ADD_SEP_TO_TABLE
ADD_BUTTON_TO_TABLE(viewer->first_page, GTK_STOCK_GOTO_FIRST)
ADD_BUTTON_TO_TABLE(viewer->prev_page, GTK_STOCK_GO_BACK)