From 5379fed0ece9cc51e124eb30d5e6486049f25c12 Mon Sep 17 00:00:00 2001 From: Paul Gardiner Date: Thu, 2 Aug 2012 15:49:47 +0100 Subject: Forms: implement saving on 'S' key --- apps/pdfapp.c | 50 +++++++++++++++++++++++++++++++------------------- 1 file changed, 31 insertions(+), 19 deletions(-) diff --git a/apps/pdfapp.c b/apps/pdfapp.c index bc47cf9a..2cf7e7b2 100644 --- a/apps/pdfapp.c +++ b/apps/pdfapp.c @@ -198,14 +198,35 @@ void pdfapp_close(pdfapp_t *app) fz_flush_warnings(app->ctx); } +static int pdfapp_save(pdfapp_t *app) +{ + char buf[PATH_MAX]; + + if (wingetsavepath(app, buf, PATH_MAX)) + { + fz_write_options opts; + + opts.do_ascii = 1; + opts.do_expand = 0; + opts.do_garbage = 1; + opts.do_linear = 0; + + fz_write_document(app->doc, buf, &opts); + + return 1; + } + else + { + return 0; + } +} + int pdfapp_preclose(pdfapp_t *app) { fz_interactive *idoc = fz_interact(app->doc); if (idoc && fz_has_unsaved_changes(idoc)) { - char buf[PATH_MAX]; - switch (winsavequery(app)) { case DISCARD: @@ -215,23 +236,7 @@ int pdfapp_preclose(pdfapp_t *app) return 0; case SAVE: - if (wingetsavepath(app, buf, PATH_MAX)) - { - fz_write_options opts; - - opts.do_ascii = 1; - opts.do_expand = 0; - opts.do_garbage = 1; - opts.do_linear = 0; - - fz_write_document(app->doc, buf, &opts); - - return 1; - } - else - { - return 0; - } + return pdfapp_save(app); } } @@ -963,6 +968,13 @@ void pdfapp_onkey(pdfapp_t *app, int c) app->pageno += 10; break; + /* + * Saving the file + */ + case 'S': + pdfapp_save(app); + break; + /* * Reloading the file... */ -- cgit v1.2.3