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.
User avatar
Kunda1
Posts: 3836
Joined: Thu Jan 05, 2017 9:03 pm

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

Postby Kunda1 » Thu Jul 12, 2018 12:29 pm

Discussion thread for issue #3498: Preference categories not showing up if specific workbench has not been visited (Win 7, FC 0.17)
Want to contribute back to FC? Checkout:
#lowhangingfruit | Use the Source, Luke. | How to Help FreeCAD | How to report FC bugs and features
chrisb
Posts: 14103
Joined: Tue Mar 17, 2015 9:14 am

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

Postby chrisb » Thu Jul 12, 2018 5:09 pm

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.
Xunie
Posts: 4
Joined: Tue May 22, 2018 7:13 pm

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

Postby Xunie » Mon Jan 28, 2019 2:45 am

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
Posts: 14103
Joined: Tue Mar 17, 2015 9:14 am

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

Postby chrisb » Mon Jan 28, 2019 4:58 am

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.
GeneFC
Posts: 999
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

Postby GeneFC » Mon Jan 28, 2019 2:46 pm

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
Posts: 4812
Joined: Wed Oct 22, 2014 5:02 pm

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

Postby sgrogan » Mon Jan 28, 2019 11:52 pm

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.
Xunie
Posts: 4
Joined: Tue May 22, 2018 7:13 pm

It still is inconsistent behavior

Postby Xunie » Wed Jan 30, 2019 7:27 am

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
Posts: 999
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

Postby GeneFC » Wed Jan 30, 2019 3:00 pm

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
Posts: 14103
Joined: Tue Mar 17, 2015 9:14 am

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

Postby chrisb » Wed Jan 30, 2019 5:44 pm

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.
User avatar
sgrogan
Posts: 4812
Joined: Wed Oct 22, 2014 5:02 pm

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

Postby sgrogan » Wed Jan 30, 2019 10:48 pm

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.