diff src/cache.c @ 1224:ebfd305d902e

improved sidecar writting private metadata can be saved in xmp format
author nadvornik
date Fri, 26 Dec 2008 14:12:36 +0000
parents c45cc5cf3c4d
children 8b89e3ff286b
line wrap: on
line diff
--- a/src/cache.c	Thu Dec 25 12:39:34 2008 +0000
+++ b/src/cache.c	Fri Dec 26 14:12:36 2008 +0000
@@ -603,6 +603,11 @@
 			*cache_local = GQ_CACHE_LOCAL_METADATA;
 			*cache_ext = GQ_CACHE_EXT_METADATA;
 			break;
+		case CACHE_TYPE_XMP_METADATA:
+			*cache_rc = get_metadata_cache_dir();
+			*cache_local = GQ_CACHE_LOCAL_METADATA;
+			*cache_ext = GQ_CACHE_EXT_XMP_METADATA;
+			break;
 		}
 }
 
@@ -625,8 +630,8 @@
 		name = g_strconcat(filename_from_path(source), cache_ext, NULL);
 		}
 
-	if (((type != CACHE_TYPE_METADATA && options->thumbnails.cache_into_dirs) ||
-	     (type == CACHE_TYPE_METADATA && options->metadata.enable_metadata_dirs)) &&
+	if (((type != CACHE_TYPE_METADATA && type != CACHE_TYPE_XMP_METADATA && options->thumbnails.cache_into_dirs) ||
+	     ((type == CACHE_TYPE_METADATA || type == CACHE_TYPE_XMP_METADATA) && options->metadata.enable_metadata_dirs)) &&
 	    access_file(base, W_OK))
 		{
 		path = g_build_filename(base, cache_local, name, NULL);
@@ -679,7 +684,7 @@
 
 	cache_path_parts(type, &cache_rc, &cache_local, &cache_ext);
 
-	if (type == CACHE_TYPE_METADATA)
+	if (type == CACHE_TYPE_METADATA || type == CACHE_TYPE_XMP_METADATA)
 		{
 		prefer_local = options->metadata.enable_metadata_dirs;
 		}