X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=blobdiff_plain;f=ps%2Fps-document.c;h=5a4a457183e8205a0664e7bdd5be3d23d23d60e7;hb=d3955c8b7e547f0adb7ce5cb821fff0bf49d7dee;hp=4f38e6b02763d9121d98d9abf19fc8afc10d8886;hpb=c0ff60cfe9747401b11eaae97a220c16aab3ddd5;p=evince.git diff --git a/ps/ps-document.c b/ps/ps-document.c index 4f38e6b0..5a4a4571 100644 --- a/ps/ps-document.c +++ b/ps/ps-document.c @@ -459,7 +459,7 @@ get_page_orientation (PSDocument *gs, int page) static void setup_page (PSDocument *gs, int page, double scale) { - char buf[1024]; + gchar *buf; int urx, ury, llx, lly, orientation; char scaled_xdpi[G_ASCII_DTOSTR_BUF_SIZE]; char scaled_ydpi[G_ASCII_DTOSTR_BUF_SIZE]; @@ -471,14 +471,16 @@ setup_page (PSDocument *gs, int page, double scale) g_ascii_dtostr (scaled_xdpi, G_ASCII_DTOSTR_BUF_SIZE, get_xdpi (gs) * scale); g_ascii_dtostr (scaled_ydpi, G_ASCII_DTOSTR_BUF_SIZE, get_ydpi (gs) * scale); - g_snprintf (buf, 1024, "%ld %d %d %d %d %d %s %s %d %d %d %d", - 0L, orientation * 90, llx, lly, urx, ury, - scaled_xdpi, scaled_ydpi, - 0, 0, 0, 0); + buf = g_strdup_printf ("%ld %d %d %d %d %d %s %s %d %d %d %d", + 0L, orientation * 90, llx, lly, urx, ury, + scaled_xdpi, scaled_ydpi, + 0, 0, 0, 0); LOG ("GS property %s", buf); gdk_property_change (gs->pstarget, gs_class->gs_atom, gs_class->string_atom, 8, GDK_PROP_MODE_REPLACE, (guchar *)buf, strlen(buf)); + g_free (buf); + gdk_flush (); } @@ -902,10 +904,16 @@ check_filecompressed (PSDocument * gs) /* sucessfully uncompressed file */ gs->gs_filename_unc = filename_unc; } else { + gchar *filename_dsp; + gchar *msg; + /* report error */ - g_snprintf (buf, 1024, _("Error while decompressing file %s:\n"), - gs->gs_filename); - interpreter_failed (gs, buf); + filename_dsp = g_filename_display_name (gs->gs_filename); + msg = g_strdup_printf (_("Error while decompressing file %s:\n"), filename_dsp); + g_free (filename_dsp); + + interpreter_failed (gs, msg); + g_free (msg); unlink (filename_unc); g_free (filename_unc); filename_unc = NULL; @@ -957,10 +965,15 @@ document_load (PSDocument *gs, const gchar *fname) gchar *filename = NULL; if (!file_readable(fname)) { - gchar buf[1024]; - - g_snprintf (buf, 1024, _("Cannot open file %s.\n"), fname); - interpreter_failed (gs, buf); + gchar *filename_dsp; + gchar *msg; + + filename_dsp = g_filename_display_name (fname); + msg = g_strdup_printf (_("Cannot open file %s.\n"), filename_dsp); + g_free (filename_dsp); + + interpreter_failed (gs, msg); + g_free (msg); gs->gs_status = _("File is not readable."); } else { filename = check_filecompressed(gs); @@ -1072,10 +1085,16 @@ ps_document_load (EvDocument *document, result = document_load (PS_DOCUMENT (document), filename); if (!result) { + gchar *filename_dsp; + + filename_dsp = g_filename_display_name (filename); + g_set_error (error, G_FILE_ERROR, G_FILE_ERROR_FAILED, - "Failed to load document '%s'\n", - uri); + _("Failed to load document '%s'"), + filename_dsp); + + g_free (filename_dsp); } g_free (filename); @@ -1091,7 +1110,8 @@ save_page_list (PSDocument *document, int *page_list, const char *filename) FILE *f; gchar *buf; - pscopydoc (sink, document->gs_filename, document->doc, page_list); + pscopydoc (sink, PS_DOCUMENT_GET_PS_FILE(document), + document->doc, page_list); buf = gtk_gs_doc_sink_get_buffer (sink); @@ -1240,58 +1260,6 @@ ps_document_get_info (EvDocument *document) return info; } -static EvOrientation -ps_document_get_orientation (EvDocument *document) -{ - EvOrientation orientation; - PSDocument *ps = PS_DOCUMENT (document); - - g_return_val_if_fail (ps != NULL, EV_ORIENTATION_PORTRAIT); - - switch (ps->orientation) { - case GTK_GS_ORIENTATION_PORTRAIT: - orientation = EV_ORIENTATION_PORTRAIT; - break; - case GTK_GS_ORIENTATION_LANDSCAPE: - orientation = EV_ORIENTATION_LANDSCAPE; - break; - case GTK_GS_ORIENTATION_UPSIDEDOWN: - orientation = EV_ORIENTATION_UPSIDEDOWN; - break; - case GTK_GS_ORIENTATION_SEASCAPE: - orientation = EV_ORIENTATION_SEASCAPE; - break; - default: - orientation = EV_ORIENTATION_PORTRAIT; - break; - } - - return orientation; -} - -static void -ps_document_set_orientation (EvDocument *document, EvOrientation orientation) -{ - PSDocument *ps = PS_DOCUMENT (document); - - g_return_if_fail (ps != NULL); - - switch (orientation) { - case EV_ORIENTATION_PORTRAIT: - ps->orientation = GTK_GS_ORIENTATION_PORTRAIT; - break; - case EV_ORIENTATION_LANDSCAPE: - ps->orientation = GTK_GS_ORIENTATION_LANDSCAPE; - break; - case EV_ORIENTATION_UPSIDEDOWN: - ps->orientation = GTK_GS_ORIENTATION_UPSIDEDOWN; - break; - case EV_ORIENTATION_SEASCAPE: - ps->orientation = GTK_GS_ORIENTATION_SEASCAPE; - break; - } -} - static void ps_document_document_iface_init (EvDocumentIface *iface) { @@ -1301,8 +1269,6 @@ ps_document_document_iface_init (EvDocumentIface *iface) iface->get_n_pages = ps_document_get_n_pages; iface->get_page_size = ps_document_get_page_size; iface->get_info = ps_document_get_info; - iface->set_orientation = ps_document_set_orientation; - iface->get_orientation = ps_document_get_orientation; } static void @@ -1325,11 +1291,11 @@ ps_document_ps_export_begin (EvPSExporter *exporter, const char *filename, } static void -ps_document_ps_export_do_page (EvPSExporter *exporter, int page) +ps_document_ps_export_do_page (EvPSExporter *exporter, EvRenderContext *rc) { PSDocument *document = PS_DOCUMENT (exporter); - document->ps_export_pagelist[page] = 1; + document->ps_export_pagelist[rc->page] = 1; } static void