Commit Graph

1077 Commits

Author SHA1 Message Date
Mikolaj Wielgus 84dd515b6a s/Instatiable/Instantiable/, s/Instatiate/Instantiate/ 2021-11-29 21:20:57 +01:00
Mikolaj Wielgus 276f9abf8a Test LIB_ITEM rotation and mirroring 2021-11-29 21:20:57 +01:00
Mikolaj Wielgus 71bfbfaa70 Test SCH_PIN rotation and mirroring 2021-11-28 19:37:13 +01:00
Mikolaj Wielgus 2e1862de1c Run AutoAutoplaceFields() in SCH_SHEET constructor
A constructor should create a fully initialized object.
2021-11-28 18:46:28 +01:00
Mikolaj Wielgus 65dad31d48 Test SCH_SHEET rotation and mirroring 2021-11-28 14:01:20 +01:00
Seth Hillbrand 694bea187e Explicitly build nets when running test boards
Suggested by @craftyjon, this builds the list of nets needed for DRC
engine before running QA
2021-11-27 19:49:44 -08:00
Mikolaj Wielgus 65af3a8568 Make sheet pin positions invariant to four rotations more often 2021-11-28 02:18:18 +01:00
Mikolaj Wielgus 4b87c4c21c Test SCH_SHEET_PIN rotation
Also remove useless variables and memory leaks in tests.
2021-11-28 02:18:18 +01:00
Mikolaj Wielgus 513aba1552 Clean includes in EDA_RECT test 2021-11-28 02:18:18 +01:00
Mikolaj Wielgus 152a583863 Generic SCH_ITEM tests 2021-11-27 19:42:11 +01:00
Mikolaj Wielgus 22de7256ae Make sure all KICAD_T values are correct with a test 2021-11-27 19:42:10 +01:00
jean-pierre charras 7bd2073bc0 QA test: fix a not working test on msys2
KIID::SeedGenerator( 0l ) worked, but did not give same values for KIID
than calculated from another platform.
2021-11-27 09:27:37 +01:00
Jon Evans 1f27fff1ea Explicitly build connectivity for board after loading in QA 2021-11-26 10:28:21 -05:00
Jon Evans 08cb573e11 Do not propagate bus entries across buses and wires at the same point
Fixes https://gitlab.com/kicad/code/kicad/-/issues/9678
2021-11-25 13:36:30 -05:00
Jon Evans fa5f8cae96 Fix missing rename from ba6ae4fa 2021-11-25 11:20:39 -05:00
Jon Evans b4342d813b Fix SHAPE_LINE_CHAIN::Slice when end is an arc followed by a point
Fixes https://gitlab.com/kicad/code/kicad/-/issues/9770
2021-11-25 10:05:33 -05:00
Jeff Young ba6ae4fa9b Kicad has many plugins. This one is for the pcb. 2021-11-25 12:56:46 +00:00
Jon Evans 1e8284bc1a Add ability to seed the KIID generator
Fixes https://gitlab.com/kicad/code/kicad/-/issues/9689
2021-11-20 14:19:29 -05:00
Roberto Fernandez Bautista 8f1126bdfc Fix qa test utility GEOM_TEST::IsOutlineValid 2021-11-20 16:44:52 +00:00
Roberto Fernandez Bautista 389cb7d4bc Add SHAPE_LINE_CHAIN tests for arcs with shared points 2021-11-20 16:44:52 +00:00
Roberto Fernandez Bautista 17407b850c Add qa tests for SHAPE_POLY_SET arcs that wrap around from end to start 2021-11-20 16:44:52 +00:00
jean-pierre charras 3495135b08 Fix compil issue in QA (missing function) 2021-11-18 14:57:56 +01:00
Roberto Fernandez Bautista 3f60765016 Fix incorrect tolerance applied to CollideArcToPolygonApproximation qa test 2021-11-15 14:04:37 +00:00
Roberto Fernandez Bautista d47bd3a04d Rewrite broken collision routine SHAPE_ARC::Collide( SEG& aSeg ) 2021-11-15 14:04:37 +00:00
Roberto Fernandez Bautista 9b43689a76 Add SHAPE_ARC to SEG collision test cases 2021-11-15 14:04:37 +00:00
Roberto Fernandez Bautista ad3b4f25c2 Add tests for shape_line_chain collision containing arcs 2021-11-15 14:04:37 +00:00
Jeff Young 92e2f51f57 Fix duplicate UUIDs in test cases. 2021-11-09 16:12:14 +00:00
Mikolaj Wielgus e1cc7cfbe0 Change wire width from 5 mils back to 6 mils
These were remnants of https://gitlab.com/kicad/code/kicad/-/issues/7865
2021-11-07 14:32:27 +00:00
Mikolaj Wielgus 0260961fe3 Add test for EDA_RECT::Inflate 2021-11-06 18:23:02 +00:00
Johannes Pfister 64f77b3596 PNS: Add support for 90-degree corner modes
Fixes https://gitlab.com/kicad/code/kicad/-/issues/6902
2021-11-03 02:14:23 +00:00
Jeff Young eaf10a04dd Improved naming. 2021-11-02 20:07:34 +00:00
Peter Montgomery 71b07b59c5 Pcbnew: Added "All Items" clear/set to "Filter Selection" dialog 2021-10-29 09:56:14 +00:00
Floris Lambrechts f72f637a06 pcbnew: Add basic Python unit tests for CONNECTIVITY_DATA 2021-10-22 16:00:18 +00:00
jean-pierre charras c4e775c694 Fix bug in qa, drc_proto.h (link issue).
A virtual pure function was called inside drc_proto.h.
2021-10-16 10:55:19 +02:00
Jeff Young 81e72bafd7 Fix test case. 2021-10-15 21:27:16 +01:00
Jeff Young b52529521e Replace individual LIB_* shapes with LIB_SHAPE (based on EDA_SHAPE).
Also moves to more capable FILL_T model that can be shared.
2021-10-15 12:45:43 +01:00
Jeff Young 9b9e379aa0 Overhaul arc internal model to not over-specify information. 2021-10-15 12:45:43 +01:00
Seth Hillbrand 9a8d1246cc We don't keep a CHANGELOG.TXT
Direct interested readers to AUTHORS.TXT instead.
2021-10-05 19:46:53 -07:00
Seth Hillbrand 548e5f49bd Clean up unused variable usage
Unused variables in function calls can be commented out.  Unused
return variables get a new routine `ignore_unused()` that silences the
warnings with zero overhead.
2021-10-05 10:00:30 -07:00
Jeff Young 701623b50e Fix compile error in mocks. 2021-10-03 22:48:40 +01:00
Roberto Fernandez Bautista 4abee7c2eb Fix SHAPE_LINE_CHAIN::Split when inserting a point on an arc
Ensure the arc is split into two at the point specified.

Partly fixes https://gitlab.com/kicad/code/kicad/-/issues/9023
Additional work required to ensure that the shove state is preserved.
2021-09-26 15:15:51 +01:00
Jeff Young bf145dd633 Confine allow-locked-pad-selection-even-when-filtered to single-select.
Also make sure text in a locked footprint is not selected if the locked
items filter is unset.

Fixes https://gitlab.com/kicad/code/kicad/issues/9227
2021-09-24 18:58:22 +01:00
Roberto Fernandez Bautista dc1fd3d9ba PNS test app: Add logging information for curved track routing 2021-09-20 20:35:24 +01:00
Jeff Young b84d1456d5 KIFACE_I -> KIFACE_BASE. 2021-09-14 23:45:14 +01:00
Seth Hillbrand 60a593b44b Fix defines for qa mock 2021-09-05 19:28:33 -07:00
Jeff Young a397e85589 Implement PTH/NPTH/courtyard collision tests.
Fixes https://gitlab.com/kicad/code/kicad/issues/9081
2021-09-04 00:16:26 +01:00
Seth Hillbrand 8a305eec32 Remove broken RefDesStringCompare
This function attempted a poor-man's natural compare but it assumed
specific structure of the string.  This broke for strings with
numberings that looked like decimals.

Instead, we use our natural string comparison function and remove the
references to this older function and its similar elements.

Fixes https://gitlab.com/kicad/code/kicad/issues/9067
2021-09-01 11:48:01 -07:00
Seth Hillbrand 3a7721d41c Remove now-invalid mock call 2021-08-27 13:08:10 -07:00
Roberto Fernandez Bautista ed39b33d74 Fix edge case in CIRCLE::Intersect that caused a divide-by-zero crash
Also add some additional test cases.
2021-08-25 19:11:19 +01:00
Jeff Young e6ca9837a2 Clear numbers from non-numberable pads and don't run DRC on them.
This was also the last straw on the misnamed PAD::GetName() and
PAD::SetName(), which are now PAD::GetNumber() and PAD::SetNumber().

Fixes https://gitlab.com/kicad/code/kicad/issues/9017
2021-08-24 01:03:06 +01:00
Jeff Young 1e23ce1c95 Pull some fixes back from 7.0.
1) An earlier 6.0 fix to apply pad clearance overrides to NPTH pads
got broken, so this replaces it.

2) Allow min/max/opt to be set by different rules.

3) Fixes a bug where board minimum enforcement over a local override
didn't get the right message text.
2021-08-21 16:43:11 +01:00
Jeff Young 1a252b4f96 Add a compile error for ill-defined rules, and more performance.
Also adds const-safety to GetBoard().
2021-08-16 12:14:17 +01:00
Jeff Young 41619ebbe2 Decouple PROGRESS_REPORTER interface from implementations. 2021-08-14 21:05:49 +01:00
Jon Evans 80355f04a9 Fix SHAPE_LINE_CHAIN::Replace at end of chain 2021-08-13 16:59:45 -04:00
Roberto Fernandez Bautista d9cf939ba1 SHAPE_LINE_CHAIN::Replace Don't call front() or back() if empty
Fixes https://gitlab.com/kicad/code/kicad/-/issues/8949
2021-08-12 16:32:06 +01:00
Roberto Fernandez Bautista 22df01183d Fix edge cases in CIRCLE::Intersect that were causing KiROUND overflow 2021-08-11 17:31:27 +01:00
Roberto Fernandez Bautista c8944286c0 Fix qa_pcbnew memory dump in msvc
Quick fix for now as it was frustrating to run qa_pcbnew
and not be able to see the output
2021-08-10 21:29:25 +01:00
Jeff Young a208dac8d8 Convert hole clearance tests from NPTH holes to all holes. 2021-08-09 22:26:00 +01:00
Roberto Fernandez Bautista ae87dc686a Fix SHAPE_LINE_CHAIN::NearestPoint when aAllowInternalShapePoints=false
Fixes https://gitlab.com/kicad/code/kicad/-/issues/8770
2021-08-08 20:58:20 +01:00
Roberto Fernandez Bautista fb3a6ef2db Add qa Test for SHAPE_LINE_CHAIN::Slice 2021-08-08 19:09:54 +01:00
Jeff Young 1332208ab1 Update test expectation. 2021-08-06 22:24:33 +01:00
Roberto Fernandez Bautista eaf8eb284a Add true arc-to-polyline collisions 2021-08-05 17:45:12 +01:00
Roberto Fernandez Bautista dd65ce9523 Simplify & move new arc collision code into Kimath library
Don't need to check intersections with the circle, just fix the
calculated "projected" point from the end points.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/8234
2021-08-05 17:45:12 +01:00
Roberto Fernandez Bautista b6be10f05c Fix CIRCLE::Intersect( const SEG& aSeg ) and add unit tests 2021-08-05 17:45:12 +01:00
Tomasz Wlostowski 9c15ba9673 qa: arc playground with fixed endpoint corner case 2021-08-05 17:45:12 +01:00
Roberto Fernandez Bautista 2573ac19a5 Fix "false intersection" case and attempt to fix "missing intersection" 2021-08-05 17:45:12 +01:00
Roberto Fernandez Bautista 318435aedb Add more test cases: simulate zone fill around arc + diff pair meander 2021-08-05 17:45:11 +01:00
Roberto Fernandez Bautista f2925dc6cb Added a few more test cases 2021-08-05 17:45:11 +01:00
Tomasz Wlostowski 9922e85ecf arc collision playground: some cleanup 2021-08-05 17:45:11 +01:00
Tomasz Wlostowski 7e94f85870 arc collision playground 2021-08-05 17:45:11 +01:00
Tomasz Wlostowski 539154466d playground with arc2arc collision 2021-08-05 17:45:11 +01:00
Jeff Young c5e195bdff Cleanup (includes and formatting). 2021-08-03 18:37:23 +01:00
Wayne Stambaugh 813d8f0957 Fix broken QA build on Linux. 2021-08-03 12:02:42 -04:00
Jeff Young c00f4ed5d2 Add regression tests for track cleaner. 2021-08-03 16:17:18 +01:00
Jeff Young 43523df843 Measure distance from pad center, not pad hull.
Otherwise we think the wrong end of really short track segments is
connected to the pad, leaving the other end dangling.

Fixes https://gitlab.com/kicad/code/kicad/issues/8909
2021-08-02 22:42:54 +01:00
Jeff Young 2a2dc1c0ff Fix false test failures. 2021-08-01 22:18:18 +01:00
Jeff Young 878538abff Run each Boost test with it's own fixture. 2021-07-31 20:12:52 +01:00
Jeff Young faa1ff4ec6 Add false-negative DRC tests (and fix first bug found by them). 2021-07-31 16:41:44 +01:00
Jeff Young bceb3794f8 Remove ZONE_FILLER_TOOL since it's not really necessary.
It was causing intermittent failures on GTK.  We'll no doubt want
tools in the QA framework at some point, but probably not necessary
for 6.0....
2021-07-31 01:50:42 +01:00
Seth Hillbrand 5155093ec0 Fix compile issue on gcc 2021-07-30 15:13:34 -07:00
Jeff Young 8d6cd4ad99 Add a bunch more zone fill and DRC regression tests.
Also tries to fix a compile issue on gcc.
2021-07-30 21:15:21 +01:00
Jeff Young b8bb04c432 Release project before potentially reloading project and board. 2021-07-30 18:37:14 +01:00
Jeff Young 8c69a856fc Add zone filler tests.
One test has pads of a bunch of different shapes and provokes some
errors to make sure they're caught.

The others are all past issues with the zone filler to make sure we
don't suffer any regressions.  (They should all just pass with no DRC
errors.)
2021-07-30 17:09:24 +01:00
Jeff Young 6aaf4413b3 Fix kicad_string.h / string.cpp mismatch.
They don't define a KiCad string class, so the header file name was
somewhat misleading. But the fact that they didn't match definitely
made coding more difficult.
2021-07-29 16:03:25 +01:00
Jeff Young f221220fe2 Rename layer ids file.
It hasn't had anything to do with colors or visibility for some time
now.
2021-07-29 16:03:25 +01:00
Wayne Stambaugh 43cb710297 Fix broken PNS router QA build. 2021-07-27 15:07:56 -04:00
Wayne Stambaugh 37b200cb3e Pass wxString objects by reference instead of on the stack. 2021-07-27 08:41:27 -04:00
Jeff Young 531f5480a7 Reduce line-breaks and increase SNR. 2021-07-24 14:25:59 +01:00
jean-pierre charras 7869ac7e67 fix typo in commit f16239d 2021-07-22 20:45:22 +02:00
jean-pierre charras f16239d326 QA test: try to fix a compil problem on MSVC only 2021-07-22 20:41:37 +02:00
jean-pierre charras e35b469f30 QA tests: fix a few compil issues due to code change. 2021-07-22 18:18:12 +02:00
Jeff Young 4319d92a12 Fix test breakage from dialog onClose() change. 2021-07-22 15:55:55 +01:00
Jeff Young 0fb864d596 Pull some name changes back from 7.0 to ease merging. 2021-07-21 20:58:59 +01:00
Wayne Stambaugh bf80b9c04c Last of the NULL expunging. 2021-07-20 10:32:22 -04:00
Jeff Young fbd267665b Fix test case. 2021-07-08 18:23:28 +01:00
Jeff Young a4263ebce5 Clean up Altium special string handling
1) Fix a couple of bugs in case processing
2) Make case processing more explicit to prevent more (1)
3) Move label processing to AltiumSpecialStringsToKiCadVariables
4) Strip double-quotes from special strings (and add test cases)
5) Change PROJECTNAME to just filename, not full path
6) PROJECTREV and REVISION are two different things
7) Add support for Altium's Application_BuildNumber
8) Fix some issues in trimming spaces around special strings
2021-07-08 15:34:38 +01:00
Wayne Stambaugh 9d348d7e6d Coverity issue fixes. 2021-07-06 13:32:34 -04:00
Roberto Fernandez Bautista cee5920d5c Remove dead code (SHAPE_LINE_CHAIN::DetectArcs) 2021-07-03 19:37:50 +00:00
Roberto Fernandez Bautista 778c64de88 Implement ClearArcs() and check curved polys don't get a booleanOp
We cannot (yet) support passing several curved outlines through clipper.
In these cases, the caller should ClearArcs() before processing.
2021-07-03 19:37:50 +00:00
Roberto Fernandez Bautista 260a9d0540 Use ZFillFunction to modify arcs post clipper (does not fully work yet)
Added a unit test to verify union and intersection of polygons result
in desired results: subject + clip - intersect == union
2021-07-03 19:37:50 +00:00
Roberto Fernandez Bautista a9a8aa8243 SHAPE_LINE_CHAIN splitArc on Insert, Remove and Replace
This ensures that the arc shapes remain correct after removing
a point belonging to an arc or inserting a point in the middle
of an arc.

Simplify implementation of Replace( ..., aP ). Now a Remove
operation followed by an Insert operation.

Improve QA test for SHAPE_LINE_CHAIN Append, Insert and Replace

Implement SHAPE_LINE_CHAIN::splitArc to break up an arc into two

Implement SHAPE_ARC::ConstructFromStartEndCenter and add qa test
2021-07-03 19:37:50 +00:00
Roberto Fernandez Bautista 2f069c0b19 Add test for detecting arcs post clipper 2021-07-03 19:37:50 +00:00
Roberto Fernandez Bautista e54a44e1d3 Add qa test for SHAPE_POLY_SET::Simplify() 2021-07-03 19:37:50 +00:00
Roberto Fernandez Bautista 3ee8b4825c Implement SHAPE_LINE_CHAIN::DetectArcs and add qa test 2021-07-03 19:37:50 +00:00
Roberto Fernandez Bautista 14c3d9055e Add CIRCLE::Contains( VECTOR2I aP ) and add unit tests 2021-07-03 19:37:50 +00:00
Wayne Stambaugh 175b474c3e Coverity issue fixes.
Fixes issues #280412, #314755, #329615, #332459, #332157, #332167,
2021-06-30 18:08:49 -04:00
Jeff Young 5c21f93803 Consistency in progress and error messages. 2021-06-26 13:23:43 +01:00
Thomas Pointhuber e50eaed7b9 altium: Improve parsing of UTF-8 data
This is an implementation based on d4ccec05 from @fxtentacle
2021-06-26 13:58:56 +02:00
Jeff Young 81fc710a5d Use consistent terminology.
Fixes https://gitlab.com/kicad/code/kicad/issues/8681
2021-06-26 10:11:41 +01:00
Roberto Fernandez Bautista cd130be2db Fix PNS Test App and enable build option in CI 2021-06-24 11:24:50 +00:00
Jeff Young 3d7e18561d Checkpoint of app-specific single-instance checking.
(I'm about to nuke single-instance checking entirely, but wanted to
make sure this was captured in GIT somewhere.)
2021-06-20 21:37:02 +01:00
Tomasz Wlostowski 24e7924997 qa: fixed building of the P&S debug tool after the changes/refactoring of the 3D viewer code. The tool can now be built
if KICAD_BUILD_PNS_DEBUG_TOOL is ON.
2021-06-19 23:21:23 +02:00
Jeff Young 89718dd3ba Naming conventions. 2021-06-19 19:36:53 +01:00
Wayne Stambaugh ee3eac325d Expunge the use of the word part from Eeschema code. 2021-06-15 08:32:11 -04:00
Wayne Stambaugh 71c183d7bb Rename LIB_PART to LIB_SYMBOL. 2021-06-14 07:11:17 -04:00
Jon Evans 82f3df4086 Attempt to fix Python qa code after renames 2021-06-13 11:20:19 -04:00
Jeff Young 096e342386 Prefix TRACK, ARC and VIA. 2021-06-11 22:07:02 +01:00
Jeff Young 44086ff2b2 Pull 3D preferences into KiCad preferences architecture.
Fixes https://gitlab.com/kicad/code/kicad/issues/5187
2021-06-11 11:19:40 +01:00
Wayne Stambaugh fbc135e69f Rename SCH_COMPONENT to SCH_SYMBOL. 2021-06-10 10:34:49 -04:00
luz paz f968fc8719 Fix source comment / documentation typos 2021-06-09 19:32:58 +00:00
Jon Evans e42f4a8f70 Fix build of PNS log viewer after header changes 2021-06-06 16:07:38 -04:00
Marek Roszko df10067bc2 Fix DRC qa build 2021-06-06 15:33:45 -04:00
Tomasz Wlostowski 5a325c59db qa/pns: playground tool now can draw lines with annotated vertices 2021-06-03 22:44:53 +02:00
Tomasz Wlostowski 5c01b0a32e qa: prevent double pybind11 initalization (throws an exception) 2021-06-03 22:44:53 +02:00
Ian McInerney 4f05262705 Cleanup includes in board.h and footprint.h 2021-06-03 20:19:52 +01:00
Ian McInerney 23f8851409 Remove pcb_group include from board header 2021-06-03 20:03:31 +01:00
Seth Hillbrand de89505f02 Fix QA for rounding segments 2021-06-03 10:18:50 -07:00
Seth Hillbrand c7d188a8d0 Centralizing SCRIPTING class 2021-06-01 20:18:24 +00:00
Seth Hillbrand 81d58bcea9 Working python window 2021-06-01 20:18:24 +00:00
Tomasz Wlostowski a0e28f1475 qa/pns: follow up changes in PNS::DEBUG_DECORATOR in the log viewer tool 2021-05-29 00:13:24 +02:00
Tomasz Wlostowski 1c23b505e0 qa/pns: factor out simple 'playground' app to a separate file 2021-05-29 00:13:24 +02:00
Tomasz Wlostowski d31d2e28ca qa/pns: work in progress on pns_log_viewer. 2021-05-29 00:13:24 +02:00
Tomasz Wlostowski ea4161c42f qa_utils: remove mockups that are not used anymore 2021-05-29 00:13:24 +02:00
Seth Hillbrand e2785b117b Fix Locale issue in QA tests 2021-05-28 13:25:18 -07:00
Jeff Young 4c3d78dec0 Break out separate holes-co-located violation.
Fixes https://gitlab.com/kicad/code/kicad/issues/8456
2021-05-20 10:36:56 +01:00
Sylwester Kocjan 31da3e7dc6 qa: merge unit_test_utils to qa_utils 2021-05-19 11:02:52 +00:00
Jon Evans 55c1d814f9 Fix hierarchical propagation for designs with unmatched hier ports
Fixes https://gitlab.com/kicad/code/kicad/-/issues/8397
2021-05-10 17:54:09 -04:00
Tomasz Wlostowski ce0ec29fe6 qa: test case for PROPERTY::IsValueDefined() 2021-05-03 23:45:54 +02:00
Roberto Fernandez Bautista 0f0c5c194b Add qa test: save and reload schematic with page numbers
Note: PGM_BASE::InitPgm() is creating a SETTINGS_MANAGER object, which
in turn tries to display a "migrate settings" dialog when no settings
are found, but obviously the dialog can't be displayed inside docker.

Needed to add an optional parameter to InitPgm() in order to allow
running in headless mode.
2021-05-03 19:38:31 +01:00
Roberto Fernandez Bautista ae009e0758 Ensure clipboard data is available after KiCad closes
Always Flush() after SetData()
2021-05-03 19:38:31 +01:00
Marek Roszko 03cf2b517f Enum class PAD_ATTR_T
Renamed such that python stays the same
2021-05-01 10:51:54 -04:00
Marek Roszko 21fde9b629 enum class PCB_SHAPE_TYPE_T 2021-04-30 22:36:12 -04:00
Jeff Young 13473420e5 Remove duplicated routine and fix bug in UTIL version. 2021-04-17 15:10:59 +01:00
Ian McInerney 4fc41627e9 Update and modernize linux metadata files
* Switch to using org.kicad.kicad as the main app ID
* Move the appstream file to a metainfo file
* Rename all metadata files to use the reverse DNS scheme
* Add header matching to mime type files where possible
* Add a mime type for gerber job files
* Add a QA test that verifies all the linux metadata files and
  run it in CI
* Update the visible names in the launcher entries to be more
  consistent with the internal visible names
* Update various strings and items in the metainfo file so they
  are more descriptive and easier to read
2021-04-15 16:34:12 +00:00
Wayne Stambaugh 2b86b34124 Eeschema: split out SCH_SHEET_PIN declarations into separate header. 2021-04-06 17:15:49 -04:00
Jon Evans 2c05d99d9f SHAPE_POLY_SET: Fix segment collision testing
It appears as though there was an optimization to skip testing segments if
one of their endpoints (and only the A point) was inside.  Unclear the reason
for this, but I'm going to assume that it was intended to optimize the case
where both points are inside (like the point case above it).
2021-04-04 20:12:45 -04:00
Ian McInerney 0a0935e0f3 Remove ACTIONS::TranslateLegacyId and TOOL_DISPATCHER::DispatchWxCommand
After commit 9535153f9e there were no more IDs inside the legacy ID
system. Therefore the entire system for dispatching and looking up
the legacy ideas and handling those events can now be removed and
the tool dispatcher simplified (it no longer needs to know about
the ACTIONS class).
2021-03-30 23:20:22 +00:00
Thomas Pointhuber 68f3d09ac1 altium: introduce tokenizer for query language
Based on this tokenizer, a LL1 parser will be built in the future.
2021-03-21 16:39:23 +01:00
Thomas Pointhuber d9229697d8 altium: special string override map should be case-insensitive
This only fixes overrides where we explicitly map an override. Wrongly written variables pointing to fields are not corrected by this.

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/6256
2021-03-20 20:42:25 +01:00
Thomas Pointhuber cd26db24f9 altium: allow text in special strings
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/6256#note_529783269
2021-03-20 19:25:57 +01:00
Roberto Fernandez Bautista e4b99b9bb5 Fix SHAPE_ARC::Collide and add Unit Tests 2021-03-20 16:11:43 +00:00
Jon Evans 1d879e36cc Make drc_proto an optional part of the build 2021-03-20 12:09:20 -04:00
Jeff Young 812d38736e Naming conventions. 2021-03-19 23:06:19 +00:00
Thomas Pointhuber 4482b3baba altium: Handle special strings and convert them into KiCad variables. Use Comment for VALUE.
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/6256
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/7736
2021-03-14 16:40:36 +01:00
Jon Evans b20f18e6c5 Properly handle mixed-up group buses
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7870
2021-03-11 18:24:39 -05:00
Thomas Pointhuber 7ef9082c86 altium: add unit-tests for ReadProperties() and fix some issues found while doing so 2021-03-08 23:03:00 +01:00
Jon Evans 5ca7a2c457 Fix some issues with group bus prefix handling
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7196
2021-03-04 23:37:46 -05:00
Wayne Stambaugh 7a00e01b3e Eeschema: fix false positive library symbol changed ERC errors.
This fix required sorting all of the LIB_PART draw items to ensure
accurate comparison between the symbols stored in the schematic and the
original library symbols.  This has a noticeable impact on symbol library
load performance.  It may also cause significant changes the next time
the library is saved due to changes in the draw item sorting.  Hashing
may be a better solution here but this addressed the immediate problem.

A skeleton method SCH_SCREEN::SwapSymbolLinks() was added because there
is most likely an issue with orphaned symbols in the schematic library
symbol cache during undo/redo operations.  More testing is required to
verify this.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/7263
2021-03-04 17:59:24 -05:00
qu1ck cc6df515a1 Make ARCs accessible from python 2021-03-01 17:34:47 +00:00
Jeff Young 8a33542bcd SCH_COMPONENT::GetField() expects a vector index, not a field id.
Check this at compile time.  Callers wanting to use an index now must
use SCH_COMPONENT::GetFields()[i] instead.

Fixes https://gitlab.com/kicad/code/kicad/issues/7757
2021-02-28 15:10:37 +00:00
Seth Hillbrand 824a942f55 Update Python test QA
We don't need to explicitly calculate the bounding box anymore as it is
lazily calculated when needed
2021-02-26 13:55:36 -08:00
Tomasz Wlostowski 04d058d60a qa: don't enable the P&S hacktool build by default 2021-02-25 17:18:23 +01:00
Tomasz Wlostowski 6936b98469 qa: router debug/hack tool.
Adds Tom's internal P&S debugging tool. This is a work in progress and the code is quite messy for the moment, but I can't keep it in private branches forever and waste time rebasing it.

Note: experimental and *very unclean* code. Use at your own risk.
2021-02-25 17:18:23 +01:00
Wayne Stambaugh 1786ae8773 Eeschema: use symbol nomenclature for object file naming. 2021-02-24 08:48:02 -05:00
Jon Evans a8ef81aef1 Don't track project local settings in this repo 2021-02-21 20:30:57 -05:00
Jon Evans 67f16110af Fix netlist QA after API changes in 8a12aa4e 2021-02-21 20:30:57 -05:00
Marek Roszko 872184fe8b Revert "Bump minimum required CMake version to 3.10"
This reverts commit a475f45753.
2021-02-09 18:46:13 -05:00
Simon Richter a475f45753 Bump minimum required CMake version to 3.10
This allows us to remove even more workarounds
2021-02-08 12:23:08 +00:00
qu1ck 5c3ee0443c Make footprint properties accessible from python
Now that footprint properties inherit custom fields from schematic
they are very useful.

Setting custom properties from python will also be handy in plugins
that need to somehow mark their own objects.
2021-02-05 02:31:48 +00:00
Thomas Pointhuber e5ea94c90b altium: add testcase for PropertiesReadKiCadUnitFrac 2021-02-04 20:16:34 +01:00
Seth Hillbrand 8778599c0d Apply same nettie hack to zone filler
The nettie hack is used in DRC but we also need to use it in zone filler
to allow zones to be used with netties.  We limit this to the
appropriate nets in the nettie

Fixes https://gitlab.com/kicad/code/kicad/issues/7351
2021-01-31 16:16:48 -08:00
Thomas Pointhuber db3b79a046 altium: Fix #6462 improve parsing of metric units
Because Altium uses imperial units for storage, this leads to rounding errors.
This code tries to correct those rounding errors for the user.
2021-01-31 16:18:57 +01:00
Thomas Pointhuber 9ddfd82b91 altium: Fix #6242 by increasing clamp limit for unit conversation. Furthermore fix error which happens when parsing negative units. 2021-01-31 13:59:51 +01:00
Jeff Young ff7742c6b8 File naming and include cleanup. 2021-01-28 11:35:18 +00:00
Roberto Fernandez Bautista 99d203feae Clarify CIRCLE::ConstructFromTanTanPt
Remove unused bool aAlternateSolution and add doxygen comments
2021-01-24 16:41:11 +00:00
Roberto Fernandez Bautista 48823c0723 Formatting fixes and fix qa_kimath following rebase 2021-01-24 16:41:10 +00:00
Roberto Fernandez Bautista 19620cebe7 qa tests: fix test_circle 2021-01-24 16:41:10 +00:00
Roberto Fernandez Bautista 6ed5ed52b8 qa tests for CIRCLE geometry library 2021-01-24 16:41:10 +00:00
Roberto Fernandez Bautista b6a50d2f74 qa tests for SEG perpendicularity and parallelism 2021-01-24 16:41:10 +00:00
Roberto Fernandez Bautista 6e7ae93cc8 EDIT_TOOL::DragArcTrack Fix incorrect undo history when items are deleted
Need to make sure we only apply one COMMIT operation per object before calling COMMIT::Push() or COMMIT::Revert()
2021-01-24 16:41:10 +00:00
Jeff Young 977fe1ed49 Update netnames in tests for now (though Jon will probably change them). 2021-01-23 10:46:45 +00:00
Jon Evans 1491330596 Fix various memory leaks exposed by qa_eeschema 2021-01-18 22:40:58 -05:00
Jon Evans 915bf95d4d Add no-connects testcase 2021-01-14 21:01:03 -05:00
Jon Evans 02681fcf0e Move no-connect processing to connection graph
This way the net names can be inspected in eeschema and cross-probing works.
Testcases updated for the name changes

CHANGED: all unconnected pins are now included in the netlist with no_connect_ prefixes
2021-01-14 20:55:49 -05:00
Jon Evans 9b69c1e198 Fix a bone-headed cause of non-determinism 2021-01-14 19:20:37 -05:00
Jon Evans 654e9a77db Connectivity: defer and parallelize item updates
Good for ~15% performance improvement in large designs
2021-01-14 12:21:19 -05:00
Jon Evans 6fb1ed2824 Make sure hierarchical overrides are deterministic
Without alphabetic sorting here, we are at the mercy of
the r-tree and multithreading.
2021-01-14 12:21:19 -05:00
Jeff Young 3e920c665f Special case via area generation.
Fixes https://gitlab.com/kicad/code/kicad/issues/7105
2021-01-14 12:48:44 +00:00
Jon Evans b90e72ed07 Don't simplify hierarchical nets based on weak drivers
This behavior provided shorter net names, but was confusing if
the user gives an explicit strong driver in the subsheet but not
one in the parent sheet.

Testcases updated for net name changes; connectivity is the same

Fixes https://gitlab.com/kicad/code/kicad/-/issues/4201
2021-01-13 22:10:56 -05:00
Jeff Young f30cea8034 Formatting. 2021-01-12 23:56:35 +00:00
Michael Kavanagh b40e3a39f5 Minor cleanup. 2021-01-04 23:59:36 +00:00
Jon Evans 487aa37d2e Connectivity: don't rename things multiple times in subsheets
Depending on what order the subgraphs are processed in, it's
possible to hit a case where the parent sheet renames a bus
member before the bus neighbor renaming logic runs.  In this
case, we don't want to apply the bus neighbor logic as it will
break connectivity to the parent sheet if that bus was not
also renamed (for example, if the hier ports only make net
connections and not bus connections)

Fixes https://gitlab.com/kicad/code/kicad/-/issues/6887
2020-12-29 16:42:30 -05:00
Jeff Young efd16dca66 Fix a bunch of issues with group selection and highlighting.
Fixes https://gitlab.com/kicad/code/kicad/issues/6686
2020-12-29 12:41:24 +00:00
Wayne Stambaugh 60ebd177fd Header clean up round 5. 2020-12-21 18:42:21 -05:00
Wayne Stambaugh f311831c27 Coverity fixes.
280252, 314742, 314745, 314747, 314755, 314756, 314757, 314758,
314935, 314936
2020-12-20 13:24:47 -05:00
Jeff Young acfbcb4beb Make distinction between PCBNew-wide tools and Board-specific tools.
The old names were really hard to keep straight (even for me, who named
many of them).
2020-12-16 13:32:46 +00:00
Jeff Young 10e68daa37 Fix some bugs in Change Symbol and Update Symbols.
In particular, there was a typo that kept library values from being
updated, and there was missing logic to fetch the various field names
from the library parts (and the change-to part).

Also implements some performance gains by desisting from copying
LIB_FIELDs around every time we want to look at them.

Fixes https://gitlab.com/kicad/code/kicad/issues/6733

Fixes https://gitlab.com/kicad/code/kicad/issues/6749
2020-12-15 16:12:17 +00:00
Jeff Young 797a588015 Aliases should inherit their descs, keywords, and fp filters.
Assuming they're not set locally, of course.

Also updates to new class structure order.

Fixes https://gitlab.com/kicad/code/kicad/issues/6051
2020-12-14 13:48:26 +00:00
Jeff Young 98330098ac Yet another overhaul to locking.
This unifies everything under a single architecture with a "don't
show again" dialog.  Since everything now goes through the same
path it should be reasonably easy to make it do whatever we want
in the future.

Right now it presents 3 options: modify only unlocked items, override
locks and modify all items, or cancel command.
2020-12-10 17:36:19 +00:00
Jeff Young 9113f93ebe Uniformly apply current locking strategy.
I make no claims that this is the right strategy, but at least it's
consistent now.

Fixes https://gitlab.com/kicad/code/kicad/issues/6369
2020-12-10 01:34:37 +00:00
Jeff Young b1f0bf7334 More consistent naming. 2020-12-08 13:05:39 +00:00
Jeff Young 9ece90a541 Fix off-by-one error in exporting netlist, and update testcases.
The golden file update entails the change to no-connects as well as
the introduction of natural number ordering.
2020-12-04 19:37:55 +00:00
Jeff Young 889408c96a More improvements to new selection disambiguation.
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
2020-11-29 14:02:46 +00:00
Jeff Young 8633410bec Fix some missed renaming in qa suite. 2020-11-28 12:30:26 +00:00
Jeff Young 9c7c05c161 Mostly formatting cleanup but a few type-casting cleanups too. 2020-11-24 22:16:41 +00:00
Marek Roszko 45598f2933 Add handling of DXF arbitrary axis/extrusions
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.
2020-11-23 21:24:38 -05:00
Jeff Young c67c13bc1d Update netlist goldens (properties, natural order, no-connect nets). 2020-11-23 22:09:15 +00:00
qu1ck b32c2a6c90 Refactor EDA_TEXT::TransformToSegmentList() to return a vector of points
This allows reading text object as it is rendered through python API.
2020-11-23 07:50:54 +00:00
Jeff Young b227d2b910 More component -> symbol. 2020-11-15 20:23:15 +00:00
Jeff Young 6654c03041 Embarking on the next adventure: component -> symbol. 2020-11-15 20:23:15 +00:00
Jeff Young 8a4992b528 Add missing file. 2020-11-14 22:09:43 +00:00
Jeff Young d094f86b1a Finish module cleanup (except for xpms). 2020-11-14 22:00:12 +00:00
Jeff Young 61bca4aaa4 A bit of "module" erradication, nameing conventions, and formatting. 2020-11-14 21:21:54 +00:00
Jeff Young 7bd31d5237 Naming conventions. 2020-11-14 18:26:03 +00:00
Dominik Wernberger 28991ddf58 Rename D_PAD to PAD 2020-11-14 09:37:45 +00:00
Dominik Wernberger 54878b04a5 Rename MODULE to FOOTPRINT 2020-11-14 09:37:45 +00:00
Dominik Wernberger d8cfe834f9 Rename FindModuleByReference to
FindFootprintByReference
2020-11-14 09:37:45 +00:00
Dominik Wernberger a4650e7269 Rename GetModules to GetFootprints 2020-11-14 09:37:45 +00:00
Jeff Young 86b6afd14b More cleanup of MODULE to see if it fixes SWIG error. 2020-11-13 21:07:36 +00:00
Jeff Young bdbb68f813 MODULE -> FOOTPRINT. 2020-11-13 16:04:03 +00:00
Jeff Young 52a46341db More module -> footprint. 2020-11-13 15:16:24 +00:00
Jeff Young f5443de7f9 D_PAD -> PAD. 2020-11-13 15:16:24 +00:00
Jeff Young f0d0e17aab Prepare for MODULE -> FOOTPRINT. 2020-11-13 15:16:24 +00:00
Jeff Young 84dd5108ba Remove some "class_" prefixes from files. 2020-11-13 15:16:23 +00:00
Jeff Young f7333ad64a Update some classnames including archaic zone names. 2020-11-12 10:31:25 +00:00
Wayne Stambaugh 4ea3914d4e Coverity fixes.
CIDs: 312996, 305508, 305509, 305510, 312992, 312997, 312994, 312995,
312968, and 306650.
2020-11-10 08:50:16 -05:00
Jeff Young 115fd1d7f3 Move track-to-zone testing to RTrees.
Also implemente pad-to-zone testing and removes the control in the
GUI (now that it's fast).
2020-10-31 15:45:41 +00:00
Seth Hillbrand 9ed6cdd943 Remove GITHUB plugins
KiCad github downloads are no longer supported

Fixes https://gitlab.com/kicad/code/kicad/issues/6182
2020-10-29 16:45:04 -07:00
Jon Evans a900fb319d Add testcase for bus junctions problem 2020-10-27 23:02:49 -04:00
Ian McInerney 6bd3b0afa4 Various Coverity fixes 2020-10-27 00:25:08 +00:00
Ian McInerney 31e626f279 Cleanup creation of all our smart pointers 2020-10-26 23:52:44 +00:00
Jeff Young 2bee40687f Cleanup.
This test was moved some time ago.
2020-10-26 15:36:07 +00:00
Marek Roszko 1984581c46 Remove common.h from more headers 2020-10-25 22:29:53 -04:00
Marek Roszko 1167862c86 Split wx_filename out of common 2020-10-25 20:01:13 -04:00
Jeff Young 1cb7fbaab1 Fix errors in arc polygonization and test case.
1) Tests can't expect accuracies around 1 to work.  PCBNew defaults
to 5000.
2) Tests shouldn't artifically expand tolerance just to match the
results.
3) Tests should guarantee that end point is on arc, not just close
to it.
4) Standard polygonization of a circle is inside so splitting the
error needs to increase radius, not decrease.
5) Special-case first and last points so that they're exact.
2020-10-23 23:55:45 +01:00
Seth Hillbrand 19bf594aa0 Remove unused point in polygon test
There can be only one.
2020-10-23 12:13:09 -07:00
Tomasz Wlostowski 30830d9127 qa/kimath: trivial test case for POLY_GRID_PARTITION 2020-10-23 01:18:07 +02:00
Jeff Young 909dca71cd Fix test_sch_sheet_list to run headless. 2020-10-21 13:45:02 +01:00
Seth Hillbrand f8a4edb1c9 First pass renaming module to footprint
This is mostly in comments and the few remainin text strings that
reference module
2020-10-20 20:49:11 -07:00
Roberto Fernandez Bautista 006c462d8f ADDED: Fillet Tracks tool in pcbnew
Select two or more track segments and run the "Fillet Tracks" tool.
2020-10-20 21:23:05 +00:00
Seth Hillbrand 4085757aeb Remove beginning/ending spaces in translations
Adding space padding makes translations more difficult by increasing
string counts
2020-10-20 12:08:04 -07:00
Wayne Stambaugh 8ff51d8899 Eeschema: add schematic sheet page number.
The groundwork has now been laid for per sheet instance data.  Initially
this only supports sheet page numbers but could be expanded to include
other per sheet instance information.

ADDED: Support for user defined schematic page numbers.
2020-10-19 14:05:45 -04:00
jean-pierre charras 539ac4c214 Remove a few include<wx/wx.h> in many files that do not actually use this include. 2020-10-19 09:00:50 +02:00
jean-pierre charras f6b4b66a86 Avoid include wx/wx.h in many files that do not actually use this include.
Including wx.h includes the full set of wxWidgets include files, that is not good,
and can create some conflicts with some Windows headers on msys2.
2020-10-18 18:21:34 +02:00
Marek Roszko a1c75748a0 Remove GetChars(), a wxWidgets 2.9 compatibility hack 2020-10-15 20:53:25 -04:00
Jeff Young 1703729269 Require explicit decl of maxError and errorLocations.
This should reduce both performance issues and clearance issues.
2020-10-13 13:49:07 +01:00
Jon Evans 2abce40553 Better selection heuristics for highlight tool
Fixes https://gitlab.com/kicad/code/kicad/-/issues/4011
2020-10-12 22:47:31 -04:00
qu1ck e784743284 Fix pcbnew drawings api
Add some basic tests
2020-10-12 16:38:32 +00:00
Michael Kavanagh c40483d18a Cleanup: Move KiCad files into plugins folder 2020-10-12 16:36:08 +00:00
Jeff Young 42eecdfd3a Collapse silk constraints down to one.
Also updates the rule syntax help and code-completion with a bunch
of diff-pair and other stuff that hadn't been updated yet.
2020-10-11 13:19:23 +01:00
Jon Evans 61f731aa1d Fix disambiguation for vector buses with different ranges
Previously disambiguation was looking for exact matches,
but vector buses are permitted to have different ranges and
still participate in merging, so they need to be disambiguated.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/5925
2020-10-08 22:26:24 -04:00
Tomasz Wlostowski 5e4fb46aef MINOPTMAX: added OptThenMin() method as syntax sugar 2020-10-09 00:01:26 +02:00
Roberto Fernandez Bautista 9faccda68d Fix compile errors in MSVC 2020-10-07 19:33:46 +01:00
Tomasz Wlostowski 1d34845683 qa: added missing files 2020-10-07 17:49:27 +02:00
Tomasz Wlostowski d24e0ea7a0 qa: fix build script 2020-10-07 17:43:12 +02:00
Tomasz Wlostowski bd27d38d9a DRAW_PANEL_GAL: added DebugOverlay() method, creating a temporary overlay for drawing debug graphics 2020-10-07 16:36:37 +02:00
Michael Kavanagh 42496a7d62 Convert DRC rules syntax help to markdown
Note, the original markdown spec specifies using 4 spaces to indent a
code block (https://daringfireball.net/projects/markdown/syntax)

Wrapping with three backticks doesn't work with this lib. Wrapping
with a single backtick for span elements works ok.
2020-10-06 17:18:35 +00:00
Jon Evans 76bfa47a77 Allow creating new projects when doing a Save As in eeschema 2020-10-05 22:36:26 -04:00
Jeff Young 37906511f5 Class renaming.
DRAWSEGMENT  -> PCB_SHAPE
EDGE_MODULE  -> FP_SHAPE
TEXTE_PCB    -> PCB_TEXT
TEXTE_MODULE -> FP_TEXT
2020-10-05 11:55:33 +01:00
Jeff Young 7a4900b8dc PCB_LINE_T -> PCB_SHAPE_T and PCB_MODULE_EDGE_T -> PCB_FP_SHAPE_T
Also updated footprint text and zone types for consistencey.
2020-10-04 16:49:04 +01:00
Jeff Young 85c6cebd77 Rework silk-to-pad checker to handle all solder mask clipping of silk.
Fixes https://gitlab.com/kicad/code/kicad/issues/5851
2020-10-04 13:21:01 +01:00
Mikolaj Wielgus d9fd6e549b Remove "useMils" variable from numeric evaluator 2020-10-03 20:06:56 +00:00
Mikolaj Wielgus 400c15b8eb Add mils to units, remove useMils variables 2020-10-03 20:06:56 +00:00
jean-pierre charras 3144bab36f final cleanup about removing useless include 2020-10-03 16:40:36 +02:00
jean-pierre charras f702da95c7 Minor code cleanup, step2: remove more useless include.
fix also a minor compil warning
2020-10-01 15:39:47 +02:00
jean-pierre charras 3f8c9d49f8 Revert "Code cleanup: remove useless wx/wx.h include inside a few files."
due to compil issue on Linux

This reverts commit cffccc3970.
2020-09-30 20:47:20 +02:00
jean-pierre charras cffccc3970 Code cleanup: remove useless wx/wx.h include inside a few files.
in most of files, including wx.h is not necessary, when only 2 or 3 wx files must be included.
Moreover, on windows, including wx.h sometimes create compil warnings about
shadowed vars defined in some specific windows headers.
2020-09-30 20:03:27 +02:00
Seth Hillbrand bf3cb0b1d0 Standardize pad type enums 2020-09-30 08:38:35 -07:00
Jeff Young bf67648562 Support optional location reporting in SHAPE collisions.
Also fixes a few bugs in the collision routines.
2020-09-28 23:28:33 +01:00
Jeff Young a2d9acb647 Rename DRC rule function onLayer to existsOnLayer.
Fixes https://gitlab.com/kicad/code/kicad/issues/5647
2020-09-27 21:33:37 +01:00
Tomasz Wlostowski d2ed27b500 libeval_compiler: fix string comparison 2020-09-27 16:45:46 +02:00
Tomasz Wlostowski aebfe4c9f0 drc_proto: restore DRC RTree code (accidential deletion) 2020-09-27 16:45:46 +02:00
Jeff Young 8735ebdc70 Remove one more stale group test. 2020-09-25 23:30:46 +01:00
Jeff Young 0818bd05d2 Remove no-longer-applicable tests from group_saveload. 2020-09-25 21:10:13 +01:00
Jeff Young 6fde9ea8a5 Don't leave stale pointers in groups when exchanging modules.
Also simplifies groups so that other areas of code that have to know
about them at least don't have to know as much. One of the simplifications
is to not worry so much about empty groups until save time; others are in
the access logic to parent groups.

Also simplifies user model slightly by removing Merge and Flatten
(which are just ungroup/group and ungroup/ungroup/.../group).

Also allows multiple groups to have the same name.  This is useful when
using groups for a classification system.

Fixes https://gitlab.com/kicad/code/kicad/issues/5788
2020-09-25 18:43:19 +01:00
Seth Hillbrand 856cf51fc8 Fix typo 2020-09-23 14:00:39 -07:00
Wayne Stambaugh 188232de6f Pcbnew: add user defined layers and allow all layers to have user names.
This changes the file format.  All previous copper layers that had a user
defined name are forced back to the canonical name and the user defined
name is stored as an optional quoted string in the layer definition and
only used for UI and plotting purposes.  All copper object layer names
are now the canonical name for internal file use.

ADDED: Nine new user definable non-copper layers that can be optionally
added to the board layer stack.

CHANGED: All board layers can now be renamed by the user.

CHANGED: User defined layer names can now contain space characters.

Fixes https://gitlab.com/kicad/code/kicad/issues/1969
2020-09-23 15:41:43 -04:00
jean-pierre charras 0b03d8a5ff Fix a few Coverity warnings. 2020-09-20 16:30:23 +02:00
Jeff Young 67b5d24995 Support ESC & Cancel for DRC.
Fixes https://gitlab.com/kicad/code/kicad/issues/5698
2020-09-18 22:14:00 +01:00
Ian McInerney 4ca103c82c Fix problem in groups QA test
The items should always be added to the group.
2020-09-18 11:17:37 +01:00
Jeff Young a3d65a2b43 Smoother progress reporting for DRC checks.
Also moves Messages tab out to an overlay, and restores the longer
messages now that messages are no longer a textbox in the upper right.
2020-09-17 20:13:39 +01:00
Ian McInerney 9ea2dbe87b Cleanup the PCB_GROUP QA test set 2020-09-16 02:04:17 +01:00
Jeff Young b4229d9a3e Fix testcase crash when progressReporter was null.
(And it helps if the DRC tester you're trying to test is actually
in the make file.)
2020-09-15 22:25:12 +01:00
Jeff Young e2e229da96 Finish exorcising the old DRC system.
This moves the various BOARD_ITEM calls to the new system, and make
the DRC_ENGINE long-lived so that it can field those queries.
2020-09-15 20:15:46 +01:00
Jeff Young 665212341d Cleanup (consistent naming, 100-char line width, message precision). 2020-09-15 12:07:31 +01:00
Jeff Young 514da2f886 Move DRC dialog to new DRC engine. 2020-09-14 22:39:36 +01:00
Jeff Young 748bee1bc7 Hook up netclasses and board minimums to new DRC engine.
Improves implicit rule reporting.
Makes some internal names more consistent.
Moves DRC_REPORT to the test framework.
Removes priority (which isn't supported in the grammar)
2020-09-13 17:08:24 +01:00
Jeff Young 8420fcc33b Cleanup. 2020-09-13 17:08:24 +01:00
Jeff Young 5be887a60f Iron out some wrinkles in the DRC migration. 2020-09-12 01:57:37 +01:00
Jeff Young ce2937a399 Move rest of DRC tests to kicad. 2020-09-11 23:14:12 +01:00
Jeff Young 5424d6fa09 Move new clearance tests into kicad. 2020-09-11 21:26:57 +01:00
Jeff Young cc86630f11 Start pulling new DRC engine into Kicad. 2020-09-11 16:04:11 +01:00
Jeff Young 6b4a6f4d3e Restore min seg limit for rounded-corner pads.
It suffered from a cacophony of errors, starting with an errant
comment that made it later look like a bug.  Sigh.
2020-09-11 14:41:45 +01:00
Wayne Stambaugh d45c11b4b5 Exclude from bill of materials and board netlist to library symbols.
ADDED: Support for exclude from bill of materials and board netlist to
library symbols.

Fixes https://gitlab.com/kicad/code/kicad/issues/4915
2020-09-09 09:03:37 -04:00
Roberto Fernandez Bautista 3b3af5327f CADSTAR PCB Archive Importer: Move code into common/plugins and pcbnew/plugins folders 2020-09-08 21:21:20 +00:00
Roberto Fernandez Bautista 632d45e833 CADSTAR PCB Archive Importer: Parse PARTS section 2020-09-08 21:21:20 +00:00
Roberto Fernandez Bautista 4c2f38f1ad CADSTAR PCB Archive Importer: Parse LIBRARY section + code refactoring
code refactoring:
- Renamed CADSTAR_COMMON to CADSTAR_ARCHIVE_COMMON
- Renamed CPA_FILE to CADSTAR_PCB_ARCHIVE_PARSER
- Made CADSTAR_PCB_ARCHIVE_PARSER a derived class of CADSTAR_ARCHIVE_COMMON
- Moved all structures in cadstar_pcb_archive_parser.h/.cpp to be defined inside CADSTAR_PCB_ARCHIVE_PARSER class
2020-09-08 21:21:20 +00:00
Roberto Fernandez Bautista 86bf592bac ADDED: CADSTAR PCB Archive Importer
Initial commit
- Imports directly mappable layer stackup (only physical board fabrication layers for now)
2020-09-08 21:21:20 +00:00
Seth Hillbrand 459cc326e0 Remove errant header
Fixes https://gitlab.com/kicad/code/kicad/issues/5553
2020-09-08 06:44:56 -07:00
Seth Hillbrand 02a5d47de9 Avoid passing references in EESchema
This returns the connection list by value.  This allows easier Python
use

Also renames m_End() to GetEnd()
2020-09-08 06:29:27 -07:00
Tomasz Wlostowski 1cd349c8f6 drc_proto: report rule hits only for rule-driven tests 2020-09-08 01:31:42 +02:00
Tomasz Wlostowski 0ef6d85a1f drc_proto: added rule hit accounting in various tests 2020-09-08 01:31:42 +02:00
Tomasz Wlostowski 0f015aeb59 drc_proto: add dummy default constraint for courtyard clearance 2020-09-08 01:31:42 +02:00
Tomasz Wlostowski e1af46d099 qa: temporarily disable test_gal_pixel_aligmnent due to unfinished changes in PCB_TEST_FRAME_BASE 2020-09-08 01:31:42 +02:00
Tomasz Wlostowski 7aefe6fdb4 qa_utils: PCB_TEST_FRAME compiles again... 2020-09-08 01:31:42 +02:00
Tomasz Wlostowski 91860dae2d drc_proto: use GetLayer() in disabled layer tests 2020-09-08 01:31:42 +02:00
Tomasz Wlostowski b53d753796 drc_proto: don't stitch together multiple rules's microcode 2020-09-08 01:31:42 +02:00
Tomasz Wlostowski 9176062d0f drc_proto: return 'safe' null constraint if no matching rule found. To be fixed 2020-09-08 01:31:42 +02:00
Tomasz Wlostowski fc58c4a20e drc_proto: netclass wip 2020-09-08 01:31:42 +02:00
Tomasz Wlostowski 8a5297180e drc_proto: initial version of legacy rule import (without overrides yet) 2020-09-08 01:31:42 +02:00
Tomasz Wlostowski 05b88acf16 drc_proto: wip adding accessors to DRC_RULE/DRC_RULE_CONDITION 2020-09-08 01:31:42 +02:00
Tomasz Wlostowski 8e4a3f5e65 drc_proto: nicer logging on the console 2020-09-08 01:31:42 +02:00
Tomasz Wlostowski b107c4a025 drc_proto: working on progress reporting 2020-09-08 01:31:42 +02:00
Tomasz Wlostowski 466cbe2f00 libeval_compiler: fixhandling of method calls with empty argument list (e.g. 'A.method()' ) 2020-09-08 01:31:42 +02:00
Tomasz Wlostowski adbd94553d drc_proto: all tests now supported in drc_proto. Not tested yet! 2020-09-08 01:31:42 +02:00
qu1ck 3dbebda168 Fix GetCustomShapeAsPolygon and add a unit test
Fixes #5497
2020-09-04 20:30:54 -07:00
Seth Hillbrand 3095d0e335 DRC_TREE: Allow indexing on triangulated zones
Also move to BOARD_ITEM* as we might want to run DRC on non-copper items
2020-09-04 15:53:49 -07:00
Jeff Young e6f4e156b6 Fix the SCH_PINs test to be more reflective of the codebase. 2020-09-01 15:25:49 +01:00
Jeff Young 9e12ea9bb6 Cleanup some dead code and make better use of iterators.
Also applies coding style around auto and lambdas.
2020-08-28 11:05:58 +01:00
Seth Hillbrand 0d65d76a9a Add modified qa project 2020-08-25 10:40:44 -07:00
Thomas Pointhuber a03fb7a9a8 Altium: Refactor and add initial structure for schematic importer
altium: move pcbnew/altium2kicadpcb_plugin -> pcbnew/plugins/altium

See: https://gitlab.com/kicad/code/kicad/-/issues/4412
2020-08-23 19:01:08 +00:00
Seth Hillbrand a3fc028c9b CHANGED: locked parameter explictly written
Removed the bitmap status field that saved internal states into the
file, creating rcs churn.  Also removed the unneeded count variables at
the start of the file as these created merge conflicts for every board
that had multiple revisions

Fixes https://gitlab.com/kicad/code/kicad/issues/1850
2020-08-19 03:51:30 +00:00
Wayne Stambaugh ede39780e2 Remove all debugging output that cannot be disabled.
The use of printf, wxLogDebug, and std::err/std::out causes excessive
debugging output which makes finding specific debugging messages more
difficult than it needs to be.

There is still some debugging output in test code that really needs to
be moved into a unit test.

Add debugging output section to the coding policy regarding debugging
output.
2020-08-18 10:17:36 -04:00
Tomasz Wlostowski 8c94d88c78 qa: fix incorrect cast error on OSX/MSVC 2020-08-14 09:48:40 +02:00
Tomasz Wlostowski f582783b27 qa/drc_proto: updated DRC rule file format to the last version, post-rebase fixes too 2020-08-13 14:50:59 +02:00
Tomasz Wlostowski e0ffdc8fe7 drc_proto: update file format, get the thing to compile again 2020-08-13 14:50:59 +02:00
Tomasz Wlostowski 52fefd15e0 common: include drc_proto keywords in the main DRC parser 2020-08-13 14:50:59 +02:00
Tomasz Wlostowski d937fadd6f Migrate RC_ITEM to use shared_ptr 2020-08-13 14:50:59 +02:00
Tomasz Wlostowski 2b6ef6964a qa/pcbnew: test introspected properties in the expression compiler 2020-08-13 14:50:59 +02:00
Tomasz Wlostowski 7c15c788b8 qa/pcbnew: boost test fixture for libeval_compiler 2020-08-13 14:50:59 +02:00
Tomasz Wlostowski 35e45c5917 drc_proto: edge clearance wip 2020-08-13 14:50:59 +02:00
Tomasz Wlostowski e38796396f qa/drc_proto: default values for fields in DRC_RULE 2020-08-13 14:50:59 +02:00
Tomasz Wlostowski 782fcc6139 qa/drc_proto: fix regressions in DRC_RULE_PARSER 2020-08-13 14:50:59 +02:00
Jeff Young 393bb0fd83 Fix assert where geometry routine wasn't ready to handle layers.
This introduces layer handling to a lot of the geometry routines.
Many of them don't do much with it now, but it does help multi-layer
zones and will help when padstacks are implemented.
2020-08-12 22:20:08 +01:00
Jeff Young 463100d67f Remove a long-standing hack to keep divots out of adjacent zones.
The new algorithm unions any adjacent zones before doing the
chamfer/fillet and then subtracts the other zones back out afterwards.

Fixes https://gitlab.com/kicad/code/kicad/issues/3812
2020-08-12 22:20:08 +01:00
Qbort b41892e4da Rename class GROUP in pcbnew to PCB_GROUP
Fixes https://gitlab.com/kicad/code/kicad/-/issues/5156
2020-08-12 15:36:08 +01:00
Seth Hillbrand 7c455f2357 First pass at DRC RTree functionality
This implements a copper-layer RTree with functions for iterating over
the elements in a copper layer and providing Nearest Neighbor returns
for BOARD_CONNECTED_ITEMS
2020-08-11 16:52:29 -07:00
Joshua Redstone ee428876ec ADDED: Group/Ungroup function
This implements the group/ungroup functions to mark a set of EDA_ITEMs as a unit, allowing them to be moved and rotated as a unit
2020-08-11 19:37:07 +00:00
Seth Hillbrand 41edf5c5bf Updating DRC to handle vias with differing layers 2020-08-10 03:27:27 +00:00
Jeff Young 4317881012 Improve delete-unused-layers to better handle multi-layer items.
Fixes https://gitlab.com/kicad/code/kicad/issues/5116
2020-08-09 15:39:51 +01:00
Mark Roszko c6e388db14 Implement an app progress indicator in the taskbar
ADDED: Progress indicator in the taskbar

This adds a progress indicator to the Windows and macOS taskbar
icons to display the progress of some operations.

Note, this requires wxWidgets 3.1+
2020-08-09 10:55:00 +00:00
Jeff Young e5b50d90a7 Update DRC rules to new layer and disallow grammars.
Also adds support for hooking rules up to named zones.

Fixes https://gitlab.com/kicad/code/kicad/issues/2041
2020-08-07 21:49:36 +01:00
Qbort 9977299340 Fix compile errors in drc_engine.cpp and panel_setup_rules.cpp 2020-07-31 21:47:01 +00:00
Tomasz Wlostowski 23e834fdb5 qa: fixed test fixture name collision causing test failures 2020-07-31 20:01:15 +02:00
Ian McInerney 268dec5c19 Cleanup some build and Coverity warnings 2020-07-31 02:46:05 +01:00
Jeff Young fdb23d1a2d Add DRC check for items (pads for now) shorting two nets.
Fixes https://gitlab.com/kicad/code/kicad/issues/4955
2020-07-30 21:42:23 +01:00
Jeff Young 577c1be391 Report all DRC rule errors, not just the first. 2020-07-30 14:27:42 +01:00
Tomasz Wlostowski b06c158764 drc_proto: thou shalt count rule hits from 1, not 0 2020-07-30 00:02:36 +02:00
Tomasz Wlostowski 8de484eff3 drc_proto: follow up Jeff's changes 2020-07-30 00:02:15 +02:00
Tomasz Wlostowski faf469bd23 drc_proto: follow up Jeff's changes to libeval_compiler 2020-07-29 23:15:19 +02:00
Tomasz Wlostowski 9401165e6c qa: temporarily disable libeval_compiler_test 2020-07-29 23:14:34 +02:00
Tomasz Wlostowski e32c38ef81 drc_proto: simple test cases for copper clearance and hole clearance tests 2020-07-29 23:14:34 +02:00
Tomasz Wlostowski 128ae8b49e drc_proto: working on hole size/track width checker 2020-07-29 23:14:34 +02:00
Tomasz Wlostowski ff1872379d drc_proto: report rule hit statistics 2020-07-29 23:14:34 +02:00
Tomasz Wlostowski 7fc532df2e drc_proto: import new error reporting code from Jeff 2020-07-29 23:14:34 +02:00
Tomasz Wlostowski 6615397541 drc_proto: DRC_RULE now uses new libeval API 2020-07-29 23:14:34 +02:00
Tomasz Wlostowski a504bd0795 drc_proto: don't launch DRC providers with empty/incomplete rule sets 2020-07-29 23:14:03 +02:00
Tomasz Wlostowski cf0bb60fbb drc_proto: migrated GetEffectiveShape(s) to SHAPE_COMPOUND 2020-07-29 23:14:03 +02:00
Tomasz Wlostowski 1a2e02040a qa/libs/kimath: simple test suite for collisions of SHAPE_COMPOUNDs 2020-07-29 23:14:03 +02:00
Tomasz Wlostowski 8d9d3ff795 qa/drc_proto: debug level settable by env var 2020-07-29 23:14:03 +02:00
Tomasz Wlostowski 91b68e4578 drc_proto: follow up Jeff's changes in legacy DRC/board model 2020-07-29 23:14:03 +02:00
Tomasz Wlostowski abe6ccf97e common: re-enable libeval_compiler and DRC proto test (fixed missing file issues) 2020-07-29 23:14:03 +02:00
Jeff Young 0fecb5f277 Be more explicit about string/character conversions.
This *may* fix the bug where a layer name isn't displayed correctly
in the error dialog.  But probably not.
2020-07-28 20:44:40 +01:00
Seth Hillbrand 1374d82114 Adding QA project files 2020-07-28 10:44:51 -07:00
Jeff Young 552dde8976 Fix return value going out of scope.
(From Coverity report.)
2020-07-26 13:41:43 +01:00
Jeff Young bf445c1a95 Performance enhancements.
1) cache pad polygon outlines
   huge improvement in connectivity performance and a decent
   improvement in DRC performance
2) don't pre-allocate CONTEXT stack
   significant improvement in DRC rule performance
2) don't keep re-encoding strings
   decent improvement in DRC rule performance
2020-07-25 13:03:33 +01:00
Jeff Young 6529e339a9 Don't store context in the uCode. (It's not thread-safe.)
Although it does give some pretty funny results when filling zones.
2020-07-23 22:21:13 +01:00
Jeff Young a6b6084a60 Add preflighting for DRC rule function calls. 2020-07-22 14:33:32 +01:00
Jeff Young c52df811ae Add expression eval to constraint min/max/opt values.
Also adds error reporting for above.
2020-07-21 23:43:10 +01:00
Jeff Young 095937563b Hook libeval compiler up to rule parser
- convert expression string tokens to single-quote-delimited
- fix bug where netclass assignments weren't getting updated after
  board setup dialog
- move property manager rebuild to lazy evaluation
- improve performance with wider use of const&
- retire DRC_SELECTOR stuff
- use wxString for GUI stuff (particularly translated stuff)
- fix EqualTo() to return false instead of asserting when op types
  don't match
- fix buffer overruns with fixed-size string buffers
- make expression function calls case-insensitive
- integrate expression errors into rule parser
- produce more and better error messages
- keep BOARD_ITEM ptrs const as long as possible
- fix a couple of uninitialized variables
2020-07-20 22:11:53 +01:00
jean-pierre charras 6d8fb94d86 Fix a few Coverity warnings. 2020-07-20 16:19:19 +02:00
Seth Hillbrand 69d75b90b1 Adding failed arc test
This test implements a case where the current arc calculations fail
2020-07-18 13:03:22 -07:00
Ian McInerney 7b705af038 Refactor common QA components to create a single common library
This moves the program-specific code (e.g. BIU files) into
the program tests.

Also, create title_block.cpp to break a dependency that pulled
in eda_text.cpp when using the TITLE_BLOCK object.
2020-07-18 16:21:15 +01:00
Ian McInerney 019313711a Move geometry tests into the kimath qa test 2020-07-18 16:19:01 +01:00
Jeff Young d1da053d2e Update test to prettier file extension wildcard syntax. 2020-07-17 21:22:28 +01:00
Jeff Young 7340c97ef9 Undo for schematic-wide operations.
Editing value/footprint fields of multi-unit components.
Find/Change.
Annotation.
Back annotation.

Fixes https://gitlab.com/kicad/code/kicad/issues/2122

Fixes https://gitlab.com/kicad/code/kicad/issues/4869

Fixes https://gitlab.com/kicad/code/kicad/issues/3933

Fixes https://gitlab.com/kicad/code/kicad/issues/4871

Fixes https://gitlab.com/kicad/code/kicad/issues/3899
2020-07-13 12:32:17 +01:00
Jeff Young 1872d05f72 Fix netlist test golden file to include proper escaping. 2020-07-07 11:18:52 +01:00
Ian McInerney 6672efdf2c Disable DRC prototype by default 2020-07-06 00:55:36 +01:00
Tomasz Wlostowski 0a4c8cd45c drc_proto: import latest Jeff & Jon's changes + update copyright headers 2020-07-05 22:44:38 +02:00
Tomasz Wlostowski e9d37dd7ce drc_proto: implement QueryWorstConstraint 2020-07-05 22:44:38 +02:00
Tomasz Wlostowski bc86ea7682 drc_proto: use separate lexer for rule file from current pcbnew DRC 2020-07-05 22:44:38 +02:00
Tomasz Wlostowski 0e0cf5dff8 drc_proto: moving to GetEffectiveShapes() 2020-07-05 22:44:38 +02:00
Tomasz Wlostowski 1cabc1bc0f qa/drc_proto: rework common clearance code into base class, start working on hole clearance test refactor 2020-07-05 22:44:38 +02:00
Tomasz Wlostowski b3ce23f0e2 PCB_EXPR_EVALUATOR: implement isPlated virtual property 2020-07-05 22:44:38 +02:00
Tomasz Wlostowski d57d5d73b2 qa: clearance test works and reports. about to do board outline clearance test 2020-07-05 22:44:38 +02:00
Tomasz Wlostowski bd19892cd0 qa/drc_proto: clearance test seems to work with conditional rules, need to clean up & add reporting 2020-07-05 22:44:38 +02:00
Tomasz Wlostowski 6bddc4bdd6 qa: more tests for libeval_compiler 2020-07-05 22:44:38 +02:00
Tomasz Wlostowski 085698d17c drc_proto: wip 2020-07-05 22:44:38 +02:00
Tomasz Wlostowski aaa91655aa libeval_compiler: integrated in common/ 2020-07-05 22:44:38 +02:00
Tomasz Wlostowski b82ec2161f libeval_compiler: initial version 2020-07-05 22:44:38 +02:00
Tomasz Wlostowski bff209b07c qa: disable single test in PROPERTY test suite due to boost incompatibility 2020-07-05 22:44:38 +02:00
Maciej Suminski f084a86601 Properties replacement method
Adds a possibility to replace properties inherited from base types with
a more specific ones. For example, such properties may have:

- different meaning which should be reflected in property name
  (e.g. TRACK::{G,S}etWidth() sets actual track width, but
  VIA::{G,S}etWidth() modifies the diameter)

- different set of possible values (e.g. BOARD_CONNECTED_ITEM::SetLayer()
  should accept any copper layer, but MODULE::SetLayer() works only with
  F.Cu and B.Cu)
2020-07-05 22:44:38 +02:00
Maciej Suminski cbd5004fd4 Properties (introspection)
Introduces classes:
- INSPECTED: base class for types taking advantage of
  generic properties system.
- PROPERTY*: meta-data storing information about properties
- PROPERTY_MANAGER: singleton class to get properties data
2020-07-05 22:44:38 +02:00
Jon Evans 4dbbe1cf68 Project settings fixes from review
- Fix file extension for new project
- Fixes for exceptions on MSW
- Fix some ASAN issues
- Allow SETTINGS_MANAGER to run headless
- Don't flag schematic as modified after schematic setup is closed
- Don't automatically unload projects when LoadProject is called
- Don't unload project if it's the same as the current one
- Make sure to properly init/de-init template field names
2020-07-02 22:08:54 -04:00
Jon Evans 12b4a55ae8 Port Eeschema to new project settings
DRC/ERC error serialization changed to use explicit tokens
Old stored severities and ignored errors are discarded
2020-07-02 22:08:54 -04:00
Jon Evans c0aa6965de Migrate PcbNew project settings to new framework
Various architecture upgrades to support this.
Creating a BOARD now requires a valid PROJECT, which caused
some (mostly transparent) changes to the Python API internals.

ADDED: Project local settings file
CHANGED: Board design settings are no longer stored in PCB file
CHANGED: Net classes are no longer stored in PCB file
CHANGED: Importing board settings now reads boards, not just projects

Fixes https://gitlab.com/kicad/code/kicad/-/issues/2578
Fixes https://gitlab.com/kicad/code/kicad/-/issues/4070
2020-07-02 22:08:54 -04:00
Jon Evans a4fadfcdf2 Begin moving project file load to new system 2020-07-02 22:08:54 -04:00
Jon Evans a7708fa6dc Add PROJECT_FILE and basic load/unload methods 2020-07-02 22:08:54 -04:00
Jeff Young eb1ff80d57 SHAPE collision fixes.
1) An actual distance of 0 is still a collision, even if the allowed
distance is 0.
2) Be consitent about edges and interiors.  Everyone expect the edge
of a RECT to be part of the RECT; same with a CIRCLE.  SHAPE_POLY_SET
shouldn't be any different.  (And SHAPE_LINE_CHAIN was a split-
personality with the edge considered part of it for Collide() but not
for PointInside()).
2020-07-02 21:38:37 +01:00
Jon Evans 0d4ee39f75 CHANGED: Copper zones can be on more than one layer
Fixes https://gitlab.com/kicad/code/kicad/-/issues/1963
2020-06-28 08:52:37 -04:00
Jon Evans e91b9f6dfb Rip out the unused leftovers of the old color system 2020-06-18 22:32:14 -04:00
Seth Hillbrand a8ab668122 Move SHAPE_ARC to start->mid->end format
The arc shapes need to connect with their adjacent points.  By storing
the relevant points, we allow exact point matching on both ends of the
arc as well as localize point storage.
2020-06-13 11:23:14 -07:00
Jeff Young f84406009b Push a couple of layers of indirection out of grid settings. 2020-06-13 11:35:56 +01:00
Wayne Stambaugh 52078a4b1b Allow setting mandatory derived symbol field properties.
CHANGED: All mandatory fields in derived symbols can be edited.  This
not only includes the field value but also all text properties.

Kill the dual datasheet variable storage which caused many datasheet
bugs over the years.  The datasheet is now always stored in the data
sheet field.
2020-06-02 14:21:11 +00:00
Jon Evans a52435bbb0 ADDED: New mouse settings panel, expanded mouse settings
You can now choose the behavior of dragging with the
middle and right mouse buttons.

You can also choose which modifier keys to use for
panning and zooming with the scroll wheel or trackpad.

You can also customize the zoom speed, which makes
it possible to have a good zoom experience on a wider
range of input devices.

You can also now zoom by dragging with the right or
middle button if desired.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/3885
Fixes https://gitlab.com/kicad/code/kicad/-/issues/4348
2020-05-24 14:38:28 -04:00
Jon Evans e934f8b459 Remove python netlist QA facilities 2020-05-23 22:48:09 -04:00
Jon Evans f730aa7834 Update netlist testcases 2020-05-23 22:48:03 -04:00
Jon Evans f7578eb038 Implement new native netlist QA test 2020-05-23 21:04:11 -04:00
Jon Evans de9520d65e Finish porting netlisters to use CONNECTION_GRAPH 2020-05-23 12:45:24 -04:00
Jon Evans 7c7b7f41da Move SCH_SCREEN project access to SCHEMATIC
SCH_SCREEN no longer needs to be a KIWAY_HOLDER
2020-05-20 22:27:48 -04:00
Jon Evans b36b7d5a5d Update video QA project with proper junctions 2020-05-20 18:51:32 -04:00
Jon Evans 52ae0df7a4 Convert video QA project to new format 2020-05-20 00:03:27 -04:00
Jon Evans 9e79dfdb25 Update netlist QA testcases to new file format 2020-05-18 22:40:28 -04:00
Jon Evans d7bd4c9b04 Move Eeschema globals to new SCHEMATIC object
Set up a new lineage for SCH_ITEMS to get back to the SCHEMATIC
they live on: Items will all be parented to the SCH_SCREEN that
they are added to, and each SCH_SCREEN will point back to the
SCHEMATIC that it is part of.  Note that this hierarchy is not
the same as the actual schematic hierarchy, which continues to
be managed through SCH_SHEETs and SCH_SHEET_PATHS.
2020-05-18 13:04:56 -04:00
Jeff Young 75b139c7b4 Move hole testing to DRC client and improve performance. 2020-05-17 15:49:02 +01:00
Jeff Young 8efa8af8cc Add persistence of DRC error severities. 2020-05-07 17:51:27 +01:00
Jon Evans 920f5f4ada Update netlist qa files for new format 2020-05-05 21:58:08 -04:00
Wayne Stambaugh 7183e9f97e Make the new schematic and symbol library file formats the default.
This is a very large and potentially disruptive change so this will be an
unusually long and detailed commit message.

The new file formats are now the default in both the schematic and symbol
library editors.  Existing symbol libraries will be saved in their current
format until new features are added to library symbols.  Once this happens,
both the legacy schematic and symbol file formats will be no longer be
savable and existing libraries will have to be converted.  Saving to the
legacy file formats is still available for round robin testing and should
not be used for normal editing.

When loading the legacy schematic file, it is imperative that the schematic
library symbols are rescued and/or remapped to valid library identifiers.
Otherwise, there will be no way to link to the original library symbol and
the user will be required manually set the library identifier.  The cached
symbol will be saved in the schematic file so the last library symbol in
the cache will still be used but there will be no way to update it from the
original library.

The next save after loading a legacy schematic file will be converted to
the s-expression file format.  Schematics with hierarchical sheets will
automatically have all sheet file name extensions changed to .kicad_sym
and saved to the new format as well.

Appending schematics requires that the schematic to append has already been
converted to the new file format.  This is required to ensure that library
symbols are guaranteed to be valid for the appended schematic.

The schematic symbol library symbol link resolution has been moved out of
the SCH_COMPONENT object and move into the SCH_SCREEN object that owns the
symbol.  This was done to ensure that there is a single place where the
library symbol links get resolved rather than the dozen or so different
code paths that previously existed.  It also removes the necessity of the
SCH_COMPONENT object of requiring any knowledge of the symbol library table
and/or the cache library.

When opening an s-expression schematic, the legacy cache library is not
loaded so any library symbols not rescued cannot be loaded.  Broken library
symbol links will have to be manually resolved by adding the cache library
to the symbol library table and changing the links in the schematic symbol.

Now that the library symbols are embedded in the schematic file, the
SCH_SCREEN object maintains the list of library symbols for the schematic
automatically.  No external manipulation of this library cache should ever
occur.

ADDED: S-expression schematic and symbol library file formats.
2020-05-04 12:40:03 +00:00
Jeff Young 058108dd6d There are 3 courtyard DRC checks, not 2. 2020-05-01 18:49:42 +01:00
Jeff Young d17664c519 Fix bug in testcase. 2020-05-01 18:49:42 +01:00
Jeff Young dfe4a00d43 Add distance reporting for copper item DRC tests.
Also adds some performance improvements.
2020-05-01 18:49:42 +01:00
Jeff Young 1535c83b88 Lay some groundwork for adding distances to DRC errors.
modified:   eeschema/lib_rectangle.cpp
2020-04-24 14:46:22 +01:00
Jeff Young 7f1b409305 Remove dead legacy print code. 2020-04-20 17:03:38 +01:00
Jon Evans d7d1ea33ac Check for conflicts before promoting sheet pins to be strong drivers
Fixes https://gitlab.com/kicad/code/kicad/issues/4201
2020-04-19 19:13:24 -04:00
Jon Evans 7df3df3381 Add basic netlist QA test 2020-04-19 19:13:24 -04:00
Jon Evans b802a3e776 Add command-line option to generate netlist and exit 2020-04-19 19:13:24 -04:00
Ian McInerney 7bda8178d1 Move library includes to main CMake file
Placing them behind the SYSTEM directive tells CMake to tell
the compiler they are system libraries, so it shouldn't show
warnings created from them.
2020-04-19 01:11:56 +01:00
Ian McInerney d44a252182 Clean up spice tests in qa_eeschema
* Guard their inclusion with the KICAD_SPICE flag
* Code cleanup inside actual testing function

Fixes https://gitlab.com/kicad/code/kicad/issues/4220
2020-04-18 00:47:40 +01:00
Sylwester Kocjan fdccdd5cb9 Eeschema: adding .op SPICE simulation support
ADDED new tab on simulation settings dialog, which allows to run .op analysis.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/2368
2020-04-15 01:51:58 +00:00
jean-pierre charras 4a2a5a9403 qa_eeschema: fix a crash due to LIB_PIN ctor that was using default config values,
but in QA tests, we do not have config values available.
2020-04-14 18:12:15 +02:00
Thomas Pointhuber b707c84b62 Use Record handling for parsing
Now, we know how big a record is, and should be able to parse all boards without missing bytes?
2020-04-03 23:22:24 +00:00
Jeff Young 4990d1e7b2 Variable substitution framework.
This implements editing of variables and moving SCH_FIELDs,
TEXTE_MODULEs, TEXTE_PCB and worksheet items over to the new
framework.
2020-03-30 14:15:59 +01:00
Jeff Young cee973dc04 Move ERC error reporting over to the new framework.
Fixes https://gitlab.com/kicad/code/kicad/issues/1989
2020-03-16 11:06:15 +00:00
Jeff Young 085d80e3f3 Remove duplicated settings from preferences.
These have now moved to project-specific settings.
2020-03-13 17:28:53 +00:00
Wayne Stambaugh 8cc80e3b35 Add unit test for testing LIB_ARC objects.
Added tests for calculating radius angles and arc mid point.
2020-03-10 11:04:05 -04:00
Jon Evans 8660b4c144 ADDED: New color theme editor and multi-theme support 2020-03-06 00:01:03 -05:00
Wayne Stambaugh bc7df3239c Start unit tests for math library trigonometry functions.
This only tests the InterceptsPositiveX() and InterceptsNegativeX() used
for finding the midpoint of an arc.

Tidy up some of the trigo.h header Doxygen comments.
2020-03-05 07:34:26 -05:00
jean-pierre charras b7cd0c54c2 Fix compil issues, especially on Windows:
Replace SEVERITY_ERROR by RPT_SEVERITY_ERROR to avoid collision with a system definition.
Replace other SEVERITY_XXX by RPT_SEVERITY_XX for consistency.
Fix compil warnings and some other compil issues.
2020-03-04 10:48:18 +01:00
Jeff Young 85c2e0d23a Add user-defined severities, exclusions and colors to DRC markers.
Exclusions are currently persisted in the project file.

Fixes https://gitlab.com/kicad/code/kicad/issues/1989
2020-03-04 00:39:28 +00:00
Wayne Stambaugh abb8088695 Fix QA test failure due to changes to FormatInternalUnits() function. 2020-03-03 08:06:23 -05:00
Wayne Stambaugh e1900161a7 Eeschema: implement new symbol library file s-expression formatter.
CHANGES: Symbol library file format has been converted to s-expressions.

Add support code for picking apart symbols at some future junction that
will allow full inheritance conversion of existing symbol libraries.  For
now, symbols arranged by unit and body style numbers are nested for round
robin testing of symbol libraries once the parser is complete.
2020-03-03 08:06:22 -05:00
Ian McInerney aa95ff10df Add build dependency on pcbcommon in qa test
The qa_pcbnew_util needs the pcb_lexer header that is generated
as part of pcbcommon, so it must be built after pcbcommon.
2020-03-01 17:03:12 +00:00
Simon Richter 866aac9737 Clean up a few unused names of caught exceptions 2020-03-01 00:33:45 +00:00
Jeff Young 149d34fbe1 Add missing files from last commit. 2020-02-28 22:37:53 +00:00
Jeff Young 9ded76bcad Update tests to UUIDs.
Fixes https://gitlab.com/kicad/code/kicad/issues/3939

Fixes https://gitlab.com/kicad/code/kicad/issues/3958
2020-02-28 22:06:14 +00:00
Jeff Young 7fdb74569f Attempt to fix test expectation.
I'm pretty sure this will fix it, but I've never been able to
build the tests on my Mac so I'm not sure.

Fixes https://gitlab.com/kicad/code/kicad/issues/3928
2020-02-24 23:19:17 +00:00
Jeff Young c68b554c8e Promote PathsAndReferences from wxArrayString to first-class-citizen.
Keeping the data in an un-serialized format greatly simplifies usage,
and should make it more robust.
2020-02-24 23:19:17 +00:00
jean-pierre charras a8e905a1e8 QA: fix a python test issue due to code changes in board.h
FindModule() does not exist anymore. Use FindModuleByReference() instead.

Fixes #3927
https://gitlab.com/kicad/code/kicad/issues/3927
2020-02-23 20:18:06 +01:00
Seth Hillbrand 8c19b4b6ae pcbnew: Adding arcs to PNS
This is allows ARCs in tracks to be synchronized with
the PNS router.  Note this does not yet include the UI components
to route curved traces
2020-02-21 16:11:41 -08:00
Jeff Young 490f39a671 Remove obsolete code requiring unique sheet names. 2020-02-20 22:56:11 +00:00