# HG changeset patch # User Colin Clark # Date 1505298118 -3600 # Node ID e65df743a5a1a5d492ce01dd4a66de14cb484fc9 # Parent 9c435c86a296310c3e88b30d49ebe1c65fe3f814 Ref #510: Rudimentary video support https://github.com/BestImageViewer/geeqie/issues/510 Implement icons for FORMAT_CLASS diff -r 9c435c86a296 -r e65df743a5a1 src/filedata.c --- a/src/filedata.c Mon Sep 11 18:19:46 2017 +0100 +++ b/src/filedata.c Wed Sep 13 11:21:58 2017 +0100 @@ -429,6 +429,7 @@ fd->magick = FD_MAGICK; fd->exifdate = 0; fd->rating = 0; + fd->format_class = filter_file_get_class(path_utf8); if (disable_sidecars) fd->disable_grouping = TRUE; diff -r 9c435c86a296 -r e65df743a5a1 src/filefilter.c --- a/src/filefilter.c Mon Sep 11 18:19:46 2017 +0100 +++ b/src/filefilter.c Wed Sep 13 11:21:58 2017 +0100 @@ -449,6 +449,15 @@ return !!filter_name_find(file_class_extension_list[file_class], name); } +FileFormatClass filter_file_get_class(const gchar *name) +{ + if (filter_file_class(name, FORMAT_CLASS_IMAGE)) return FORMAT_CLASS_IMAGE; + if (filter_file_class(name, FORMAT_CLASS_RAWIMAGE)) return FORMAT_CLASS_RAWIMAGE; + if (filter_file_class(name, FORMAT_CLASS_META)) return FORMAT_CLASS_META; + if (filter_file_class(name, FORMAT_CLASS_VIDEO)) return FORMAT_CLASS_VIDEO; + return FORMAT_CLASS_UNKNOWN; +} + gboolean filter_name_is_writable(const gchar *name) { return !!filter_name_find(file_writable_list, name); diff -r 9c435c86a296 -r e65df743a5a1 src/filefilter.h --- a/src/filefilter.h Mon Sep 11 18:19:46 2017 +0100 +++ b/src/filefilter.h Wed Sep 13 11:21:58 2017 +0100 @@ -48,6 +48,7 @@ const gchar *registered_extension_from_path(const gchar *name); gboolean filter_name_exists(const gchar *name); gboolean filter_file_class(const gchar *name, FileFormatClass file_class); +FileFormatClass filter_file_get_class(const gchar *name); gboolean filter_name_is_writable(const gchar *name); gboolean filter_name_allow_sidecar(const gchar *name); diff -r 9c435c86a296 -r e65df743a5a1 src/icons/Makefile.am --- a/src/icons/Makefile.am Mon Sep 11 18:19:46 2017 +0100 +++ b/src/icons/Makefile.am Wed Sep 13 11:21:58 2017 +0100 @@ -12,6 +12,9 @@ geeqie_logo.png \ scroller.png \ sheet_broken.png \ + sheet_metadata.png \ + sheet_unknown.png \ + sheet_video.png \ icon_float.png \ icon_thumb.png \ icon_book.png \ @@ -30,6 +33,9 @@ icon_thumb $(srcdir)/icon_thumb.png \ icon_scroller $(srcdir)/scroller.png \ icon_broken $(srcdir)/sheet_broken.png \ + icon_metadata $(srcdir)/sheet_metadata.png \ + icon_unknown $(srcdir)/sheet_unknown.png \ + icon_video $(srcdir)/sheet_video.png \ icon_book $(srcdir)/icon_book.png \ icon_config $(srcdir)/icon_config.png \ icon_tools $(srcdir)/icon_tools.png \ diff -r 9c435c86a296 -r e65df743a5a1 src/icons/sheet_metadata.png Binary file src/icons/sheet_metadata.png has changed diff -r 9c435c86a296 -r e65df743a5a1 src/icons/sheet_unknown.png Binary file src/icons/sheet_unknown.png has changed diff -r 9c435c86a296 -r e65df743a5a1 src/icons/sheet_video.png Binary file src/icons/sheet_video.png has changed diff -r 9c435c86a296 -r e65df743a5a1 src/icons/svg/Makefile.am --- a/src/icons/svg/Makefile.am Mon Sep 11 18:19:46 2017 +0100 +++ b/src/icons/svg/Makefile.am Wed Sep 13 11:21:58 2017 +0100 @@ -12,6 +12,9 @@ icon_view.svg \ sheet_blank.svg \ sheet_broken.svg \ + sheet_metadata.svg \ + sheet_unknown.svg \ + sheet_video.svg \ spinner_orbit.svg EXTRA_DIST = $(svg_images) diff -r 9c435c86a296 -r e65df743a5a1 src/icons/svg/sheet_metadata.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/icons/svg/sheet_metadata.svg Wed Sep 13 11:21:58 2017 +0100 @@ -0,0 +1,102 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + + + 0101 0110 1011 0101 0101 diff -r 9c435c86a296 -r e65df743a5a1 src/icons/svg/sheet_unknown.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/icons/svg/sheet_unknown.svg Wed Sep 13 11:21:58 2017 +0100 @@ -0,0 +1,102 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + + + ??? diff -r 9c435c86a296 -r e65df743a5a1 src/icons/svg/sheet_video.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/icons/svg/sheet_video.svg Wed Sep 13 11:21:58 2017 +0100 @@ -0,0 +1,100 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + diff -r 9c435c86a296 -r e65df743a5a1 src/image.c --- a/src/image.c Mon Sep 11 18:19:46 2017 +0100 +++ b/src/image.c Wed Sep 13 11:21:58 2017 +0100 @@ -671,7 +671,21 @@ { GdkPixbuf *pixbuf; - pixbuf = pixbuf_inline(PIXBUF_INLINE_BROKEN); + switch (imd->image_fd->format_class) + { + case FORMAT_CLASS_UNKNOWN: + pixbuf = pixbuf_inline(PIXBUF_INLINE_UNKNOWN); + break; + case FORMAT_CLASS_META: + pixbuf = pixbuf_inline(PIXBUF_INLINE_METADATA); + break; + case FORMAT_CLASS_VIDEO: + pixbuf = pixbuf_inline(PIXBUF_INLINE_VIDEO); + break; + default: + pixbuf = pixbuf_inline(PIXBUF_INLINE_BROKEN); + } + image_change_pixbuf(imd, pixbuf, image_zoom_get(imd), FALSE); g_object_unref(pixbuf); diff -r 9c435c86a296 -r e65df743a5a1 src/pixbuf_util.c --- a/src/pixbuf_util.c Mon Sep 11 18:19:46 2017 +0100 +++ b/src/pixbuf_util.c Wed Sep 13 11:21:58 2017 +0100 @@ -108,6 +108,9 @@ { PIXBUF_INLINE_FOLDER_UP, folder_up }, { PIXBUF_INLINE_SCROLLER, icon_scroller }, { PIXBUF_INLINE_BROKEN, icon_broken }, + { PIXBUF_INLINE_METADATA, icon_metadata }, + { PIXBUF_INLINE_UNKNOWN, icon_unknown }, + { PIXBUF_INLINE_VIDEO, icon_video }, { PIXBUF_INLINE_ICON, gqview_icon }, { PIXBUF_INLINE_LOGO, geeqie_logo }, { PIXBUF_INLINE_ICON_FLOAT, icon_float }, @@ -238,7 +241,22 @@ GdkPixbuf *pixbuf_fallback(FileData *fd, gint requested_width, gint requested_height) { - GdkPixbuf *pixbuf = pixbuf_inline(PIXBUF_INLINE_BROKEN); /* FIXME use different images according to FORMAT_CLASS */ + GdkPixbuf *pixbuf; + + switch (fd->format_class) + { + case FORMAT_CLASS_UNKNOWN: + pixbuf = pixbuf_inline(PIXBUF_INLINE_UNKNOWN); + break; + case FORMAT_CLASS_META: + pixbuf = pixbuf_inline(PIXBUF_INLINE_METADATA); + break; + case FORMAT_CLASS_VIDEO: + pixbuf = pixbuf_inline(PIXBUF_INLINE_VIDEO); + break; + default: + pixbuf = pixbuf_inline(PIXBUF_INLINE_BROKEN); + } if (requested_width && requested_height) { diff -r 9c435c86a296 -r e65df743a5a1 src/pixbuf_util.h --- a/src/pixbuf_util.h Mon Sep 11 18:19:46 2017 +0100 +++ b/src/pixbuf_util.h Wed Sep 13 11:21:58 2017 +0100 @@ -40,6 +40,9 @@ #define PIXBUF_INLINE_FOLDER_UP "folder_up" #define PIXBUF_INLINE_SCROLLER "scroller" #define PIXBUF_INLINE_BROKEN "broken" +#define PIXBUF_INLINE_METADATA "metadata" +#define PIXBUF_INLINE_UNKNOWN "unknown" +#define PIXBUF_INLINE_VIDEO "video" #define PIXBUF_INLINE_ICON "icon" #define PIXBUF_INLINE_LOGO "logo" diff -r 9c435c86a296 -r e65df743a5a1 src/preferences.c --- a/src/preferences.c Mon Sep 11 18:19:46 2017 +0100 +++ b/src/preferences.c Wed Sep 13 11:21:58 2017 +0100 @@ -106,7 +106,8 @@ N_("Unknown"), N_("Image"), N_("RAW Image"), - N_("Metadata") + N_("Metadata"), + N_("Video") }; /* config memory values */ diff -r 9c435c86a296 -r e65df743a5a1 src/typedefs.h --- a/src/typedefs.h Mon Sep 11 18:19:46 2017 +0100 +++ b/src/typedefs.h Wed Sep 13 11:21:58 2017 +0100 @@ -133,6 +133,7 @@ FORMAT_CLASS_IMAGE, FORMAT_CLASS_RAWIMAGE, FORMAT_CLASS_META, + FORMAT_CLASS_VIDEO, FILE_FORMAT_CLASSES } FileFormatClass; @@ -546,6 +547,7 @@ const gchar *name; const gchar *extension; gchar *extended_extension; + FileFormatClass format_class; gchar *collate_key_name; gchar *collate_key_name_nocase; gint64 size;