added options for metadata - not yet used
authorVladimir Nadvornik <nadvornik@suse.cz>
Sat, 20 Dec 2008 23:18:20 +0000 (23:18 +0000)
committerVladimir Nadvornik <nadvornik@suse.cz>
Sat, 20 Dec 2008 23:18:20 +0000 (23:18 +0000)
src/cache.c
src/metadata.c
src/options.c
src/options.h
src/preferences.c
src/rcfile.c

index c288f78..13e3d06 100644 (file)
@@ -626,7 +626,7 @@ gchar *cache_get_location(CacheType type, const gchar *source, gint include_name
                }
 
        if (((type != CACHE_TYPE_METADATA && options->thumbnails.cache_into_dirs) ||
-            (type == CACHE_TYPE_METADATA && options->enable_metadata_dirs)) &&
+            (type == CACHE_TYPE_METADATA && options->metadata.enable_metadata_dirs)) &&
            access_file(base, W_OK))
                {
                path = g_build_filename(base, cache_local, name, NULL);
@@ -681,7 +681,7 @@ gchar *cache_find_location(CacheType type, const gchar *source)
 
        if (type == CACHE_TYPE_METADATA)
                {
-               prefer_local = options->enable_metadata_dirs;
+               prefer_local = options->metadata.enable_metadata_dirs;
                }
        else
                {
index 80d9592..c6d6d89 100644 (file)
@@ -87,7 +87,7 @@ static gboolean metadata_write_queue_idle_cb(gpointer data)
 
 gboolean metadata_write_perform(FileData *fd)
 {
-       if (options->save_metadata_in_image_file &&
+       if (options->metadata.save_in_image_file &&
            exif_write_fd(fd))
                {
                metadata_legacy_delete(fd);
index e13f3b4..3602988 100644 (file)
@@ -41,7 +41,6 @@ ConfOptions *init_options(ConfOptions *options)
        options->documentation.htmldir = NULL;
        options->documentation.helpdir = NULL;
        options->duplicates_similarity_threshold = 99;
-       options->enable_metadata_dirs = FALSE;
        
        options->file_filter.disable = FALSE;
        options->file_filter.show_dot_directory = FALSE;
@@ -137,7 +136,16 @@ ConfOptions *init_options(ConfOptions *options)
 
        options->progressive_key_scrolling = TRUE;
        
-       options->save_metadata_in_image_file = FALSE;
+       options->metadata.enable_metadata_dirs = FALSE;
+       options->metadata.save_in_image_file = FALSE;
+       options->metadata.save_legacy_IPTC = FALSE;
+       options->metadata.warn_on_write_problems = TRUE;
+       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_on_image_change = FALSE;
+       options->metadata.confirm_on_dir_change = TRUE;
        
        options->show_copy_path = TRUE;
        options->show_icon_names = TRUE;
index bfe372b..62af984 100644 (file)
@@ -24,8 +24,6 @@ struct _ConfOptions
        gboolean show_copy_path;
 
        /* various */
-       gboolean enable_metadata_dirs;
-
        gboolean tree_descend_subdirs;
 
        gboolean lazy_image_sync;
@@ -36,7 +34,6 @@ struct _ConfOptions
        gint open_recent_list_maxsize;
        gint dnd_icon_size;
 
-       gboolean save_metadata_in_image_file;
 
        /* start up */
        struct {
@@ -253,6 +250,25 @@ struct _ConfOptions
                gchar *helpdir;
                gchar *htmldir;
        } documentation;
+       
+       /* Metadata */
+       struct {
+               gboolean enable_metadata_dirs;
+
+               gboolean save_in_image_file;
+               gboolean save_legacy_IPTC;
+               gboolean warn_on_write_problems;
+
+               gboolean save_legacy_format;
+               
+               gboolean sync_grouped_files;
+               
+               gboolean confirm_write;
+               gint confirm_timeout;
+               gboolean confirm_on_image_change;
+               gboolean confirm_on_dir_change;
+       } metadata;
+
 };
 
 ConfOptions *options;
index d51fb5c..9f3c9c4 100644 (file)
@@ -260,7 +260,7 @@ static void config_window_apply(void)
        options->thumbnails.use_xvpics = c_options->thumbnails.use_xvpics;
 #endif
        options->thumbnails.spec_standard = c_options->thumbnails.spec_standard;
-       options->enable_metadata_dirs = c_options->enable_metadata_dirs;
+       options->metadata.enable_metadata_dirs = c_options->metadata.enable_metadata_dirs;
        options->file_filter.show_hidden_files = c_options->file_filter.show_hidden_files;
        options->file_filter.show_dot_directory = c_options->file_filter.show_dot_directory;
 
@@ -326,7 +326,7 @@ static void config_window_apply(void)
                layout_copy_path_update_all();
                }
 
-       options->save_metadata_in_image_file = c_options->save_metadata_in_image_file;
+       options->metadata.save_in_image_file = c_options->metadata.save_in_image_file;
 
 #ifdef DEBUG
        set_debug_level(debug_c);
@@ -1510,10 +1510,10 @@ static void config_tab_advanced(GtkWidget *notebook)
        group = pref_group_new(vbox, FALSE, _("Miscellaneous"), GTK_ORIENTATION_VERTICAL);
 
        pref_checkbox_new_int(group, _("Store metadata and cache files in source image's directory"),
-                             options->enable_metadata_dirs, &c_options->enable_metadata_dirs);
+                             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"),
-                             options->save_metadata_in_image_file, &c_options->save_metadata_in_image_file);
+                             options->metadata.save_in_image_file, &c_options->metadata.save_in_image_file);
 
        pref_spin_new_int(group, _("Custom similarity threshold:"), NULL,
                          0, 100, 1, options->duplicates_similarity_threshold, (int *)&c_options->duplicates_similarity_threshold);
index b26f758..5cc5351 100644 (file)
@@ -274,8 +274,6 @@ gboolean save_options_to(const gchar *utf8_path, ConfOptions *options)
        WRITE_SEPARATOR();
 
        WRITE_BOOL(progressive_key_scrolling);
-       WRITE_BOOL(enable_metadata_dirs);
-       WRITE_BOOL(save_metadata_in_image_file);
 
        WRITE_UINT(duplicates_similarity_threshold);
        WRITE_SEPARATOR();
@@ -541,6 +539,18 @@ gboolean save_options_to(const gchar *utf8_path, ConfOptions *options)
                write_int_option(ssi, (gchar *)ExifUIList[i].key, ExifUIList[i].current);
                }
 
+       WRITE_SUBTITLE("Metadata Options");
+       WRITE_BOOL(metadata.enable_metadata_dirs);
+       WRITE_BOOL(metadata.save_in_image_file); 
+       WRITE_BOOL(metadata.save_legacy_IPTC);
+       WRITE_BOOL(metadata.warn_on_write_problems);
+       WRITE_BOOL(metadata.save_legacy_format);
+       WRITE_BOOL(metadata.sync_grouped_files);
+       WRITE_BOOL(metadata.confirm_write);
+       WRITE_INT(metadata.confirm_timeout);
+       WRITE_BOOL(metadata.confirm_on_image_change);
+       WRITE_BOOL(metadata.confirm_on_dir_change);
+
        WRITE_SUBTITLE("Documentation Options");
        WRITE_CHAR(documentation.helpdir);
        WRITE_CHAR(documentation.htmldir);
@@ -663,9 +673,6 @@ gboolean load_options_from(const gchar *utf8_path, ConfOptions *options)
 
                READ_BOOL(progressive_key_scrolling);
 
-               READ_BOOL(enable_metadata_dirs);
-               READ_BOOL(save_metadata_in_image_file);
-
                READ_BOOL(mousewheel_scrolls);
 
                READ_INT(open_recent_list_maxsize);
@@ -901,7 +908,19 @@ gboolean load_options_from(const gchar *utf8_path, ConfOptions *options)
                                        ExifUIList[i].current = strtol(value, NULL, 10);
                        continue;
                        }
-               
+
+               /* metadata */          
+               COMPAT_READ_BOOL(enable_metadata_dirs, metadata.enable_metadata_dirs);
+               COMPAT_READ_BOOL(save_metadata_in_image_file, metadata.save_in_image_file); /* 2008/12/20 */
+               READ_BOOL(metadata.save_legacy_IPTC);
+               READ_BOOL(metadata.warn_on_write_problems);
+               READ_BOOL(metadata.save_legacy_format);
+               READ_BOOL(metadata.sync_grouped_files);
+               READ_BOOL(metadata.confirm_write);
+               READ_INT(metadata.confirm_timeout);
+               READ_BOOL(metadata.confirm_on_image_change);
+               READ_BOOL(metadata.confirm_on_dir_change);
+
                /* Documentation */
                READ_CHAR(documentation.helpdir);
                READ_CHAR(documentation.htmldir);