Adds a new type "VERTEX_FOR_PRIMITIVE" that will analyze the direction for vertical/horizontal but not for tangent
If defined, makes use of GeoId item of AutoConstraint struct (instead of last geometry) to apply the horizontal/vertical
constraint. This allow this constraint to be applied on an arbitrary geometry.
Standard symbol \u2300 currently used generates text misalignment/cutout on some environments
Replaced with \uD8 (capital O with stroke) that solves the issue -- and looks better
Therefore replace the raw pointer of SketchObject with the template class WeakPtrT. This class will be notified as soon as its handled object will be deleted.
Found via `codespell -q 3 -L aci,ake,aline,alle,alledges,alocation,als,ang,anid,apoints,ba,beginn,behaviour,bloaded,bottome,byteorder,calculater,cancelled,cancelling,cas,cascade,centimetre,childs,colour,colours,commen,connexion,currenty,dof,doubleclick,dum,eiter,elemente,ende,feld,finde,findf,freez,hist,iff,indicies,initialisation,initialise,initialised,initialises,initialisiert,inout,ist,kilometre,lod,mantatory,methode,metres,millimetre,modell,nd,noe,normale,normaly,nto,numer,oder,ontop,orgin,orginx,orginy,ot,pard,parms,pres,programm,que,recurrance,rougly,seperator,serie,sinc,strack,substraction,te,thist,thru,tread,uint,unter,vertexes,wallthickness,whitespaces -S ./.git,*.po,*.ts,./ChangeLog.txt,./src/3rdParty,./src/Mod/Assembly/App/opendcm,./src/CXX,./src/zipios++,./src/Base/swig*,./src/Mod/Robot/App/kdl_cp,./src/Mod/Import/App/SCL,./src/WindowsInstaller,./src/Doc/FreeCAD.uml,./build/doc/SourceDocu`
After merging the change to the Constraint status label in f2a073ca5,
the TaskSketcherElements would sometimes be reduced in size to just a
line or two, if multiple task views were expanded and a stylesheet was
enabled. This commit introduces a minimum size to the TSE to prevent
that from occurring.
=================================================
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
=========================================================
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.
Found via `codespell -q 3 -L aci,ake,aline,alle,alledges,alocation,als,ang,anid,apoints,ba,beginn,behaviour,bloaded,bottome,byteorder,calculater,cancelled,cancelling,cas,cascade,centimetre,childs,colour,colours,commen,connexion,currenty,dof,doubleclick,dum,eiter,elemente,ende,feld,finde,findf,freez,hist,iff,indicies,initialisation,initialise,initialised,initialises,initialisiert,inout,ist,kilometre,lod,mantatory,methode,metres,millimetre,modell,nd,noe,normale,normaly,nto,numer,oder,ontop,orgin,orginx,orginy,ot,pard,parms,pres,programm,que,recurrance,rougly,seperator,serie,sinc,strack,substraction,te,thist,thru,tread,uint,unter,vertexes,wallthickness,whitespaces -S ./.git,*.po,*.ts,./ChangeLog.txt,./src/3rdParty,./src/Mod/Assembly/App/opendcm,./src/CXX,./src/zipios++,./src/Base/swig*,./src/Mod/Robot/App/kdl_cp,./src/Mod/Import/App/SCL,./src/WindowsInstaller,./src/Doc/FreeCAD.uml,./build/doc/SourceDocu`
=========================================================
It filters the constraint list to the selected constraints.
It observes selection changes and reacts to new selections.
Forum:
https://forum.freecadweb.org/viewtopic.php?p=537028#p537028
================================================
This feature adds a new filter entry "Multiple Filters" in the combobox of the filter.
This enables to define a "Multiple Filter" based on the aggregation of individual filters. So it basically provides for a user defined filter based on constraint types.
This "Multiple Filter" defaults to "All Constraints", and can be defined using the button "..." next to the filter combobox.
The "Multiple Filter" works on the list of constraints, as any other filter, limiting the elements shown in the list to match the multi filter definition.
The "Multiple Filter" interacts with the visibility options as any other filter. This is, in visibility non-tracking mode, it does not change the visibility. The Buttons "Hide Listed" and
"Show Listed" can be operated in this mode as any other filter.
In visibility tracking-mode, it will adapt the visibility of the constraints in the 3D view to the "Multi Filter" definition (exactly as it would to any other filter with its own definition).
===============================================================
Forum test and comments:
https://forum.freecadweb.org/viewtopic.php?p=536445#p536390
What?
Showing/hidding a large amount of constraints is very time consuming
Why?
Because SketchObject Constraints property was being set for each individual constraint
Solution is to use the new setVirtualSpace overload taking a list or a tuple, so that all the
constraints are set in a single operation.
In a Debug system with the test of the forum the time taken by the operation is reduced
from 7 minutes to around 2-3 seconds.