Put the string manipuuation utils in the cpp, and
remove string_utils.h from the includes of netinfo.h.
This spams that header into about 350 files, not all of which
need it. Then go round and tidy up the places (most exporters
and dialogs) where CPP files weren't including string_utils.h
when they used it, as well as some other order-sensitive
include issues that turned up.
This also removes the GROUP/UNGROUP-specific undo actions.
This also fixes a bunch of undo bugs when duplicating
group members, creating pins, etc.
This also fixes some undo bugs when dividing wires etc.
This also fixes some bugs with new sch items not
being created within an entered group.
Recommendation is to avoid using the year nomenclature as this
information is already encoded in the git repo. Avoids needing to
repeatly update.
Also updates AUTHORS.txt from current repo with contributor names
Technically, any endpoint is equivalent for the
geometry that you get out. But "endpoint" sounds like
it means the point that is not the start point.
So change the tool to explicitly take the start and
midpoint as inputs.
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/19221
If this enum is not in order, it will choose the wrong tabs.
We can get the tab index directly from the sizers by going
to the parent, which makes this process automatic.
The CTRL_IDX orders are still possible to de-sync, but at least
that's all in the file and not split between CPP/FBP files.
Provides options for editing the shapes though entry of
different modes, such as "centre/start/angle" for arcs.
Several new modes are implemented.
Relates-To: https://gitlab.com/kicad/code/kicad/-/issues/13356
Add direct handling of quadratic beziers to save compute time and number
of points. Update cubic interpolation to reduce number of points
generated for a given smoothness
Cache data on open and used cached data to avoid multiple re-calcs
Remove minimum line length and number of segments and replace with
standard max error level. Allows us to specify the tolerance of bezier
interpolation
(Copper shapes, on the other hand, can. Since we use
GetItemDescription() to report DRC errors and the like,
it's better to have it report the net even when it's
<no net>.)