simple-scan-team team mailing list archive
-
simple-scan-team team
-
Mailing list archive
-
Message #01369
[Merge] lp:~mbarnes.redhat/simple-scan/default-save-format into lp:simple-scan
Matthew Barnes has proposed merging lp:~mbarnes.redhat/simple-scan/default-save-format into lp:simple-scan.
Requested reviews:
Matthew Barnes (mbarnes.redhat)
For more details, see:
https://code.launchpad.net/~mbarnes.redhat/simple-scan/default-save-format/+merge/322293
I frequently use simple-scan to save scanned images as JPEG files. However, each time I have to manually change the save format from PDF to JPEG, even though the "document-hint" setting is "photo".
This branch sets the default save format according to the "document-hint" setting: PDF for text scans, JPEG for photo scans. (This assumes, I think correctly, that JPEG is most likely wanted for photos.)
Also, for convenience, if the user manually selects a different file format in the save dialog, simple-scan will remember that in subsequent save dialogs for the remainder of the session, or until the user changes the "document-hint" setting again.
Note, this branch alters a translated string ("Scanned Document.pdf" -> "Scanned Document").
--
Your team Simple Scan Development Team is subscribed to branch lp:simple-scan.
=== modified file 'src/ui.vala'
--- src/ui.vala 2017-03-29 09:40:01 +0000
+++ src/ui.vala 2017-04-10 14:26:17 +0000
@@ -156,6 +156,7 @@
private Gtk.FileChooserDialog? save_dialog;
private ProgressBarDialog progress_dialog;
+ private string? save_dialog_extension = ".pdf";
private bool have_error;
private string error_title;
@@ -507,9 +508,12 @@
if (book_uri != null)
save_dialog.set_uri (book_uri);
else {
+ var filename = _("Scanned Document") + save_dialog_extension;
+
save_dialog.set_current_folder (directory);
/* Default filename to use when saving document */
- save_dialog.set_current_name (_("Scanned Document.pdf"));
+ debug ("Setting filename to '%s'", filename);
+ save_dialog.set_current_name (filename);
}
/* Filter to only show images by default */
@@ -556,18 +560,16 @@
box.pack_start (label, false, false, 0);
var file_type_combo = new Gtk.ComboBox.with_model (file_type_store);
+ file_type_combo.set_id_column (1);
file_type_combo.visible = true;
var renderer = new Gtk.CellRendererText ();
file_type_combo.pack_start (renderer, true);
file_type_combo.add_attribute (renderer, "text", 0);
- file_type_combo.set_active (0);
+ file_type_combo.set_active_id (save_dialog_extension);
file_type_combo.changed.connect (() =>
{
- var extension = "";
- Gtk.TreeIter i;
- if (file_type_combo.get_active_iter (out i))
- file_type_store.get (i, 1, out extension, -1);
+ save_dialog_extension = file_type_combo.get_active_id ();
var path = save_dialog.get_filename ();
var filename = Path.get_basename (path);
@@ -576,7 +578,8 @@
var extension_index = filename.last_index_of_char ('.');
if (extension_index >= 0)
filename = filename.slice (0, extension_index);
- filename = filename + extension;
+ filename = filename + save_dialog_extension;
+ debug ("Setting filename to '%s'", filename);
save_dialog.set_current_name (filename);
});
box.pack_start (file_type_combo, false, false, 0);
@@ -588,17 +591,12 @@
if (response != Gtk.ResponseType.ACCEPT)
break;
- var extension = "";
- Gtk.TreeIter i;
- if (file_type_combo.get_active_iter (out i))
- file_type_store.get (i, 1, out extension, -1);
-
var path = save_dialog.get_filename ();
var filename = Path.get_basename (path);
var extension_index = filename.last_index_of_char ('.');
if (extension_index < 0)
- path += extension;
+ path += save_dialog_extension;
uri = File.new_for_path (path).get_uri ();
@@ -780,12 +778,14 @@
text_button_menuitem.active = true;
text_button_hb_menuitem.active = true;
text_menuitem.active = true;
+ save_dialog_extension = ".pdf";
}
else if (document_hint == "photo")
{
photo_button_menuitem.active = true;
photo_button_hb_menuitem.active = true;
photo_menuitem.active = true;
+ save_dialog_extension = ".jpg";
}
if (save)
Follow ups