improved metadata preferences
authorVladimir Nadvornik <nadvornik@suse.cz>
Tue, 20 Jan 2009 22:53:09 +0000 (22:53 +0000)
committerVladimir Nadvornik <nadvornik@suse.cz>
Tue, 20 Jan 2009 22:53:09 +0000 (22:53 +0000)
src/metadata.c
src/options.c
src/options.h
src/preferences.c
src/rcfile.c

index a31f5b7..0ee93f5 100644 (file)
@@ -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);
                }
index 432e7ad..67efb89 100644 (file)
@@ -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;
        
index ff3ef0c..d6ce1a4 100644 (file)
@@ -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;
index d2156a7..0c8212a 100644 (file)
@@ -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"),
index f191db5..7b1f2d7 100644 (file)
@@ -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);