First, fix the error limit check in drc_test_provider_edge_clearance.
Then, we rotate the final point incorrectly in SHAPE_ARC::Collide (need
negative angle). We were not checking this result in the QA, so add the
proper tests
Prevent the file formatter from writing and the file parser from loading
symbol pin alternates that have an empty name or when the alternate name
is the same as the default pin name. Apparently at some point they were
able to be created and saved.
Do not allow SCH_PIN::SetAlt() to set an alternate name when the name
does not exist in the library symbol pin alternate list. This required
fixing the associated QA test.
When updating or changing schematic symbols from library, reset the pin
alternate to the default when the alternate no longer exists in the
symbol.
Do not populate pin alternates context menu with duplicate default pin.
Clear orphaned pin alternates to the default when saving symbols from
symbol editor.
- Fix size of converted polygon in Pcbnew
- Fix approximation of converted polygon in Eeschema: one cannot use ARC_HIGH_DEF
as error in Eeschema because this value is defined for Pcbnew, and not suitable
in Eeschema.
By dereferencing first, we force a get() on the optional and try to pass
that to a routine that takes an optional parameter. Just passing the
optional reference protects against accessing an invalid
Fixes https://gitlab.com/kicad/code/kicad/-/issues/20934
(cherry picked from commit 6c09957799)
ADDED: An option in the update symbol dialog to reset alternate pins to
their default value.
Don't set the symbol alternate pin when the updated symbol no longer
contains the alternate pin name.
Clear the alternate pin name when it's set to the default pin name. This
is caused by a bug somewhere which hasn't been resolved and it causes the
library symbol comparison to fail when it's set.
This also changes the change/update symbol dialog layout. Adding another
option check box was making the dialog too tall. The option check boxes
were split into two columns which made the dialog wider. It might be
worth using another wxCheckListBox for the options as more are added.
Not all hosts have `wxHAS_HUGE_FILES` enabled, which causes us to drop
millisecond resolution accuracy. In some cases, this can cause
race-conditions with externally generated components such as by KiBot
(which generates THT components with color bands on the fly), which runs
so fast, that we fall within a second resolution.
When setting the destination timestamp, there's only two valid options.
Either the destination file exists, and if it does, we use the
destination file's timestamp (current behavior) or it does not exist, in
which case we should use an 'invalid' (null, NaN, whatever).
Calling the constructor sets this up correctly and then only setting the
timestamp if the file exists. Nothing else.
Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/20877
2d2f443aa4 allowed the use of shift-enter
when creating tables for newlines. However, this should not be applied
to all text controls. We split the ones by IsMultiLine to determine if
the shift-return is a newline or a dialog close
Fixes https://gitlab.com/kicad/code/kicad/-/issues/20866
The lexicographical sort for hierarchical pages needs to satisfy the
following:
- Ensure a parent comes before all its children
- Ensure all children with the same parent are sorted by page number
- Ensure all of a parent's children come before the parent's next sibling
To do this, we need to compare at each path level before descending
Fixes https://gitlab.com/kicad/code/kicad/-/issues/20701
Code 307 is used for blind/buried vias. Additionally, the access layer
is represented based on sequential layer numbers and needed to be
adjusted for new layer numbering
Fixes https://gitlab.com/kicad/code/kicad/-/issues/20928
Passing a pointer to the CTOR invokes the PCB_FIELD( BOARD_ITEM* ) ctor,
which is not what is intended. Passing just the reference is better but
still ends up creating a PCB_FIELD class with type PCB_TEXT because it
didn't correctly set the type. So we need to properly set our type and
our parent, then copy the text attributes over. We can't use the
default copy operator because this also copies the struct_id of PCB_TEXT
Fixes https://gitlab.com/kicad/code/kicad/-/issues/20875
The crash was perhaps due to use after delete of data in DTOR functions, when
a footprint with a **lot** of graphics was loaded and the view cleared.
The view is now cleared before any other deletion.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/20915