From e3086ee765ba371f1d6774d869d1ec7ba1f37590 Mon Sep 17 00:00:00 2001 From: Vladimir Nadvornik Date: Tue, 20 Jan 2009 22:53:09 +0000 Subject: [PATCH] improved metadata preferences --- src/metadata.c | 2 +- src/options.c | 3 ++- src/options.h | 1 + src/preferences.c | 22 ++++++++++++++++------ src/rcfile.c | 2 ++ 5 files changed, 22 insertions(+), 8 deletions(-) diff --git a/src/metadata.c b/src/metadata.c index a31f5b7b..0ee93f5d 100644 --- a/src/metadata.c +++ b/src/metadata.c @@ -64,7 +64,7 @@ static void metadata_write_queue_add(FileData *fd) metadata_write_idle_id = -1; } - if (options->metadata.confirm_timeout > 0) + if (options->metadata.confirm_after_timeout) { metadata_write_idle_id = g_timeout_add(options->metadata.confirm_timeout * 1000, metadata_write_queue_idle_cb, NULL); } diff --git a/src/options.c b/src/options.c index 432e7adb..67efb89e 100644 --- a/src/options.c +++ b/src/options.c @@ -143,7 +143,8 @@ ConfOptions *init_options(ConfOptions *options) options->metadata.save_legacy_format = FALSE; options->metadata.sync_grouped_files = TRUE; options->metadata.confirm_write = TRUE; - options->metadata.confirm_timeout = 0; + options->metadata.confirm_after_timeout = FALSE; + options->metadata.confirm_timeout = 10; options->metadata.confirm_on_image_change = FALSE; options->metadata.confirm_on_dir_change = TRUE; diff --git a/src/options.h b/src/options.h index ff3ef0c3..d6ce1a47 100644 --- a/src/options.h +++ b/src/options.h @@ -269,6 +269,7 @@ struct _ConfOptions gboolean confirm_write; gint confirm_timeout; + gboolean confirm_after_timeout; gboolean confirm_on_image_change; gboolean confirm_on_dir_change; } metadata; diff --git a/src/preferences.c b/src/preferences.c index d2156a7f..0c8212a9 100644 --- a/src/preferences.c +++ b/src/preferences.c @@ -346,6 +346,7 @@ static void config_window_apply(void) options->metadata.sync_grouped_files = c_options->metadata.sync_grouped_files; options->metadata.confirm_write = c_options->metadata.confirm_write; options->metadata.confirm_timeout = c_options->metadata.confirm_timeout; + options->metadata.confirm_after_timeout = c_options->metadata.confirm_after_timeout; options->metadata.confirm_on_image_change = c_options->metadata.confirm_on_image_change; options->metadata.confirm_on_dir_change = c_options->metadata.confirm_on_dir_change; @@ -1669,25 +1670,34 @@ static void config_tab_advanced(GtkWidget *notebook) pref_checkbox_new_int(group, _("Store metadata and cache files in source image's directory"), options->metadata.enable_metadata_dirs, &c_options->metadata.enable_metadata_dirs); - pref_checkbox_new_int(group, _("Store keywords and comments as XMP tags in image files"), + ct_button = pref_checkbox_new_int(group, _("Store keywords and comments as XMP tags in image files"), options->metadata.save_in_image_file, &c_options->metadata.save_in_image_file); - pref_checkbox_new_int(group, _("Store keywords and comments also in legacy IPTC tags"), + hbox = pref_box_new(group, FALSE, GTK_ORIENTATION_VERTICAL, PREF_PAD_SPACE); + pref_checkbox_link_sensitivity(ct_button, hbox); + + pref_checkbox_new_int(hbox, _("Store keywords and comments also in legacy IPTC tags"), options->metadata.save_legacy_IPTC, &c_options->metadata.save_legacy_IPTC); - pref_checkbox_new_int(group, _("Warn if the image files are unwritable"), + pref_checkbox_new_int(hbox, _("Warn if the image files are unwritable"), options->metadata.warn_on_write_problems, &c_options->metadata.warn_on_write_problems); + pref_checkbox_new_int(hbox, _("Ask before writing to image files"), + options->metadata.confirm_write, &c_options->metadata.confirm_write); + pref_checkbox_new_int(group, _("Save metadata in GQview legacy metadata format"), options->metadata.save_legacy_format, &c_options->metadata.save_legacy_format); pref_checkbox_new_int(group, _("Write the same keywords and comment to all files in a group"), options->metadata.sync_grouped_files, &c_options->metadata.sync_grouped_files); - pref_checkbox_new_int(group, _("Ask before writing to image files"), - options->metadata.confirm_write, &c_options->metadata.confirm_write); + ct_button = pref_checkbox_new_int(group, _("Write metadata after timeout"), + options->metadata.confirm_after_timeout, &c_options->metadata.confirm_after_timeout); + + hbox = pref_box_new(group, FALSE, GTK_ORIENTATION_HORIZONTAL, PREF_PAD_SPACE); + pref_checkbox_link_sensitivity(ct_button, hbox); - pref_spin_new_int(group, _("Write metadata after timeout (seconds):"), NULL, 0, 900, 1, + pref_spin_new_int(hbox, _("Timeout (seconds):"), NULL, 0, 900, 1, options->metadata.confirm_timeout, &c_options->metadata.confirm_timeout); pref_checkbox_new_int(group, _("Write metadata on image change"), diff --git a/src/rcfile.c b/src/rcfile.c index f191db53..7b1f2d78 100644 --- a/src/rcfile.c +++ b/src/rcfile.c @@ -547,6 +547,7 @@ gboolean save_options_to(const gchar *utf8_path, ConfOptions *options) WRITE_BOOL(metadata.sync_grouped_files); WRITE_BOOL(metadata.confirm_write); WRITE_INT(metadata.confirm_timeout); + WRITE_BOOL(metadata.confirm_after_timeout); WRITE_BOOL(metadata.confirm_on_image_change); WRITE_BOOL(metadata.confirm_on_dir_change); @@ -914,6 +915,7 @@ gboolean load_options_from(const gchar *utf8_path, ConfOptions *options) READ_BOOL(metadata.save_legacy_format); READ_BOOL(metadata.sync_grouped_files); READ_BOOL(metadata.confirm_write); + READ_BOOL(metadata.confirm_after_timeout); READ_INT(metadata.confirm_timeout); READ_BOOL(metadata.confirm_on_image_change); READ_BOOL(metadata.confirm_on_dir_change); -- 2.20.1