The canvas keeps a reference to the settings object, so we
can't pass one from the stack because it runs into lifetime
issues.
Also cleanup some loop-iterator problems.
Fixes https://gitlab.com/kicad/code/kicad/issues/6338
Holes were correctly sorted by size, but inside the same hole size
the holes were strangely sorted.
Now holes are sorted by hole size, and (inside the same size) by position.
Fixes#6553https://gitlab.com/kicad/code/kicad/issues/6553
1) make sure we get the default netclass when we want it
2) escape for HTML (particularly important for "<invalid>", but also
for reporting user rule names, netclass names, etc.)
Do not use the alt modifier key to force the display of the heuristic
context menu. This causes a conflict with menu selection on windows
and immediately dismisses the disambiguation context menu.
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/1873
1) Separate out CONSTRAINT types
2) Filter both source and dest pads/vias for drilled holes when doing
hole-to-hole checks. We were checking the items being put into the
DRC RTree, but not the items we were scanning.
3) Add hole clearance to Board Setup Constraints panel.
Fixes https://gitlab.com/kicad/code/kicad/issues/6546
Fixes https://gitlab.com/kicad/code/kicad/issues/4683
Also a rationalization of text polygon generators, with the "standard"
version inherited from BOARD_ITEM now giving the bounding box. This
requires callers who want the (much) more expensive stroke-based one
to call it explicitly (and brings PCB_TEXT in line with the was FP_TEXT
already was.
Fixes https://gitlab.com/kicad/code/kicad/issues/6525
We already added the checkedPairs stuff which deals with a:b vs b:a
better, and the SKIP_STRUCT version had side-effects between the two
tests.
Fixes https://gitlab.com/kicad/code/kicad/issues/6539
Don't use clone to copy an EDA_ITEM. Use Duplicate().
Even if you give the clone a new KIID, all its children will still be clones.
Create Duplicate() in LIB_PART
The new shape architecture gives us the opportunity to make text
selection much more intuitive by actually looking at the glyph
shapes. Before text would be selected when you clicked in the
descenders area (which was usually blank given uppercase letters
and digits).
Fixes https://gitlab.com/kicad/code/kicad/issues/6525
Groups do not own their children; they only reference them. That
being said, they do own *selection* and *moving* of their children.
This might address some of 6493, but in any case will be a
pre-requisite for fixing it.
Fixes https://gitlab.com/kicad/code/kicad/issues/6493
So the new steals-focus protection stuff works well when there's a
focused control, but not as well when there's a modal dialog up which
happens not to have a focused control (or worse, a focusable control).
This adds a second mechanism for also checking to see if a modal dialog
is up (something that wxWidgets, true to form, makes very difficult).
Fixes https://gitlab.com/kicad/code/kicad/issues/6520
- ref and value texts were converted to user texts.
- fpid was left empty, thus creating a potential issue if pasted in the board editor.
Now:
- ref and value texts are no changed, and not copied is pasted in the footprint editor
(these texts already exist)
- a dummy fpid (clipboard:<md5 string>) is added if pasted in board editor
(Pasting a (partial) footprint from fp editor to a board editor is certainly not
a good idea but is possible)
Is some cases a created pad stack name had the same name as an other pad stack
having a slightly different shape, thus creating pads with a incorrect shape on board.
Fixes#6495https://gitlab.com/kicad/code/kicad/issues/6495
When we divide up a rectangle or polygon (for better RTree usage)
we need to make sure the individual segments also have their widths
zeroed out.
Fixes https://gitlab.com/kicad/code/kicad/issues/6482
Also cleans up some user strings to try and make this clearer, and to help
translators make it clearer (neither of which is easy to do).
Fixes https://gitlab.com/kicad/code/kicad/issues/6475
This fixes some DXFs imports where unforunately CAD tools like SolidWorks
randomly decide to mirror circle definitions across the "z" axis (resulting in x or y axis flips in 2d)
Most likely live projection from 3D to 2D drawings introduces this.
However this is DXF specification to describe it so obtusely with vectors for a 2d drawing.
DXF blocks are virtual groups of items.
The insert entity is what actually places all the block contents at a given coordinate.
This should fix importing drawings from professional CAD tools like SolidWorks that will have a good bit of blocks.
The reality is the DXF file can still override the selected unit option which is totally fine.
In fact, per specification, there is a way to change units mid-file with block records :/
There is no guarantee DXF contains $INSUNIT to specify the units of the file as its optional.
This allows the user to specify the expected units via dropdown.
SolidWorks can definitely generate such unit lacking files as an example
It shows much more detail. Removes some nag dialogs and places
hypertext links in others.
Also fixes the auto-layer-showing to correctly show Edge.Cuts or
F.CrtYd or B.CrtYd for errors relating to them.
Fixes https://gitlab.com/kicad/code/kicad/issues/6446
When pcbnew is built with python support, the env vars defined inside Kicad
(and used mainly in paths) are rewritten for the python environment.
Unfortunately, the values are rewritten as UTF8 string, but in Kicad they are
just expected in utf32 unicode values.
This is now fixed by rewriting the initial values in Kicad env, after the
python environment is initialized.