diff options
Diffstat (limited to 'src/Dialogs.vala')
-rw-r--r-- | src/Dialogs.vala | 94 |
1 files changed, 55 insertions, 39 deletions
diff --git a/src/Dialogs.vala b/src/Dialogs.vala index f01e078..01caced 100644 --- a/src/Dialogs.vala +++ b/src/Dialogs.vala @@ -13,8 +13,8 @@ public bool confirm_delete_tag(Tag tag) { if (count == 0) return true; string msg = ngettext( - "This will remove the tag \"%s\" from one photo. Continue?", - "This will remove the tag \"%s\" from %d photos. Continue?", + "This will remove the tag “%s” from one photo. Continue?", + "This will remove the tag “%s” from %d photos. Continue?", count).printf(tag.get_user_visible_name(), count); return AppWindow.negate_affirm_question(msg, _("_Cancel"), _("_Delete"), @@ -22,7 +22,7 @@ public bool confirm_delete_tag(Tag tag) { } public bool confirm_delete_saved_search(SavedSearch search) { - string msg = _("This will remove the saved search \"%s\". Continue?") + string msg = _("This will remove the saved search “%s”. Continue?") .printf(search.get_name()); return AppWindow.negate_affirm_question(msg, _("_Cancel"), _("_Delete"), @@ -66,15 +66,11 @@ public File? choose_file(string current_file_basename) { chooser.set_current_name(current_file_basename); chooser.set_local_only(false); - // The log handler reset should be removed once GTK 3.4 becomes widely available; - // please see https://bugzilla.gnome.org/show_bug.cgi?id=662814 for details. - Log.set_handler("Gtk", LogLevelFlags.LEVEL_WARNING, suppress_warnings); File file = null; if (chooser.run() == Gtk.ResponseType.ACCEPT) { file = File.new_for_path(chooser.get_filename()); current_export_dir = file.get_parent(); } - Log.set_handler("Gtk", LogLevelFlags.LEVEL_WARNING, Log.default_handler); chooser.destroy(); return file; @@ -113,7 +109,7 @@ public void open_external_editor_error_dialog(Error err, Photo photo) { if (err is IOError.PERMISSION_DENIED || err is FileError.PERM) { // Yes - display an alternate error message here. AppWindow.error_message( - _("Shotwell couldn't create a file for editing this photo because you do not have permission to write to %s.").printf(photo.get_master_file().get_parent().get_path())); + _("Shotwell couldn’t create a file for editing this photo because you do not have permission to write to %s.").printf(photo.get_master_file().get_parent().get_path())); } else { // No - something else is wrong, display the error message // the system gave us. @@ -162,7 +158,7 @@ public class ExportDialog : Gtk.Dialog { private Gtk.ComboBoxText quality_combo; private Gtk.ComboBoxText constraint_combo; private Gtk.ComboBoxText format_combo; - private Gtk.CheckButton export_metadata; + private Gtk.Switch export_metadata; private Gee.ArrayList<string> format_options = new Gee.ArrayList<string>(); private Gtk.Entry pixels_entry; private Gtk.Widget ok_button; @@ -176,6 +172,15 @@ public class ExportDialog : Gtk.Dialog { this.title = title; resizable = false; + //get information about the export settings out of our config backend + Config.Facade config = Config.Facade.get_instance(); + current_parameters.mode = config.get_export_export_format_mode(); //ExportFormatMode + current_parameters.specified_format = config.get_export_photo_file_format(); //PhotoFileFormat + current_parameters.quality = config.get_export_quality(); //quality + current_parameters.export_metadata = config.get_export_export_metadata(); //export metadata + current_constraint = config.get_export_constraint(); //constraint + current_scale = config.get_export_scale(); //scale + quality_combo = new Gtk.ComboBoxText(); int ctr = 0; foreach (Jpeg.Quality quality in QUALITY_ARRAY) { @@ -225,13 +230,15 @@ public class ExportDialog : Gtk.Dialog { add_label(_("_Pixels:"), 0, 3, pixels_entry); add_control(pixels_entry, 1, 3); - export_metadata = new Gtk.CheckButton.with_label(_("Export metadata")); + export_metadata = new Gtk.Switch (); + add_label(_("Export _metadata:"), 0, 4, export_metadata); add_control(export_metadata, 1, 4); export_metadata.active = true; + export_metadata.halign = Gtk.Align.START; - table.set_row_spacing(5); - table.set_column_spacing(5); - table.set_border_width(3); + table.set_row_spacing(6); + table.set_column_spacing(12); + table.set_border_width(18); ((Gtk.Box) get_content_area()).add(table); @@ -343,6 +350,15 @@ public class ExportDialog : Gtk.Dialog { if (current_parameters.specified_format == PhotoFileFormat.JFIF) parameters.quality = current_parameters.quality = QUALITY_ARRAY[quality_combo.get_active()]; } + + //save current settings in config backend for reusing later + Config.Facade config = Config.Facade.get_instance(); + config.set_export_export_format_mode(current_parameters.mode); //ExportFormatMode + config.set_export_photo_file_format(current_parameters.specified_format); //PhotoFileFormat + config.set_export_quality(current_parameters.quality); //quality + config.set_export_export_metadata(current_parameters.export_metadata); //export metadata + config.set_export_constraint(current_constraint); //constraint + config.set_export_scale(current_scale); //scale } else { scale = 0; constraint = ScaleConstraint.ORIGINAL; @@ -354,24 +370,24 @@ public class ExportDialog : Gtk.Dialog { } private void add_label(string text, int x, int y, Gtk.Widget? widget = null) { - Gtk.Alignment left_aligned = new Gtk.Alignment(1, 0.5f, 0, 0); - Gtk.Label new_label = new Gtk.Label.with_mnemonic(text); + new_label.halign = Gtk.Align.END; + new_label.valign = Gtk.Align.CENTER; new_label.set_use_underline(true); if (widget != null) new_label.set_mnemonic_widget(widget); - left_aligned.add(new_label); - - table.attach(left_aligned, x, y, 1, 1); + table.attach(new_label, x, y, 1, 1); } private void add_control(Gtk.Widget widget, int x, int y) { - Gtk.Alignment left_aligned = new Gtk.Alignment(0, 0.5f, 1, 0); - left_aligned.add(widget); + widget.halign = Gtk.Align.FILL; + widget.valign = Gtk.Align.CENTER; + widget.hexpand = true; + widget.vexpand = true; - table.attach(left_aligned, x, y, 1, 1); + table.attach(widget, x, y, 1, 1); } private void on_constraint_changed() { @@ -459,7 +475,7 @@ public class ExportDialog : Gtk.Dialog { namespace ImportUI { private const int REPORT_FAILURE_COUNT = 4; -internal const string SAVE_RESULTS_BUTTON_NAME = _("Save Details..."); +internal const string SAVE_RESULTS_BUTTON_NAME = _("Save Details…"); internal const string SAVE_RESULTS_FILE_CHOOSER_TITLE = _("Save Details"); internal const int SAVE_RESULTS_RESPONSE_ID = 1024; @@ -576,7 +592,7 @@ public string create_result_report_from_manifest(ImportManifest manifest) { // Files Not Imported Because They Weren't Recognized as Photos or Videos // if (manifest.skipped_files.size > 0) { - builder.append(_("Files Not Imported Because They Weren't Recognized as Photos or Videos:") + builder.append(_("Files Not Imported Because They Weren’t Recognized as Photos or Videos:") + "\n\n"); foreach (BatchImportResult result in manifest.skipped_files) { @@ -591,7 +607,7 @@ public string create_result_report_from_manifest(ImportManifest manifest) { // Photos/Videos Not Imported Because They Weren't in a Format Shotwell Understands // if (manifest.skipped_photos.size > 0) { - builder.append(_("Photos/Videos Not Imported Because They Weren't in a Format Shotwell Understands:") + builder.append(_("Photos/Videos Not Imported Because They Weren’t in a Format Shotwell Understands:") + "\n\n"); foreach (BatchImportResult result in manifest.skipped_photos) { @@ -606,11 +622,11 @@ public string create_result_report_from_manifest(ImportManifest manifest) { // Photos/Videos Not Imported Because Shotwell Couldn't Copy Them into its Library // if (manifest.write_failed.size > 0) { - builder.append(_("Photos/Videos Not Imported Because Shotwell Couldn't Copy Them into its Library:") + builder.append(_("Photos/Videos Not Imported Because Shotwell Couldn’t Copy Them into its Library:") + "\n\n"); foreach (BatchImportResult result in manifest.write_failed) { - current_file_summary = (_("couldn't copy %s\n\tto %s")).printf(result.src_identifier, + current_file_summary = (_("couldn’t copy %s\n\tto %s")).printf(result.src_identifier, result.dest_identifier) + "\n\t" + _("error message:") + " " + result.errmsg + "\n\n"; @@ -1414,8 +1430,8 @@ public bool revert_editable_dialog(Gtk.Window owner, Gee.Collection<Photo> photo string headline = (count == 1) ? _("Revert External Edit?") : _("Revert External Edits?"); string msg = ngettext( - "This will destroy all changes made to the external file. Continue?", - "This will destroy all changes made to %d external files. Continue?", + "This will destroy all changes made to the external file. Continue?", + "This will destroy all changes made to %d external files. Continue?", count).printf(count); string action = (count == 1) ? _("Re_vert External Edit") : _("Re_vert External Edits"); @@ -1439,8 +1455,8 @@ public bool remove_offline_dialog(Gtk.Window owner, int count) { return false; string msg = ngettext( - "This will remove the photo from the library. Continue?", - "This will remove %d photos from the library. Continue?", + "This will remove the photo from the library. Continue?", + "This will remove %d photos from the library. Continue?", count).printf(count); Gtk.MessageDialog dialog = new Gtk.MessageDialog(owner, Gtk.DialogFlags.MODAL, @@ -2143,7 +2159,7 @@ public class WelcomeDialog : Gtk.Dialog { content.add(import_content); content.pack_start(instructions, false, false, 0); - hide_button = new Gtk.CheckButton.with_mnemonic(_("_Don't show this message again")); + hide_button = new Gtk.CheckButton.with_mnemonic(_("_Don’t show this message again")); hide_button.set_active(true); content.pack_start(hide_button, false, false, 6); @@ -2716,16 +2732,16 @@ public void remove_from_app(Gee.Collection<MediaSource> sources, string dialog_t string? user_message = null; if ((!photos.is_empty) && (!videos.is_empty)) { - user_message = ngettext("This will remove the photo/video from your Shotwell library. Would you also like to move the file to your desktop trash?\n\nThis action cannot be undone.", - "This will remove %d photos/videos from your Shotwell library. Would you also like to move the files to your desktop trash?\n\nThis action cannot be undone.", + user_message = ngettext("This will remove the photo/video from your Shotwell library. Would you also like to move the file to your desktop trash?\n\nThis action cannot be undone.", + "This will remove %d photos/videos from your Shotwell library. Would you also like to move the files to your desktop trash?\n\nThis action cannot be undone.", sources.size).printf(sources.size); } else if (!videos.is_empty) { - user_message = ngettext("This will remove the video from your Shotwell library. Would you also like to move the file to your desktop trash?\n\nThis action cannot be undone.", - "This will remove %d videos from your Shotwell library. Would you also like to move the files to your desktop trash?\n\nThis action cannot be undone.", + user_message = ngettext("This will remove the video from your Shotwell library. Would you also like to move the file to your desktop trash?\n\nThis action cannot be undone.", + "This will remove %d videos from your Shotwell library. Would you also like to move the files to your desktop trash?\n\nThis action cannot be undone.", sources.size).printf(sources.size); } else { - user_message = ngettext("This will remove the photo from your Shotwell library. Would you also like to move the file to your desktop trash?\n\nThis action cannot be undone.", - "This will remove %d photos from your Shotwell library. Would you also like to move the files to your desktop trash?\n\nThis action cannot be undone.", + user_message = ngettext("This will remove the photo from your Shotwell library. Would you also like to move the file to your desktop trash?\n\nThis action cannot be undone.", + "This will remove %d photos from your Shotwell library. Would you also like to move the files to your desktop trash?\n\nThis action cannot be undone.", sources.size).printf(sources.size); } @@ -2756,8 +2772,8 @@ public void remove_from_app(Gee.Collection<MediaSource> sources, string dialog_t int num_not_removed = not_removed_photos.size + not_removed_videos.size; if (delete_backing && num_not_removed > 0) { string not_deleted_message = - ngettext("The photo or video cannot be moved to your desktop trash. Delete this file?", - "%d photos/videos cannot be moved to your desktop trash. Delete these files?", + ngettext("The photo or video cannot be moved to your desktop trash. Delete this file?", + "%d photos/videos cannot be moved to your desktop trash. Delete these files?", num_not_removed).printf(num_not_removed); Gtk.ResponseType result_delete = remove_from_filesystem_dialog(AppWindow.get_instance(), dialog_title, not_deleted_message); |