diff src/cache.c @ 1145:3a7af6a8cd5f

Use functions to return directories instead of constants. Following functions were added: get_collections_dir() get_metadata_cache_dir() get_rc_dir() get_thumbnails_cache_dir() get_trash_dir() They return the full directory path.
author zas_
date Sat, 15 Nov 2008 17:30:45 +0000
parents 1646720364cf
children 95860439070b
line wrap: on
line diff
--- a/src/cache.c	Sat Nov 15 10:35:43 2008 +0000
+++ b/src/cache.c	Sat Nov 15 17:30:45 2008 +0000
@@ -623,17 +623,17 @@
 	switch (type)
 		{
 		case CACHE_TYPE_THUMB:
-			*cache_rc = GQ_CACHE_RC_THUMB;
+			*cache_rc = get_thumbnails_cache_dir();
 			*cache_local = GQ_CACHE_LOCAL_THUMB;
 			*cache_ext = GQ_CACHE_EXT_THUMB;
 			break;
 		case CACHE_TYPE_SIM:
-			*cache_rc = GQ_CACHE_RC_THUMB;
+			*cache_rc = get_thumbnails_cache_dir();
 			*cache_local = GQ_CACHE_LOCAL_THUMB;
 			*cache_ext = GQ_CACHE_EXT_SIM;
 			break;
 		case CACHE_TYPE_METADATA:
-			*cache_rc = GQ_CACHE_RC_METADATA;
+			*cache_rc = get_metadata_cache_dir();
 			*cache_local = GQ_CACHE_LOCAL_METADATA;
 			*cache_ext = GQ_CACHE_EXT_METADATA;
 			break;
@@ -669,7 +669,7 @@
 
 	if (!path)
 		{
-		path = g_build_filename(homedir(), cache_rc, base, name, NULL);
+		path = g_build_filename(cache_rc, base, name, NULL);
 		if (mode) *mode = 0755;
 		}
 
@@ -695,7 +695,7 @@
 {
 	gchar *path;
 	gchar *name = g_strconcat(source, cache_ext, NULL);
-	path = g_build_filename(homedir(), cache_rc, name, NULL);
+	path = g_build_filename(cache_rc, name, NULL);
 	g_free(name);
 
 	return path;
@@ -794,4 +794,25 @@
 
 	return ret;
 }
+
+const gchar *get_thumbnails_cache_dir(void)
+{
+	static gchar *thumbnails_cache_dir = NULL;
+
+	if (thumbnails_cache_dir) return thumbnails_cache_dir;
+
+	thumbnails_cache_dir = g_build_filename(get_rc_dir(), GQ_CACHE_THUMB, NULL);
+	return thumbnails_cache_dir;
+}
+
+const gchar *get_metadata_cache_dir(void)
+{
+	static gchar *metadata_cache_dir = NULL;
+
+	if (metadata_cache_dir) return metadata_cache_dir;
+
+	metadata_cache_dir = g_build_filename(get_rc_dir(), GQ_CACHE_METADATA, NULL);
+	return metadata_cache_dir;
+}
+
 /* vim: set shiftwidth=8 softtabstop=0 cindent cinoptions={1s: */