Closed lwindolf closed 1 year ago
An alternative could be to make the wide view mode the "One Mode to Rule Them All", as per the idea in https://github.com/lwindolf/liferea/issues/534#issuecomment-757546005 where you can see this mock-up showing a variant that is adapted both for low-width resolution screens as well as split screens or wide screens (someone reading on an ultra-wide screen is probably half-tiling or third-tiling Liferea or keeping it as a window, anyway):
The advantage of that one-size-fits-all approach is massively simpler code and the fact that it solves a bunch of usability issues like 524, or solving the fact that the current wide view doesn't offer the same features as the normal view.
You could even do the switch between two-columns and three-columns layout dynamically depending on the window's width (i.e. available space), which would be in the same spirit as your "automatic" view mode idea here, and the code to do that on the fly (if you prefer not to have it as an option) would probably be trivial even without using LibHandy.
Yes in two-columns mode you would lose the "full height" nature of the feeds list, but realistically who gives a damn about that, I'm using Liferea to read the items from my currently selected feed/folder, and the contents of those items, not to read the "list of feeds" ;)
Hi, I own a LCD 19" 5:4 screen and the above mockup will fit my needs ! Thanks
Well while it looks a bit unexpected (there are only a few newsreaders using this layout) it works well on
it would behave worst on 16:9 full screen where wide view is currently the best mode.
We'd need usage data to decide which use cases to prefer :-)
Yeah, as I suggested above, in full-width-16:9 high-resolution (i.e. full HD) screens, the three-columns layout could still automatically be used. My proposal was:
In theory it's just a matter of detaching (i.e. gtk_container_remove or the equivalent derivative?) widgets out of some panes/boxes and moving/reattaching them (gtk_container_add or the equivalent derivative?) to different panes/boxes, not using "different widgets" like what's currently done in normal vs wide view modes; notice how my screenshot above uses the listview from the current "Normal view" mode, because the two-columns view allows ensuring the list of items inside a feed always has sufficient width to be usable at lower resolutions without a multi-line-per-rows listview variant (like what we currently have in the "Wide view" mode)... thus the massive code simplification.
I think it would work well on any computer screen (not on a phone, but that's another kind of thing, where you'd essentially have to use a "paged view" kind of thing, which is beyond the scope of this simple improvement suggestion here); so I'm not sure there are "use cases to prefer" since it simply adapts to whatever width is available to stay readable. The only caveat I can imagine is if some people actually prefer the "normal view" for some other reasons, but personally I've only ever used that view on smaller laptop screens where the width didn't allow accommodating a three columns layout "with enough width to show item titles".
Quoting myself:
The only caveat I can imagine is if some people actually prefer the "normal view" for some other reasons
...and now it occurred to me that the proposed auto-2-vs-3-columns approach above doesn't even need to mean that the "normal view" gets deprecated entirely, it can be kept too at virtually no cost (in case you want to play it safe with the userbase). It just means that the "wide view" gets an automatically adapted layout and that it uses the same widgets as the normal view, so the code simplification gains are still very real, even if you still offer both the "normal" view and the "wide" view (which, at this point, I would rename "Classic" vs "Modern/Adaptive" and set the default to the new adaptive view, because the normal view isn't really the norm anymore)
Using the same widget sounds tantalizing from a maintenance perspective. I need to sleep on this some more, but it sounds like something to consider.
Thinking some time about this: I really like it and want to try it out.
In best case when doing this we could
Started implementation. For now removed per-node layout setting and main menu view mode switches. Only view mode preference remains.
Implemented.
There should be a new view mode automatically switching between "Normal View" and "Wide View" based on the aspect ratio of the application window.
Maybe we should also drop the per-feed view mode preference as it has quite bad usability (unclear what will happen in which switching circumstance) and would become even more confusing with automatic mode.
Note that the aspect ratio has to be considered relativ to the screen aspect ratio (e.g. a laptop flipped to the side).