summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBastien Nocera <hadess@hadess.net>2020-12-17 12:14:30 +0100
committerBastien Nocera <hadess@hadess.net>2020-12-17 12:30:05 +0100
commit8d91169fa60acf598a448caabcf776670de23eec (patch)
tree703730221065eaf27c1e06f2c0869ae232e9bbdc
parentaf2f724897c35167166436339faca1c9ca446684 (diff)
downloadgnome-desktop-8d91169fa60acf598a448caabcf776670de23eec.tar.gz
thumbnail: Factor out size to dirname and pixel size computation
This will make it easier to add new thumbnail sizes.
-rw-r--r--libgnome-desktop/gnome-desktop-thumbnail.c33
1 files changed, 28 insertions, 5 deletions
diff --git a/libgnome-desktop/gnome-desktop-thumbnail.c b/libgnome-desktop/gnome-desktop-thumbnail.c
index ad031c25..558ef868 100644
--- a/libgnome-desktop/gnome-desktop-thumbnail.c
+++ b/libgnome-desktop/gnome-desktop-thumbnail.c
@@ -303,6 +303,32 @@ get_thumbnailers_dirs (void)
return g_once (&once_init, init_thumbnailers_dirs, NULL);
}
+static const char *
+gnome_desktop_thumbnail_size_to_dirname (GnomeDesktopThumbnailSize size)
+{
+ switch (size) {
+ case GNOME_DESKTOP_THUMBNAIL_SIZE_NORMAL:
+ return "normal";
+ case GNOME_DESKTOP_THUMBNAIL_SIZE_LARGE:
+ return "large";
+ default:
+ g_assert_not_reached ();
+ }
+}
+
+static guint
+gnome_desktop_thumbnail_size_to_size (GnomeDesktopThumbnailSize size)
+{
+ switch (size) {
+ case GNOME_DESKTOP_THUMBNAIL_SIZE_NORMAL:
+ return 128;
+ case GNOME_DESKTOP_THUMBNAIL_SIZE_LARGE:
+ return 256;
+ default:
+ g_assert_not_reached ();
+ }
+}
+
/* These should be called with the lock held */
static void
gnome_desktop_thumbnail_factory_register_mime_types (GnomeDesktopThumbnailFactory *factory,
@@ -761,7 +787,7 @@ thumbnail_path (const char *uri,
file = thumbnail_filename (uri);
path = g_build_filename (g_get_user_cache_dir (),
"thumbnails",
- size == GNOME_DESKTOP_THUMBNAIL_SIZE_LARGE ? "large" : "normal",
+ gnome_desktop_thumbnail_size_to_dirname (size),
file,
NULL);
g_free (file);
@@ -1047,10 +1073,7 @@ gnome_desktop_thumbnail_factory_generate_thumbnail (GnomeDesktopThumbnailFactory
/* Doesn't access any volatile fields in factory, so it's threadsafe */
- size = 128;
- if (factory->priv->size == GNOME_DESKTOP_THUMBNAIL_SIZE_LARGE)
- size = 256;
-
+ size = gnome_desktop_thumbnail_size_to_size (factory->priv->size);
pixbuf = get_preview_thumbnail (uri, size);
if (pixbuf != NULL)
return pixbuf;