Keep state for reuse in the class. This allows us to properly pick the
value when fully reannotating
Don't annotate when placing new units. Just step ahead in the unit
value while keeping the refdes number constant. This eliminates the
jumping around to unplaced units when placing new multi-unit symbols
Fixes https://gitlab.com/kicad/code/kicad/-/issues/21378
Recalculating creepeage every time we reported a new clearance error was
unneccesarily complex. Since the clearance errors are always straight
lines, we just need to calculate the closest approach and present that
segment
Fix handling of end point intersection case
Fix degenerate handling
Fix overflow cases
Simplify logic in SEG::Collide
Remove overly simplistic check for intersection
Add multiple QA regression tests
If global or local labels are floating -> error
If global or local labels are only connected to one pin -> warning
Rather than forcing two different errors depending on whether the label
is local or global
Different platforms/versions can result in very slight differences
when converting SVGs to PNGs for diffing them.
(cherry picked from commit 8b80853ad7269460a68b20ed9f2a0fd33a8cfef8)
This appears to have always been [-360 .. 360], as some tests in
test_shape_arc.cpp have had negative values for a very long time.
Add tests on the start, end and central angle accessors to enforce
the documented normalizations.
A placement-area is a rule-area sub-type. We don't
need to say rule-area-placement each time.
Also removes some dead code, and simplifies some
damage-propagation logic.
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.
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.
This adds the ability to export the pin table content to a CSV file
or the clipboard as CSV, then re-import it from CSV or TSV. This allows:
* to round-trip pin table data via a spreadsheet program, so that the pin
data can be manipulated in a richer/more familiar editing environment
* an import method to bring in tabular pin data from other formats
"semi-automatically", without having to write a full-blown symbol generator.
Relates-To: https://gitlab.com/kicad/code/kicad/-/issues/19207
- Adds time and delay units
- Adds time domain tuning parameters entry and storage
- Adds pad-to-die delay property
- Adds time domain parameter interface for length / delay calculations
- Adds unit tracking for numerical constants through LIBEVAL
- Will need future work to truly propagate through binary expressions
- Adds time domain tuning to meander placers
- Adds time delay display to net inspector panel
- Modifies DRC to handle time domain constraints