Bug #3498: Preference categories not showing up if specific workbench has not been visited

Have some feature requests, feedback, cool stuff to share, or want to know where FreeCAD is going? This is the place.
Forum rules
Be nice to others! Read the FreeCAD code of conduct!
User avatar
Kunda1
Veteran
Posts: 13434
Joined: Thu Jan 05, 2017 9:03 pm

Bug #3498: Preference categories not showing up if specific workbench has not been visited

Post by Kunda1 »

Discussion thread for issue #3498: Preference categories not showing up if specific workbench has not been visited (Win 7, FC 0.17)
Alone you go faster. Together we go farther
Please mark thread [Solved]
Want to contribute back to FC? Checkout:
'good first issues' | Open TODOs and FIXMEs | How to Help FreeCAD | How to report Bugs
chrisb
Veteran
Posts: 53919
Joined: Tue Mar 17, 2015 9:14 am

Re: Bug #3498: Preference categories not showing up if specific workbench has not been visited

Post by chrisb »

This is definitely not a bug, it's a feature request, see https://forum.freecadweb.org/viewtopic.php?f=3&t=5236.

It is possible to improve the situation e.g. by adding a generic icon at the left with something like "other workbenches" which tells the user to load the workbench first, but that is still not fool proof and I'm sure that someone will make a better fool having issues with this as well.
A Sketcher Lecture with in-depth information is available in English, auf Deutsch, en français, en español.
Xunie
Posts: 8
Joined: Tue May 22, 2018 7:13 pm

Re: Bug #3498: Preference categories not showing up if specific workbench has not been visited

Post by Xunie »

Thanks for creating the thread, Kunda. I forgot to do that.

Like I've said in the issue: I'll argue that even if intended, this is a bug as it does not conform to the mental model the user.

Hiding things due to some internal state of the program is bad design and apparently leads to enough confusion for me to open a bug report. A lot can be said about UI and states, but let me just say this: Fridges don't hide contents based on the state of the rest of your kitchen. Cars don't hide your light switches based on outside light conditions.

This kind of "ad-hoc" behavior causes a lot of head scratching, especially for new users. These UX things are often overlooked as well and I think it's an important (albeit low priority) UI improvement that's necessary for FreeCAD to exhibit standard and predictable behavior according to mental models of users. In 20 years behind computers? I've never personally had a program behave like this so this came as a complete surprise to me.

I understand this is a performance optimization, but shouldn't it be possible to just load a workbench if the user hits on its entry in the preferences?

-- Xunie
chrisb
Veteran
Posts: 53919
Joined: Tue Mar 17, 2015 9:14 am

Re: Bug #3498: Preference categories not showing up if specific workbench has not been visited

Post by chrisb »

Xunie wrote: Mon Jan 28, 2019 2:45 am Like I've said in the issue: I'll argue that even if intended, this is a bug as it does not conform to the mental model the user.

Hiding things due to some internal state of the program is bad design and apparently leads to enough confusion for me to open a bug report. A lot can be said about UI and states, but let me just say this: Fridges don't hide contents based on the state of the rest of your kitchen. Cars don't hide your light switches based on outside light conditions.
This is a very good example to illustrate the FreeCAD view: The fridge has no light switch for your car, and your car does not tell you anything about your fridge's contents, as you might have experienced on the way to the supermarket pondering if there is milk in the fridge or not.

There is nothing to argue against your personal mental model, it is the way it is, and of course it is understandable. But the definition of a bug tries to abstract from the mental model of the user himself.
A Sketcher Lecture with in-depth information is available in English, auf Deutsch, en français, en español.
GeneFC
Veteran
Posts: 5373
Joined: Sat Mar 19, 2016 3:36 pm
Location: Punta Gorda, FL

Re: Bug #3498: Preference categories not showing up if specific workbench has not been visited

Post by GeneFC »

If you pull up Tools >> Edit Parameters it will be seen that there are dozens of categories and hundreds of parameters. Basically everything that is in the config files.

Showing all of these in Edit >> Preferences might be just a bit overwhelming.

Gene
User avatar
sgrogan
Veteran
Posts: 6499
Joined: Wed Oct 22, 2014 5:02 pm

Re: Bug #3498: Preference categories not showing up if specific workbench has not been visited

Post by sgrogan »

Xunie wrote: Mon Jan 28, 2019 2:45 am Hiding things due to some internal state of the program is bad design and apparently leads to enough confusion for me to open a bug report.
It not so much FreeCAD hides them, but rather doesn't know them, due to "lazy loading"
Xunie wrote: Mon Jan 28, 2019 2:45 am I understand this is a performance optimization, but shouldn't it be possible to just load a workbench if the user hits on its entry in the preferences?
I think this is a fair question. After all FreeCAD is aware of the WB, it shows up in the Workbench selector drop down. Yorik was able to improve the import/export preferences without loading the WB's ahead of time. I don't know what compromises, if any, were made to lazy loading.
"fight the good fight"
Xunie
Posts: 8
Joined: Tue May 22, 2018 7:13 pm

It still is inconsistent behavior

Post by Xunie »

chrisb wrote: Mon Jan 28, 2019 4:58 am The fridge has no light switch for your car, [...]
Well, apparently we do have light switches in our fridges because the settings window aren't two separate objects (car/fridge) but a single object: a settings window. But put it however you want. Showing different content IN THE SAME WINDOW because of some internal performance optimization is negligent in consistent UI design.

* Extremely confusing to new users who are unaware of this undescribed behavior performance optimization
* Requires experienced users to remember this quirk performance optimization, which isn't warned about in the UI either.
* Requires all users to perform extra handling to change settings (which has to be explained in the manual/tutorials) in order to "trick" the program into undoing it's performance optimization so that the user can complete a task. (Do you now see how insane that sounds?)

Resulting in:
* FreeCAD harder to use
* Manual/Tutorials being longer and harder to follow, especially for users who are new to FreeCAD which makes it even harder to learn
* Inconsistent behavior

--------------------------------------------------------------------------------
GeneFC wrote: Mon Jan 28, 2019 2:46 pm [...] there are dozens of categories and hundreds of parameters. [...]

Showing all of these in Edit >> Preferences might be just a bit overwhelming.

Gene
Visual Studio does it. see here.
LabVIEW does it. see here.
IB Trader Workstation ("TWS") does it. see here.
LibreOffice does it. see here.

Most of those are industry tools with more bells and whistles than FreeCAD. (None of them have this quirky behavior, btw.)

Personally speaking, I've got reasonable experience using all of those programs and they're clear and efficiently navigable (moreso than FreeCAD's current settings system) even though they have more settings than FreeCAD. Adding a search bar in those windows definitely helps with navigation. But it's very scalable and future proof with regards to adding new features/settings.

--------------------------------------------------------------------------------
sgrogan wrote: Mon Jan 28, 2019 11:52 pm It not so much FreeCAD hides them, but rather doesn't know them, due to "lazy loading"
"Hide"/"Doesn't show". That's just semantics. It still results in the same inconsistent behavior.

--------------------------------------------------------------------------------

Theres more than one way to skin this cat ("How to render settings window"). All I'm saying is: the way this cat is being skinned right now is wrong because confusing. Lets just put everything in a tree, draw that and load the bench if the user clicks on an entry in the tree.

Just to be pedantic and overly clear: I am not arguing against performance optimizations. (Who would ever?! lol) All I argue against is showing different contents in that window because of that optimization.

I'm sorry fellas. Are you ready for some tough love?: FreeCAD should not deviate from standard & consistent UI design/behavior because of opaque* performance optimization. That's just lunacy.

* Note: "Opaque" from a user perspective. Not a developer perspective.

Warm regards,
-- Xunie
GeneFC
Veteran
Posts: 5373
Joined: Sat Mar 19, 2016 3:36 pm
Location: Punta Gorda, FL

Re: Bug #3498: Preference categories not showing up if specific workbench has not been visited

Post by GeneFC »

Xunie wrote: Wed Jan 30, 2019 7:27 am Visual Studio does it. see here.
LabVIEW does it. see here.
IB Trader Workstation ("TWS") does it. see here.
LibreOffice does it. see here.
That is not even close to true for LibreOffice or Visual Studio. For example, there are many settings for Calc in LibreOffice that are not available until Calc is opened. Visual Studio has seemingly millions of hidden options.

Lunatic Gene
chrisb
Veteran
Posts: 53919
Joined: Tue Mar 17, 2015 9:14 am

Re: Bug #3498: Preference categories not showing up if specific workbench has not been visited

Post by chrisb »

Xunie, of course we all appreciate a nice UI for the preferences dialog. And noone objects that it would be nice to optimize things here. However, it works pretty well - though not perfect - the way it is. And it is nothing you have to change multiple times while building a model. Improving it the way you want is probably much more than just polishing, it requires some architectural changes.

And I would always leave these use-one-time-per-month dialogs - as long as they work and users get along with it - in favour of other things which are used regularly. And we have enough of them.

I am sure that even in a commercial environment no customer would be willing to pay lets say 5000$ for such a change, and that might hardly cover the effort with changing the existing specification, changing the architectural model, integrating additional workbenches, implementing, and testing, getting user feedback, polishing.
A Sketcher Lecture with in-depth information is available in English, auf Deutsch, en français, en español.
User avatar
sgrogan
Veteran
Posts: 6499
Joined: Wed Oct 22, 2014 5:02 pm

Re: Bug #3498: Preference categories not showing up if specific workbench has not been visited

Post by sgrogan »

Xunie wrote: Wed Jan 30, 2019 7:27 am Just to be pedantic and overly clear: I am not arguing against performance optimizations. (Who would ever?! lol) All I argue against is showing different contents in that window because of that optimization.
I think we are in more agreement than you think.
The feature request as I see it;
When opening the preferences, all workbenches that are known and not disabled, i.e. the workbenches that show in the workbench selector dropdown, have an icon in the prefs (The icon is also known because it shows up in the WB selector dropdown).

If the user clicks on that icon then the workbench is activated (the workbench is loaded when needed), and the prefs become available.

I'm not a developer, but I don't think this violates lazy loading.
"fight the good fight"
Post Reply