Hi, glad to have some positive feedback here. I'll try to describe a little the different behaviors I mean.
Example1: Part Design - Chamfer
Overall, Part Design picking is a "Selection oriented" action. Which means the underlying idea is to pick what you need in the viewport, and a list is populated.
1. If no edge or face is selected when pressing chamfer, an error is returned as a popup.
2. Once an edge or face is selected and the Chamfer function is called, the list is populated
3. It is possible to press the Add button, and the system stays in "Add" mode, which means I can click on as many faces or edges in a row as a i like, the list get populated. Note that in that case if I click on one of the items, it is highlighted in the Viewport (nice!)
Also the active faces/edges are highlighted purple, which really helps keeping track.
4. In the list, i can right click to clear items, but for dialog says Remove and Del as if there were two options.
5. The last face cannot be removed or deleted (most likely due to behavior described in 1.
Example2: Part - Chamfer
Overall, Part picking is a "Selector oriented" action. Here a "list of options" is offered to the user for them to pick and choose.
1. I can enter the chamfer tool without any prior requirement.
2. As soon as I have selected the target object, the list is populated with all accessible edges. However, even if I select the "faces" tick box, the list remains populated with edges. Note that in that case if I click on one of the items, it is highlighted in the Viewport (nice!) But the ticked edges are not highlighted purple, which makes it harder to keep track of what is active and what isn't.
3. I have access to variable length here. Which I don't in part design...
Example3: FEM - Meshing
Overall FEM picking is ...well it's the strangest of them (I think also the oldest, has not been touched in a while) and it shows clearly that the FEM crowd has been working hard at pushing the FEM core more than the GUI. And when you see their results no one can complain
1. Once I have selected a shape I can select Gmesh and create my base mesh (not exactly a selection tool, but a necessary preparatory step).
2. After selecting the mesh object in the model tree, I can select Refinement Regions, here a selection dialog occurs, we're back on topic!
3. We have only an Add button here...and I must press Add then select the object. And repeat the operation every time (no toggle mode).
4. To clean up the list, a right-click is necessary. Here the options are different than in the Example1 above, I can either remove the selected item or clear the whole list. Note that in that case if I click on one of the items, it is highlighted in the Viewport (nice!)
Example4: CfdOF - Meshing
Overall CfdOF picking has received some love in the recent versions. It is very functional, but yet still very different from all other examples in both presentation and functionality.
0. Same step as Example3 above. Create the base mesh.
1. Select the mesh object in the CfdOF analysis tree, and press Mesh Refinement, the dialog appears.
2. Here the Add button is a toggle allowing rapid and painless selection of items in Viewport. The list gets populated.
3. There is an option "Select from list" that opens the choice of object (similar to Part, but hidden initially).
4. Once the object is selected, the list is automatically populated with available items.
Note that there is no tracking of the selection here either. The purple highlights seen in Part Design are specific to that workbench, but its so nice I believe it should be added to a homogenization effort.
Also note that in this example, right clicking in the list does nothing (no contextual menu/removal options).
There are many other examples I'm sure, especially since I have not explored the whole set of FreeCAD workbenches.
I understand that this discussion is not easy, as each of these tools belongs to a module or workbench that is maintained by a different group of people with a different vision and sometimes different requirements (obviously chamfering and mesh refinement are not exactly the same thing).
However consistency in the toggles, in the contextual menus (right-click) and in the general behavior would go a long way towards user friendliness. If I had to choose I would say that the tools in Part are the most functional, especially with minor modifications such as purple highlighting of all active features, but that's only my individual opinion.
What do you think of my examples?