diff options
author | Marco Pesenti Gritti <marco@gnome.org> | 2005-01-05 10:48:33 (GMT) |
---|---|---|
committer | Marco Pesenti Gritti <marco@src.gnome.org> | 2005-01-05 10:48:33 (GMT) |
commit | ac441ddbd092eb55a71966c253833d8273a78f7c (patch) | |
tree | 82e129c4cb320c908aa90f5e5e3e5eeb6f31e8a6 /pdf | |
parent | d8ee8d47ba0982593a9774bb326944349a784b89 (diff) |
Implement "Save a copy..." menu item
2005-01-05 Marco Pesenti Gritti <marco@gnome.org>
* 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
Diffstat (limited to 'pdf')
-rw-r--r-- | pdf/xpdf/pdf-document.cc | 20 |
1 files changed, 20 insertions, 0 deletions
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; |