Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/pdf
diff options
context:
space:
mode:
authorMarco 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)
commitac441ddbd092eb55a71966c253833d8273a78f7c (patch)
tree82e129c4cb320c908aa90f5e5e3e5eeb6f31e8a6 /pdf
parentd8ee8d47ba0982593a9774bb326944349a784b89 (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.cc20
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;