Author: akv
Date: 2013-04-21 22:42:10 +0200 (Sun, 21 Apr 2013)
New Revision: 4351
Modified:
branches/4175-enfuse/librawstudio/rs-metadata.c
branches/4175-enfuse/librawstudio/rs-metadata.h
Log:
Created rs_metadata_dotdir_helper() to help generate cache/thumbnail filenames.
Modified: branches/4175-enfuse/librawstudio/rs-metadata.c
===================================================================
--- branches/4175-enfuse/librawstudio/rs-metadata.c 2013-04-21 16:21:56 UTC
(rev 4350)
+++ branches/4175-enfuse/librawstudio/rs-metadata.c 2013-04-21 20:42:10 UTC
(rev 4351)
@@ -121,24 +121,18 @@
void
rs_metadata_cache_save(RSMetadata *metadata, const gchar *filename)
{
- gchar *basename;
- gchar *dotdir;
+ g_return_if_fail(filename != NULL);
+
gchar *cache_filename;
gchar *thumb_filename;
xmlTextWriterPtr writer;
static GStaticMutex lock = G_STATIC_MUTEX_INIT;
g_return_if_fail(RS_IS_METADATA(metadata));
- g_return_if_fail(filename != NULL);
- g_return_if_fail(g_path_is_absolute(filename));
- if (!(dotdir = rs_dotdir_get(filename)))
- return;
-
g_static_mutex_lock(&lock);
- basename = g_path_get_basename(filename);
- cache_filename = g_strdup_printf("%s/%s.metacache.xml", dotdir,
basename);
+ cache_filename = rs_metadata_dotdir_helper(filename, DOTDIR_METACACHE);
writer = xmlNewTextWriterFilename(cache_filename, 0);
if (writer)
@@ -198,20 +192,18 @@
if (metadata->thumbnail)
{
- thumb_filename = g_strdup_printf("%s/%s.thumb.jpg", dotdir,
basename);
+ thumb_filename = rs_metadata_dotdir_helper(filename,
DOTDIR_THUMB);
gdk_pixbuf_save(metadata->thumbnail, thumb_filename, "jpeg",
NULL, "quality", "90", NULL);
g_free(thumb_filename);
}
-
- g_free(basename);
}
static gboolean
rs_metadata_cache_load(RSMetadata *metadata, const gchar *filename)
{
+ g_return_if_fail(filename != NULL);
+
gboolean ret = FALSE;
- gchar *basename;
- gchar *dotdir;
gchar *cache_filename;
gchar *thumb_filename;
xmlDocPtr doc;
@@ -220,18 +212,10 @@
gint version = 0;
g_return_val_if_fail(RS_IS_METADATA(metadata), FALSE);
- g_return_val_if_fail(filename != NULL, FALSE);
- g_return_val_if_fail(g_path_is_absolute(filename), FALSE);
- if (!(dotdir = rs_dotdir_get(filename)))
- return FALSE;
-
- basename = g_path_get_basename(filename);
-
- cache_filename = g_strdup_printf("%s/%s.metacache.xml", dotdir,
basename);
+ cache_filename = rs_metadata_dotdir_helper(filename, DOTDIR_METACACHE);
if (!g_file_test(cache_filename, G_FILE_TEST_IS_REGULAR))
{
- g_free(basename);
g_free(cache_filename);
return FALSE;
}
@@ -409,22 +393,20 @@
/* If the version is less than 4, delete the PNG thunbnail, we're using
JPEG now */
if (version < 4)
{
- thumb_filename = g_strdup_printf("%s/%s.thumb.png", dotdir,
basename);
+ thumb_filename = rs_metadata_dotdir_helper(filename,
DOTDIR_THUMB_PNG);
g_unlink(thumb_filename);
g_free(thumb_filename);
}
if (ret == TRUE)
{
- thumb_filename = g_strdup_printf("%s/%s.thumb.jpg", dotdir,
basename);
+ thumb_filename = rs_metadata_dotdir_helper(filename,
DOTDIR_THUMB);
metadata->thumbnail = gdk_pixbuf_new_from_file(thumb_filename,
NULL);
g_free(thumb_filename);
if (!metadata->thumbnail)
ret = FALSE;
}
- g_free(basename);
-
return ret;
}
#undef METACACHEVERSION
@@ -593,30 +575,38 @@
void
rs_metadata_delete_cache(const gchar *filename)
{
- gchar *basename;
- gchar *dotdir;
+ g_return_if_fail(filename != NULL);
+
gchar *cache_filename;
gchar *thumb_filename;
- g_return_if_fail(filename != NULL);
- g_return_if_fail(g_path_is_absolute(filename));
-
- if (!(dotdir = rs_dotdir_get(filename)))
- return;
-
- basename = g_path_get_basename(filename);
-
/* Delete the metadata cache itself */
- cache_filename = g_strdup_printf("%s/%s.metacache.xml", dotdir,
basename);
+ cache_filename = rs_metadata_dotdir_helper(filename, DOTDIR_METACACHE);
g_unlink(cache_filename);
g_free(cache_filename);
/* Delete the thumbnail */
- thumb_filename = g_strdup_printf("%s/%s.thumb.jpg", dotdir, basename);
+ thumb_filename = rs_metadata_dotdir_helper(filename, DOTDIR_THUMB);
g_unlink(thumb_filename);
g_free(thumb_filename);
+}
- /* Clean up please */
- g_free(dotdir);
- g_free(basename);
+gchar *
+rs_metadata_dotdir_helper(const gchar *filename, const gchar *extension)
+{
+ gchar *basename;
+ gchar *dotdir;
+ gchar *temp;
+
+ g_assert(filename != NULL);
+ g_assert(g_path_is_absolute(filename));
+ g_assert((dotdir = rs_dotdir_get(filename)));
+ g_assert((basename = g_path_get_basename(filename)));
+
+ temp = g_strdup_printf("%s/%s.%s", dotdir, basename, extension);
+
+ g_free(dotdir);
+ g_free(basename);
+
+ return temp;
}
Modified: branches/4175-enfuse/librawstudio/rs-metadata.h
===================================================================
--- branches/4175-enfuse/librawstudio/rs-metadata.h 2013-04-21 16:21:56 UTC
(rev 4350)
+++ branches/4175-enfuse/librawstudio/rs-metadata.h 2013-04-21 20:42:10 UTC
(rev 4351)
@@ -24,6 +24,10 @@
G_BEGIN_DECLS
+#define DOTDIR_METACACHE "metacache.xml"
+#define DOTDIR_THUMB "thumb.jpg"
+#define DOTDIR_THUMB_PNG "thumb.png"
+
#define RS_TYPE_METADATA rs_metadata_get_type()
#define RS_METADATA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), RS_TYPE_METADATA,
RSMetadata))
#define RS_METADATA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass),
RS_TYPE_METADATA, RSMetadataClass))
@@ -117,6 +121,8 @@
*/
extern void rs_metadata_delete_cache(const gchar *filename);
+extern gchar * rs_metadata_dotdir_helper(const gchar *filename, const gchar
*extension);
+
G_END_DECLS
#endif /* RS_METADATA_H */
_______________________________________________
Rawstudio-commit mailing list
[email protected]
http://rawstudio.org/cgi-bin/mailman/listinfo/rawstudio-commit