GNOME Bugzilla – Bug 752805
Do not show thumbnails for the "small" and "normal" zoom levels in ListView mode
Last modified: 2016-03-07 20:10:53 UTC
Created attachment 308047 [details] screenshot With the three new zoom levels in 3.16, when in listview mode it would make sense to only show thumbnails for the "Bigger" zoom level, not the other two. Instead, please show the normal mimetype icons. They will be a thousand times sharper and more representative for me, reducing psychovisual complexity/clutter and letting my eyes concentrate on the types and filenames. Attached is a screenshot illustrating the problem, with thumbnails being useless at lower zoom levels and creating visual chaos rather than bringing clarity.
Created attachment 311237 [details] screenshot of the proposed look This is how a typical mixed-media folder would look like without micro-thumbnails
Created attachment 323029 [details] [review] Don't show thumbnails for small zoom levels When the zoom level is too small, thumbnails become useless, as they are so small that they don't give any information. The solution to this problem is to use mimetype icons when the zoom level is too small In order to achieve this, there was added a function that returns false if the zoom is too small, nautilus_thumbnail_is_limited_by_zoom. Therefore, if it returns false, the mimetype icon will be used.
Review of attachment 323029 [details] [review]: Thanks for the patch, it works well for the common case (once the comments below are fixed that can cause problems). Also, I would like designers input on this. Can you ask Allan Day (aday) who is the mainly Nautilus designer on the #gnome-design irc channel? ::: libnautilus-private/nautilus-file.c @@ +4582,3 @@ +gboolean nautilus_thumbnail_is_limited_by_zoom (int size, int scale, + NautilusFileIconFlags flags) the code style doesn't follow other functions in nautilus where the return type is in a different line than the function name. Also the aligment of the parameters is wrong. The return value is misleading with the title, you return TRUE when it can actually do thumbnail, not when is limited. The return value should be the opossite. @@ +4590,3 @@ + } else { + zoom_level = size * scale * + cached_thumbnail_size / NAUTILUS_CANVAS_ICON_SIZE_SMALL; why is this distinction necessary and why multiplication with the cached thumbnails size? ::: libnautilus-private/nautilus-file.h @@ +211,3 @@ gboolean nautilus_file_should_show_thumbnail (NautilusFile *file); gboolean nautilus_file_should_show_directory_item_count (NautilusFile *file); +gboolean nautilus_thumbnail_is_limited_by_zoom (int size, wrong aligment of the function, you are using tabs, use spaces.
Sure, I'll ask Allan Day what he thinks about this :) You're right about the return type, I'll switch the true and false and also fix the alignments. I've looked again on the code and that distinction is not really necessary. I thought that for some values the size * scale is not equal to the zoom level, but that's not true. So, I'll also remove the else.
Created attachment 323107 [details] [review] nautilus-file: Don't show thumbnails for small zoom levels When the zoom level is too small, thumbnails become useless, as they are so small that they don't give any information. The solution to this problem is to use mimetype icons when the zoom level is too small In order to achieve this, there was added a function that returns true if the zoom is too small, nautilus_thumbnail_is_limited_by_zoom, meaning that the corresponding mimetype icon should be used instead of the thumbnail
Review of attachment 323107 [details] [review]: Now everything looks mostly good, thanks! A few nitpicks below: ::: libnautilus-private/nautilus-file.c @@ +4581,3 @@ } +gboolean since we use it only here, declare it as static gboolean. ::: libnautilus-private/nautilus-file.h @@ +212,3 @@ gboolean nautilus_file_should_show_directory_item_count (NautilusFile *file); +gboolean nautilus_thumbnail_is_limited_by_zoom (int size, + int scale); Functions are only needed in the header if they are public. In this case we only use it internally, so you can remove this. Sorry for not caching this up before.
Created attachment 323281 [details] [review] nautilus-file: Don't show thumbnails for small zoom levels When the zoom level is too small, thumbnails become useless, as they are so small that they don't give any information. The solution to this problem is to use mimetype icons when the zoom level is too small In order to achieve this, there was added a function that returns true if the zoom is too small, nautilus_thumbnail_is_limited_by_zoom, meaning that the corresponding mimetype icon should be used instead of the thumbnail
Review of attachment 323281 [details] [review]: LGTM thanks!
Attachment 323281 [details] pushed as 52dd77c - nautilus-file: Don't show thumbnails for small zoom levels