========================================
Fonts:
- SoDatumLabel internally uses QFont and thus points. It was being fed pixels, for which the configured size in preferences did not match the actual on screen size. This is corrected.
- Font sizes fed directly from parameters to the coin nodes skeleton were not being updated, as the parameter observer is initialised after the nodes are created, and the parameter
observer was not configured to update this nodes. This is corrected.
Colors:
- Some color parameters were not being being updated by the parameter observer. This is corrected.
- the type change fixes this error: \src\Mod\Sketcher\App\planegcs\Constraints.cpp(509,54): warning C4267: '=': conversion from 'size_t' to 'unsigned int', possible loss of data
- the scone change removes a non-existing definition
Fixes#7770.
Until Point-on-B-spline is actually merged this will result in a malformed
constraint. It will however still allow a trim of the B-spline to result in a
coincident constraint.
Fixes#8104.
As described in that issue, a crash happens under the following
conditions:
1. A `DrawSketchHandler` is active.
2. No constraint is selected.
3. Context menu on the `ConstraintView` is triggered.
* In UIntSpinBox rename the signal to not overwrite the signal of the base class
* In UIntSpinBox use the (ambiguous) signal 'valueChanged' of the base class QSpinBox
* To avoid that connect() fails use the function pointer of the Qt class where the signal is defined
=======================================================================
In uncommon situations, the analysis of QR decomposition leads to full rank, but the result does not converge.
We avoid marking a sketch as fully constrained when no convergence is achieved.
======================================================================
1. Instead of excluding internal alignment constraints from popularity candidate selection, exclude them from the group altogether. This
ensures no group is non-empty with uneligible candidates, which prevents an infinite loop in uncommon circumnstances (when DoFs collapse).
2. Ensure no internal alignment constraint is identified when conflict ensues.
* QString::indexOf() is now marked as [[nodiscard]]
* QApplication::fontMetrics() is deprecated, use the constructor of QFontMetricsF
* fix -Wunused-result
* fix -Wunused-but-set-variable
The latter is intended for a specific solver constraint.
[Sketcher] Make further changes for tangent-at-knot separation
1. Remove code for tangent-at-knot from `addAngleAtPointConstraint`.
2. Use correct order of input.
3. Separate internal C0 knot vs end knots. The latter can still be constrained
but the user must use endpoints of the spline instead of knots.
Similar to 2715a66ff02a46f94ae3fc6527fd446e666b8e58.
Added some comments and removed some TODO's.
Return grad values directly rather than doing summation.
Also squashes:
[Sketcher] Make tangent-at-knot with just knot and line
[Sketcher] Disallow tangent at C0 knot
If passed on to planegcs can cause segmentation fault.
[Sketcher] (Re-)Support tangent at B-spline end-knots
New code had introduced problems for non-periodic spline end-points, and
periodic spline "end-points" were not supported anyway.
(here end-points mean star/end points)