Arch BuildingParts now gained a new set of View properties that allows
to define a "capture box". Subsequent Draft and Arch objects, or anything
else that uses Draft.autogroup(), will be automatically added to that
BuildingPart if they are inside the capture box.
When the spine line of the sweep operation of the part workbench depends
on the Sketcher document, if the dependent spine line drawn by this document
is deleted afterwards, the path variable will get a null pointer.
Due to programming errors, the standard judgment of this pointer is ignored, resulting in a crash.
Call IsNull() of the OCC document to determine the legitimacy of the shape.
If it is empty, an error is reported.
Fixes#0004764
=================================================
This PR does not have added functionality. It contains only code improvements requiring at least c++17.
- It uses for the filters scoped enums (enum classes) instead of unscoped enums to avoid implicit conversion (c++11).
- It includes tools to deal with the necessary explicit conversions including type_t traits (c++14).
- It uses a couple of generic lambdas (c++17)
- It uses folding expressions to expand parameter packs (c++17)
- Refactoring of code
Remove call to get_draft_line_commands.
Update the ContextMenu function. The items are based on the utilities menu now. And the context menu is the same for the Tree view and the 3D view.
LGTM catches a potential error with the mutation of default values:
implement their suggested workaround of using a None placeholder to
ensure the default itself is never modified.
=========================================================
A new special filter, that filters the constraint list so as to show the constraints associated with the
currently selected geometries.
=========================================
=> The old controltab is substituted by: direct controls (buttons on the constraint widget) and a settings dialog that is independently fired via a button with a settings icon
This makes more space for the list of constraints and generates a lower amount of confussion regarding the old tab names and functions.
Direct control ensures that the most used operations are at hand, while other less changed settings are moved to the settings dialog.
=> Direct controls
One time visibility to match the list selection can be triggered from a new button "Visibility"
This button has drop selections for visibility selections, which are checkable items (currently only one option, but more are envisaged).
The one option currently is the "visibility tracking" functionality. This is a "shortcut" to the option in the settings panel to save unnecessary clicks
in typical operations.
=> Settings dialog
This dialog is live, in that changes to settings are immediatedly propagated to the list control and visibility.