=======================================================
fixes#4295
PointOnObject autoconstraint for BSplines is currently not supported, this
commit prevents malformed autoconstraint creation.
====================================================
fixes#4105
When a constraint substitution is present, a solve must precede any call to the redundant removal to update the solver information.
=======================================================
When adding a reference constraint of type radius or diameter to an external geometry using the method of select the
continuous mode method (select tool first, click geometry afterwards), with ActiveUpdate checked, there was a missing
solving to bring the solver information in line with the Driven constraint.
fixes#4054
===================================
Encapsulation of grid internals in ViewProviderObject2D, while allowing control via property changes and protected functions.
... all options are freely accessible in the preferences editor ...
... eg. no need to check 'Show Grid' to customize grid size or snap
Also remove the sparse automatical saving to preferences from sketcher Task pane ...
... (some settings were saved, some not)
model()->layoutChanged signal didn't work at all, was never emitted by widget
Replaced with an eventFilter catching ChildRemoved to further emit the signal
======================================================================
fixes#3831
Solver Interface getPointId method is only intended for normal geometry, and returns -1 if geoid is out of range, which was misinterpreted as root point selection.
The SVG icon was changed in df8e0785a3 but the small XPM icon
was not modified.
Unlike other XPM icons which are used in `ViewProviderSketch.cpp`,
this `PointOnPoint` XPM icon doesn't seem to be used at all.
Nevertheless, we still update it so that the XPM matches
its corresponding SVG.
Also update the `README.md` to explain how these XPM icons
are generated.
==================
https://forum.freecadweb.org/viewtopic.php?p=387303#p387303
1. Trim had a bug that the type of the constraint on the second point was equal to the first one regardless of the situation.
2. Trim did not have support for checking whether points were close to the edge and relied on preexisting constraints.
==========================================================
Changes:
- Move multIcon structure to be internal to TaskSketcherElements class
- Change Caps to MultIcon for consistency
- Move tamperIcon from TaskSketcherElements to MultIcon struct
- Change tamperIcon method to be the constructor of MultIcon and change from struct to class
- Update the tamperIcon algorithm, so that only the point that is not marked in green as selected
is made pink.
Bug fix:
UpdateIcons and SlotElementsChanged are methods sharing code (they could benefit from a refactoring), but
they are conceptually different and are called in very different circumnstances.
UpdateIcons preserves selection. This means that one may select the stating point of line1, press z to switch
to edges, select the edge of line 2 and do a point on object constraint all without touching the 3D view.
SlotElementsChanged occurs when there are additions or removals in the number of geometry elements of the widget.
Warning:
This code requires QT 5.6 because of function pixelColour(int, int):
https://doc.qt.io/qt-5/qimage.html#pixelColor-1
Travis without QT5 complains with:
/home/travis/build/FreeCAD/FreeCAD/src/Mod/Sketcher/Gui/TaskSketcherElements.cpp:1120:31: error: ‘class QImage’ has no member named ‘pixelColor’; did you mean ‘setColor’?
+ remove unneeded class members from EditData class
+ do not include ui-header from within header files
+ fix possible memory leak in EditDatumDialog
+ when canceling dialog make sure sketch will be updated
This integrates the ability to manage dimensional constraint driving/driven status
in the constraint edition dialog box.
It adds a checkbox in the dialog to show/select whether a constraint is driving or
driven. When the constraint value is modified, it is automatically set as driving.
Main focus is to allow to edit name (alias) of reference (driven) constraints
directly in the constraint edition box.
Resolves#3793, #3978