From ac441ddbd092eb55a71966c253833d8273a78f7c Mon Sep 17 00:00:00 2001 From: Marco Pesenti Gritti Date: Wed, 05 Jan 2005 10:48:33 +0000 Subject: Implement "Save a copy..." menu item 2005-01-05 Marco Pesenti Gritti * backend/ev-document.c: (ev_document_save): * backend/ev-document.h: * data/evince-ui.xml: * pdf/xpdf/pdf-document.cc: * shell/ev-window.c: (save_error_dialog), (ev_window_cmd_save_as): Implement "Save a copy..." menu item --- (limited to 'pdf') diff --git a/pdf/xpdf/pdf-document.cc b/pdf/xpdf/pdf-document.cc index 76229db..ed3b505 100644 --- a/pdf/xpdf/pdf-document.cc +++ b/pdf/xpdf/pdf-document.cc @@ -197,6 +197,25 @@ pdf_document_load (EvDocument *document, return TRUE; } +static gboolean +pdf_document_save (EvDocument *document, + const char *uri, + GError **error) +{ + PdfDocument *pdf_document = PDF_DOCUMENT (document); + char *filename; + gboolean retval = FALSE; + + filename = g_filename_from_uri (uri, NULL, error); + if (filename != NULL) { + GString *fname = new GString (filename); + + retval = pdf_document->doc->saveAs (fname); + } + + return retval; +} + static int pdf_document_get_n_pages (EvDocument *document) { @@ -975,6 +994,7 @@ static void pdf_document_document_iface_init (EvDocumentIface *iface) { iface->load = pdf_document_load; + iface->save = pdf_document_save; iface->get_n_pages = pdf_document_get_n_pages; iface->set_page = pdf_document_set_page; iface->get_page = pdf_document_get_page; -- cgit v0.9.1