diff options
| author | Ulf Erikson <ulferikson@gmail.com> | 2006-08-05 21:09:06 +0000 |
|---|---|---|
| committer | ulferikson <ulferikson@users.sourceforge.net> | 2006-08-05 21:09:06 +0000 |
| commit | 86214b84e365fc4d60494bd1dc21d5bdbe9cd2c5 (patch) | |
| tree | 731477645abfa7419c3fd71921761bc3ff94bf53 /src | |
| parent | Fix for eccentric elliptic gradients. (diff) | |
| download | inkscape-86214b84e365fc4d60494bd1dc21d5bdbe9cd2c5.tar.gz inkscape-86214b84e365fc4d60494bd1dc21d5bdbe9cd2c5.zip | |
Notify save failure by throwing "save_failed".
(bzr r1564)
Diffstat (limited to 'src')
| -rw-r--r-- | src/extension/internal/pdf-out.cpp | 18 | ||||
| -rw-r--r-- | src/extension/internal/pdf.cpp | 2 |
2 files changed, 14 insertions, 6 deletions
diff --git a/src/extension/internal/pdf-out.cpp b/src/extension/internal/pdf-out.cpp index 5cf859161..d75be83df 100644 --- a/src/extension/internal/pdf-out.cpp +++ b/src/extension/internal/pdf-out.cpp @@ -38,7 +38,7 @@ PdfOutput::check (Inkscape::Extension::Extension * module) }
-static void
+static unsigned int
pdf_print_document_to_file(SPDocument *doc, gchar const *filename)
{
Inkscape::Extension::Print *mod;
@@ -62,10 +62,14 @@ pdf_print_document_to_file(SPDocument *doc, gchar const *filename) mod->arena = NRArena::create();
mod->dkey = sp_item_display_key_new(1);
mod->root = sp_item_invoke_show(mod->base, mod->arena, mod->dkey, SP_ITEM_SHOW_DISPLAY);
+
/* Print document */
ret = mod->begin(doc);
- sp_item_invoke_print(mod->base, &context);
- ret = mod->finish();
+ if (ret) {
+ sp_item_invoke_print(mod->base, &context);
+ ret = mod->finish();
+ }
+
/* Release arena */
sp_item_invoke_hide(mod->base, mod->dkey);
mod->base = NULL;
@@ -78,7 +82,7 @@ pdf_print_document_to_file(SPDocument *doc, gchar const *filename) mod->set_param_string("destination", oldoutput);
g_free(oldoutput);
- return;
+ return ret;
}
@@ -96,6 +100,7 @@ void PdfOutput::save (Inkscape::Extension::Output *mod, SPDocument *doc, const gchar *uri)
{
Inkscape::Extension::Extension * ext;
+ unsigned int ret;
ext = Inkscape::Extension::db.get(SP_MODULE_KEY_PRINT_PDF);
if (ext == NULL)
@@ -103,9 +108,12 @@ PdfOutput::save (Inkscape::Extension::Output *mod, SPDocument *doc, const gchar gchar * final_name;
final_name = g_strdup_printf("> %s", uri);
- pdf_print_document_to_file(doc, final_name);
+ ret = pdf_print_document_to_file(doc, final_name);
g_free(final_name);
+ if (!ret)
+ throw Inkscape::Extension::Output::save_failed();
+
return;
}
diff --git a/src/extension/internal/pdf.cpp b/src/extension/internal/pdf.cpp index bd65cd318..dde35c391 100644 --- a/src/extension/internal/pdf.cpp +++ b/src/extension/internal/pdf.cpp @@ -465,7 +465,7 @@ PrintPDF::finish(Inkscape::Extension::Print *mod) _stream = 0;
_latin1_encoded_fonts.clear();
- return 0;
+ return 1;
}
unsigned int
|
