=====================================================================
fixes#4241
Problem:
PartDesignGui::ViewProvider is responsible for closing the tasks for most of PD features when exiting edit mode
(i.e. unsetEdit()).
For primitives, PartDesignGui::ViewProviderPrimitive is responsible, and neither does it or relies on its parent
VP to do it when calling unsetEdit().
Solution:
Make PartDesignGui::ViewProviderPrimitive::unsetEdit() rely on parent PartDesignGui::ViewProvider to tidy up,
including closing the task dialog.
Reference:
This is the default stack call when closing a document while a PD task using PartDesignGui::Viewprovider is active:
========================================================
- Correction to mustExecute() to account for the new properties
- Make properties not used by the mode as read-only.
- Gui: apply() only for construction mode valid features
The given parameters return an invalid shape. This fails with occt7.4 but doesn't with occt7.3. If the angle is 45 degree the cone is self-intersecting as Hole.Depth > Hole.Diameter/2. Changing the Hole.TaperedAngle to 60 degree solves this issue.
Change Immutable status to ReadOnly, which makes it easy to set value
in script, but still block editing in property view by default. This is
to discourage user editing support using property editor, because
SubShapeBinder requires relative link correction.
* in the undo/redo list use an object's label and not the internal name
* check by the transaction ID instead of name to open a transaction to make the workbenches independent of implementation details of the core system
* when rejecting a task do not call undo() because this is not the same as aborting a pending transaction
* this also fixes the warning: <App> Document.cpp(1182): Cannot commit transaction while transacting