lehitoskin/ivy

Show thumbnail previews when pointing Ivy to a directory instead of a single file.

Opened this issue · 3 comments

One feature I miss about another image viewer, Gwenview, is that it could display thumbnails for all the images in a whole folder -- and then navigate up or down the directory tree from there. When you wanted the normal close-up view of a particular image, you double-clicked the thumbnail.

Ivy already does something like this for browsing tags. I think it would be a nice way to jump around in the current directory, or into other directories.

This is actually something about Gtk itself, and not the Racket GUI library, which I have no control over. I am assuming, of course, that you mean thumbnails in the file chooser and not the image preview.

No, sorry. Gwenviewer had two modes: It could act as a regular image viewer, showing the one image at a time like Ivy does; or Gwenview could act like a file browser, but only for images, showing thumbnails for the current directory as you navigate the file system. It made for a convenient way to go from looking at images in one directory to look at images elsewhere.

It would also make it easier to see if an image is actually in the current directory, or to skip to a particular image in the directory.

Gwenview in file-browsing mode

It's not so different, for GUI design and the user experience, from how Ivy already lets you browse images by tags. But it would be for the images in a directory. Double-clicking on a thumbnail opens that image for a full-sized view.

What if, instead of behaving differently depending on how you loaded your collection, it was a function of the main Ivy frame? Either when you zoom out beyond a certain point, it jumps to a thumb grid view (people will be familiar with this behavior from e.g. digital cameras, or some mobile gallery apps), or a toggle menu/button to switch from viewing the collection as a grid to regular single image mode (similar to Finder or Windows Explorer)?

This way, you don't need any special logic for loading collections, and instead you just swap out the current view in the main frame. We could abstract this as a reusable GUI component class, and have it power both the search results dialog and the main collection grid. Just hand it the data it needs, maybe a callback lambda for double-clicking a thumb, and shamma-lamma-moo-moo!, you're good!

screen shot 2018-04-28 at 10 16 11 am
screen shot 2018-04-28 at 10 16 27 am