mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-08-20 07:38:54 +02:00
glocalfileinfo: Add support for xx-large and x-large thumbnails
Co-Authored-by: António Fernandes <antoniof@gnome.org> Closes: #2767
This commit is contained in:
@@ -1426,8 +1426,10 @@ get_thumbnail_attributes (const char *path,
|
||||
{
|
||||
GChecksum *checksum;
|
||||
char *uri;
|
||||
char *filename;
|
||||
char *filename = NULL;
|
||||
char *basename;
|
||||
const char *size_dirs[4] = { "xx-large", "x-large", "large", "normal" };
|
||||
gsize i;
|
||||
|
||||
uri = g_filename_to_uri (path, NULL, NULL);
|
||||
|
||||
@@ -1437,11 +1439,18 @@ get_thumbnail_attributes (const char *path,
|
||||
basename = g_strconcat (g_checksum_get_string (checksum), ".png", NULL);
|
||||
g_checksum_free (checksum);
|
||||
|
||||
for (i = 0; i < G_N_ELEMENTS (size_dirs); i++)
|
||||
{
|
||||
filename = g_build_filename (g_get_user_cache_dir (),
|
||||
"thumbnails", "large", basename,
|
||||
"thumbnails", size_dirs[i], basename,
|
||||
NULL);
|
||||
|
||||
if (g_file_test (filename, G_FILE_TEST_IS_REGULAR))
|
||||
break;
|
||||
|
||||
g_clear_pointer (&filename, g_free);
|
||||
}
|
||||
|
||||
if (filename)
|
||||
{
|
||||
_g_file_info_set_attribute_byte_string_by_id (info, G_FILE_ATTRIBUTE_ID_THUMBNAIL_PATH, filename);
|
||||
_g_file_info_set_attribute_boolean_by_id (info, G_FILE_ATTRIBUTE_ID_THUMBNAIL_IS_VALID,
|
||||
@@ -1449,20 +1458,6 @@ get_thumbnail_attributes (const char *path,
|
||||
}
|
||||
else
|
||||
{
|
||||
g_free (filename);
|
||||
filename = g_build_filename (g_get_user_cache_dir (),
|
||||
"thumbnails", "normal", basename,
|
||||
NULL);
|
||||
|
||||
if (g_file_test (filename, G_FILE_TEST_IS_REGULAR))
|
||||
{
|
||||
_g_file_info_set_attribute_byte_string_by_id (info, G_FILE_ATTRIBUTE_ID_THUMBNAIL_PATH, filename);
|
||||
_g_file_info_set_attribute_boolean_by_id (info, G_FILE_ATTRIBUTE_ID_THUMBNAIL_IS_VALID,
|
||||
thumbnail_verify (filename, uri, stat_buf));
|
||||
}
|
||||
else
|
||||
{
|
||||
g_free (filename);
|
||||
filename = g_build_filename (g_get_user_cache_dir (),
|
||||
"thumbnails", "fail",
|
||||
"gnome-thumbnail-factory",
|
||||
@@ -1476,7 +1471,6 @@ get_thumbnail_attributes (const char *path,
|
||||
thumbnail_verify (filename, uri, stat_buf));
|
||||
}
|
||||
}
|
||||
}
|
||||
g_free (basename);
|
||||
g_free (filename);
|
||||
g_free (uri);
|
||||
|
@@ -35,6 +35,8 @@
|
||||
static const char * SIZES_NAMES[] = {
|
||||
"normal",
|
||||
"large",
|
||||
"x-large",
|
||||
"xx-large",
|
||||
};
|
||||
|
||||
static GFile *
|
||||
|
Reference in New Issue
Block a user