aboutsummaryrefslogtreecommitdiff
path: root/libdino
diff options
context:
space:
mode:
authorfiaxh <git@lightrise.org>2025-04-07 18:08:14 +0200
committerfiaxh <git@lightrise.org>2025-04-07 18:12:33 +0200
commitea54d659e5729ec9d2493ad1e4a268425b180891 (patch)
tree2383f7b5a75e7af80167294932db576d3972a512 /libdino
parentd621c9653934b4d16bcb257ca4aff584c6ebc20e (diff)
Fix sending images with unknown formats
Diffstat (limited to 'libdino')
-rw-r--r--libdino/src/service/sfs_metadata.vala3
-rw-r--r--libdino/src/service/util.vala11
2 files changed, 13 insertions, 1 deletions
diff --git a/libdino/src/service/sfs_metadata.vala b/libdino/src/service/sfs_metadata.vala
index ff2a57b4..dff6f7bf 100644
--- a/libdino/src/service/sfs_metadata.vala
+++ b/libdino/src/service/sfs_metadata.vala
@@ -36,7 +36,8 @@ namespace Dino {
public class ImageFileMetadataProvider: Dino.FileMetadataProvider, Object {
public bool supports_file(File file) {
- return file.query_info("*", FileQueryInfoFlags.NONE).get_content_type().has_prefix("image");
+ string mime_type = file.query_info("*", FileQueryInfoFlags.NONE).get_content_type();
+ return Dino.Util.is_pixbuf_supported_mime_type(mime_type);
}
private const int[] THUMBNAIL_DIMS = { 1, 2, 3, 4, 8 };
diff --git a/libdino/src/service/util.vala b/libdino/src/service/util.vala
index 1d04ffcf..6eacdd33 100644
--- a/libdino/src/service/util.vala
+++ b/libdino/src/service/util.vala
@@ -29,6 +29,17 @@ public class Util {
assert_not_reached();
}
}
+
+ public static bool is_pixbuf_supported_mime_type(string mime_type) {
+ if (mime_type == null) return false;
+
+ foreach (Gdk.PixbufFormat pixbuf_format in Gdk.Pixbuf.get_formats()) {
+ foreach (string pixbuf_mime in pixbuf_format.get_mime_types()) {
+ if (pixbuf_mime == mime_type) return true;
+ }
+ }
+ return false;
+ }
}
}