The Add Property Dialog for VarSets creates an editor based on the type.
This editor has no frame by default because it is mostly used in the
property view as part of a table. With this change we enable the frame
for the editor (the value field)
Doing "Add dependent objects to selection" in the context menu of an
object that has cyclic dependencies triggered an infinite recursive
loop. This has been solved by using the function to get an outlist
recursively.
Rename original SolverCalculix.ui to SolverCcxTools.ui to prevent
collision on case insensitive filesystems.
Fixes: 4f7a835e22 ("Fem: SolverCalculiX object refactor")
* Sketcher: Prevent bad constraint names
Ensures the constraint names only contains alphanumericals and
underscores so that they can always be used in expressions.
That way, there cannot be any unicode character or quotes that
would need to be escaped.
Fixes: https://github.com/FreeCAD/FreeCAD/issues/19767
* Add helper function to check constraint names
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
---------
Co-authored-by: Lothaire Sicot <lothaire.sicot@telecom-paris.fr>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Related: #17952.
This PR introduces a document observer to close task panels on doc close.
For now it is for the Draft Workbench only. The BIM Workbench will be dealt with in a future PR.
The basic code is simple, but to make things works some additional things were addressed:
* gui_base.py: the GuiCommandBase class was enhanced to handle App.activeDraftCommand, self.doc, self.view and self.planetracker. Strictly speaking only the first 2 are required for this PR.
* gui_base.py: self.command_name was changed to self.featureName for compatibility with gui_base_original.py. Not required for this PR.
* gui_arcs.py, gui_circulararray.py, gui_polararray.py and gui_orthoarray.py: updated in relation to the GuiCommandBase class.
* gui_arcs.py Arc_3Points: The command now has a ui property and shows a plane tracker. Only the first is required for this PR.
* gui_shapestrings.py: This command had two ui attributes: self.ui and self.task. This was problematic. To fix this the base class of the command was changed from gui_base_original.Creator to gui_base.GuiCommandBase. As a result the getStrings method is no longer available meaning that the useSupport parameter is ignored when creating a ShapeString. But since that mechanism does not work properly anyway, I feel that this is acceptable. Should many user complain the functionality can of course be reintroduced.
* Sketcher: Auto-scroll to selected geometry elements
Currently if user selects a geometry element on sketch, listview is not
scrolling to it.
So, this patch moves the previously added logic to constraints into a
separate helper function call and calls it for Geometry Elements as
well, resulting in scrolling in both lists - constraints and elements.
* Sketcher: Add QListWidget to enable QListWidget symbols for CI