simple-scan-team team mailing list archive
-
simple-scan-team team
-
Mailing list archive
-
Message #00938
[Merge] lp:~victor-mireyev/simple-scan/bug-719741 into lp:simple-scan
Victor Mireyev has proposed merging lp:~victor-mireyev/simple-scan/bug-719741 into lp:simple-scan.
Requested reviews:
Robert Ancell (robert-ancell)
Related bugs:
Bug #719741 in Simple Scan: "Save dialog does not force file name extensions"
https://bugs.launchpad.net/simple-scan/+bug/719741
For more details, see:
https://code.launchpad.net/~victor-mireyev/simple-scan/bug-719741/+merge/167380
Fix LP#719741. Save dialog should force file name extensions
--
https://code.launchpad.net/~victor-mireyev/simple-scan/bug-719741/+merge/167380
Your team Simple Scan Development Team is subscribed to branch lp:simple-scan.
=== modified file 'src/ui.vala'
--- src/ui.vala 2013-05-19 21:55:27 +0000
+++ src/ui.vala 2013-06-04 19:29:37 +0000
@@ -325,13 +325,7 @@
private void on_file_type_changed (Gtk.TreeSelection selection)
{
- Gtk.TreeModel model;
- Gtk.TreeIter iter;
- if (!selection.get_selected (out model, out iter))
- return;
-
- string extension;
- model.get (iter, 1, out extension, -1);
+ var extension = get_selected_extension (selection);
var path = save_dialog.get_filename ();
var filename = Path.get_basename (path);
@@ -343,6 +337,17 @@
save_dialog.set_current_name (filename);
}
+ private string get_selected_extension (Gtk.TreeSelection selection)
+ {
+ Gtk.TreeModel model;
+ Gtk.TreeIter iter;
+ string extension = "";
+
+ if (selection.get_selected (out model, out iter))
+ model.get (iter, 1, out extension, -1);
+ return extension;
+ }
+
private string choose_file_location ()
{
/* Get directory to save to */
@@ -382,10 +387,10 @@
expander.set_spacing (5);
save_dialog.set_extra_widget (expander);
- string extension = "";
+ string default_extension = "";
var index = default_file_name.last_index_of_char ('.');
if (index >= 0)
- extension = default_file_name.slice (0, index);
+ default_extension = default_file_name.substring (index);
var file_type_store = new Gtk.ListStore (2, typeof (string), typeof (string));
Gtk.TreeIter iter;
@@ -423,7 +428,7 @@
{
string e;
file_type_store.get (iter, 1, out e, -1);
- if (extension == e)
+ if (default_extension == e)
file_type_view.get_selection ().select_iter (iter);
} while (file_type_store.iter_next (ref iter));
}
@@ -435,7 +440,19 @@
string? uri = null;
if (response == Gtk.ResponseType.ACCEPT)
- uri = save_dialog.get_uri ();
+ {
+ var selection = file_type_view.get_selection ();
+ var extension = get_selected_extension (selection);
+
+ 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;
+
+ uri = File.new_for_path (path).get_uri ();
+ }
settings.set_string ("save-directory", save_dialog.get_current_folder ());
Follow ups