Fix broken arc angle polarity due to library symbol changes.
Fix broken wire and text Y axis coordinate polarity due to library symbol
changes.
Fix broken field visibility and position on library symbols with multiple
units that have fields with different visibility and positions. Because
KiCad does not support this, when parsing the Eagle schematic file, the
last library symbol unit parsed ends up being the field visibility and
position for all units in the symbol.
Change Eagle file importer to use a two pass import. The first pass
parses the entire Eagle file into an associated E* object. The second
pass converts the parsed E* objects into the appropriate KiCad objects.
Improve handling of Eagle versioned libraries.
Add helpers to IO_BASE to ease handling of PROGRESS_REPORTER and REPORTER
objects.
ADDED: Support for importing Eagle schematic modules.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/1813
Reference, Value, Footprint and Datasheet all reference elements that
should not use trailing/leading whitespace or similar hidden charaters.
Other fields may utilize leading/trailing whitespace for obscure
purposes but won't break functionality as they are display only
Also removes the side-effect that SCH_SHEET_LIST's
c'tor would sort the list (and write virtual page
numbers) anytime the starting sheet was the root.
Also, definitely don't build a SHEET_LIST (sorted or
otherwise) if you're not even going to use it.
Also don't build SCH_SHEET_LISTs on idle events. Better
to just always have the Next Sheet button enabled (we
already beep if you click it and there's no next sheet).
Also, use a SCREEN_LIST when you can. It's much cheaper
to create.
Since the addition of all nets to the net navigator, performance on very
complex designs is unacceptable. Not updating the net navigator is a
cheap and dirty short term fix. Users with complex designs will not be
able to use the net navigator. A better fix to resolve the performance
issues needs to be implemented.
The benefit of incremental connectivity is only for larger
schematics. For smaller schematics, the downside of larger bug surface
outweighs the current benefits
Added Distance(VECTOR2) function that returns a double. Removed
superfluous EuclideanNorm, GetLineLength, integer constructor for
EDA_ANGLE (this promotes to double in the CTOR), DistanceLinePoint and
HitTestPoints
Also extended the size for arc calculations that get distances to center
points to avoid overflow
Also, handle the possiblity that we return NULL when calling
DeserializeFromString in the case where we don't handle all cases or the
file is corrupted
We look at the parent when deleting EDA_ITEMs but when clearing the test
sheet, we delete the sheet before the pin, causing a use-after-free.
Avoid this by setting parents to null in this case
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17961
This is primarily to change all instances of wxLogDebug with wxLogTrace
so developers do not have to sift through debugging output that is always
dumped. The only exception is for code blocks built in debug builds and
called on demand for dumping object states.
Overriding the color in draw() throws away the alpha that was set
due to aItem->IsSelected() in getRenderColor().
Instead, get the layer BG fill color in getRenderColor() before
the translucency is applied.
The selection heuristic broke down when one item was a filled
shape. Because all hit tests would succeed with distance 0 for
these shapes, they would always be considered the closest item
to the exclusion of all else, which made it very hard to
click on a graphic inside a filled shape.
Now, recognise when an item would be "dominating" and
decline to promote it to the "closet" spot. It will still
be selectable if there are no other items nearby, or if
there are multiple shapes.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17984
When moving / deleting a power symbol, in some instances the
symbol is marked dirty, and sometimes the pin (depending on
whether the symbol is the primary edited item, or whether
the pin is identified through an edited item subgraph). If
the pin and the symbol are marked dirty, the pin dirty flag
was not being cleared.
Additionally, not all extracted items were being deleted
from subgraphs correctly.
Both resulted in dirty state and duplicated items in the
subgraphs during incremental connectivity, which resulted
in essentially corrupted subgraph states.
for non English languages.
The main issue was the function compared a English string to a translated string.
However, even with this fix, the code, although working, is not very good:
It compare 2 members (BOM_PRESET .sortField string) that are not very significant
and can be or not translated.
This does not fix all field visibility and position issues. This is due
to LIB_SYMBOL objects not supporting per unit field properties. The
current Eagle importer sets multiple unit symbol field properties to the
last unit parsed in the Eagle schematic file. The upcoming two pass
importer will resolve this issue.