summaryrefslogtreecommitdiff
path: root/tumbler
diff options
context:
space:
mode:
authorJannis Pohlmann <jannis@xfce.org>2010-01-07 10:05:25 +0100
committerJannis Pohlmann <jannis@xfce.org>2010-01-07 10:09:42 +0100
commite461ed713aee38e8e62fd66e0f8db71384a27eaf (patch)
tree9d0f3bb677c719f3e482a1e8b04a920cf66f9299 /tumbler
parent549c7b3bc44d2d67a94776bb49ce21a61d1aed28 (diff)
downloadtumbler-e461ed713aee38e8e62fd66e0f8db71384a27eaf.tar.gz
Report unsupported flavors back to clients via an error signal.
Thanks to Philip for the original commit.
Diffstat (limited to 'tumbler')
-rw-r--r--tumbler/tumbler-cache.c5
-rw-r--r--tumbler/tumbler-error.h1
-rw-r--r--tumbler/tumbler-file-info.c5
3 files changed, 8 insertions, 3 deletions
diff --git a/tumbler/tumbler-cache.c b/tumbler/tumbler-cache.c
index a131a92..cc554dd 100644
--- a/tumbler/tumbler-cache.c
+++ b/tumbler/tumbler-cache.c
@@ -91,9 +91,12 @@ tumbler_cache_get_thumbnail (TumblerCache *cache,
{
g_return_val_if_fail (TUMBLER_IS_CACHE (cache), NULL);
g_return_val_if_fail (uri != NULL && *uri != '\0', NULL);
- g_return_val_if_fail (TUMBLER_IS_THUMBNAIL_FLAVOR (flavor), NULL);
+ g_return_val_if_fail (flavor == NULL || TUMBLER_IS_THUMBNAIL_FLAVOR (flavor), NULL);
g_return_val_if_fail (TUMBLER_CACHE_GET_IFACE (cache)->get_thumbnail != NULL, NULL);
+ if (flavor == NULL)
+ return NULL;
+
return (TUMBLER_CACHE_GET_IFACE (cache)->get_thumbnail) (cache, uri, flavor);
}
diff --git a/tumbler/tumbler-error.h b/tumbler/tumbler-error.h
index a8472ad..df2ec6b 100644
--- a/tumbler/tumbler-error.h
+++ b/tumbler/tumbler-error.h
@@ -45,6 +45,7 @@ typedef enum /*< enum >*/
TUMBLER_ERROR_INVALID_FORMAT,
TUMBLER_ERROR_IS_THUMBNAIL,
TUMBLER_ERROR_SAVE_FAILED,
+ TUMBLER_ERROR_UNSUPPORTED_FLAVOR,
} TumblerErrorEnum;
G_END_DECLS
diff --git a/tumbler/tumbler-file-info.c b/tumbler/tumbler-file-info.c
index 3ab47eb..c4f162d 100644
--- a/tumbler/tumbler-file-info.c
+++ b/tumbler/tumbler-file-info.c
@@ -145,7 +145,8 @@ tumbler_file_info_finalize (GObject *object)
if (info->thumbnail != NULL)
g_object_unref (info->thumbnail);
- g_object_unref (info->flavor);
+ if (info->flavor != NULL)
+ g_object_unref (info->flavor);
g_free (info->mime_type);
g_free (info->uri);
@@ -222,7 +223,7 @@ tumbler_file_info_new (const gchar *uri,
{
g_return_val_if_fail (uri != NULL && *uri != '\0', NULL);
g_return_val_if_fail (mime_type != NULL && *mime_type != '\0', NULL);
- g_return_val_if_fail (TUMBLER_IS_THUMBNAIL_FLAVOR (flavor), NULL);
+ g_return_val_if_fail (flavor == NULL || TUMBLER_IS_THUMBNAIL_FLAVOR (flavor), NULL);
return g_object_new (TUMBLER_TYPE_FILE_INFO, "uri", uri, "mime-type", mime_type,
"flavor", flavor, NULL);