FreeCAD
FreeCAD copied to clipboard
add horizontal scrollbar to start page
On systems with legacy monitors the display might be not as large as needed to display completely the start page. In that case the user is forced to use the keyboard to scroll horizontally the start page.
Can you please post a screenshot of the "before" on your monitor? Horizontal scrolling is undesirable, so I'd rather seek an alternate solution.
I would not be scared about the horizontal scrollbar, the policy is not ScrollBarAlwaysOn
but ScrollBarAsNeeded
so it shows only when needed. It should not impact systems with a larger monitor which are more common today.
The following is what I see on my screen by using 1280x1024 resolution:
Moreover I have also a simple patch to move the horizontal line in the FirstStartWidget, in fact now when the Done button is pressed the line is still currently visible at the top of the page. This is really a minor issue because next time the program is started the line is not drawn anymore.
I'd argue that the real problem is that the TreeView is showing, taking up valuable screen real estate and providing nothing useful.
(Yes, I know about the horizontal divider, feel free to submit a PR for that one, it's on the back burner for me right now...)
IMHO the treeview width is fine, as you can see for the Arch example shipped with freecad:
I do personally prefer to have the scrollbar in the start page rather then in the treeview because the first one is not used as often as the other one. Basically the horizontal scrollbar is needed only by the FirstStart widget which will not be visible anymore after the Done button is pressed.
The alternative I can see if to put all the dropdown selectors in a single colums and to reduce the icon size of the theme buttons.
My point is that the treeview shouldn't be showing at all when you are in Start -- it's not useful in that context. Absent the tree view, you can see the whole Start interface.
The same applies for the Tasks panel. If the layout is arranged so that the tree view panel is on the left and the tasks panel is on the right, there is even less room available and this issue becomes more apparent.
Rather than adding an horizontal scrollbar, does Qt not have the ability to have multiple layouts that are triggered depending on screen size or form factor? If so, would that not be a more robust alternative?
It's no problem to have multiple layouts depending on width, but as you suggest, the same thing I say for the TreeView applies to the Task Panel: they really shouldn't be on the screen when First Start is showing.
As an additional data point, VS Code does not hide its equivalent panel to FreeCAD's Tree view when starting and showing the Start page. This comment does not advocate for one approact or the other. Neither is the intention to say that FreeCAD should follow suit:
I'd also argue that the first run wizard should be shown without any other dialogs or panels opened (tree, property, python or report view). The appearance of FreeCAD would then be set once, maybe even including active panels and positions.
A solution could be to place a litte placeholder of some pixel and when the mouse is on it substitute it with real task panel, using the mouse position in the widget as a trigger.
When task panel, (combo box tree view) is not needed or has no sense the trigger method is simply do nothing.
So a simple check to the flag will control the behaviour.
Only an idea.
Kind regards
Carlo D.
Shouldn't this PR be set to Draft or even closed if there's an agreement that a different solution is desired here?
@chennes What do you think about this? Is the proposed solution acceptable or should we look for a different one (and thus the PR should be set to Draft or closed)? I also think that a horizontal scrollbar is the last resort and I'd avoid it if not absolutely necessary.