Commit Graph

14871 Commits

Author SHA1 Message Date
Jeff Young d6ae915616 Pay attention to layers when sorting pads.
Fixes https://gitlab.com/kicad/code/kicad/issues/10143
2022-11-24 15:47:10 +00:00
Seth Hillbrand 47d86e5d9e Don't crash when canceling graphics import
Grouped graphics need to have their group removed from the preview
before deleting the elements to avoid reading freed memory when
redrawing
2022-11-23 16:21:06 -08:00
Jeff Young 16db0440ba Fix logic that was accidentally flipped in earlier commit.
Fixes https://gitlab.com/kicad/code/kicad/issues/12962

Fixes https://gitlab.com/kicad/code/kicad/issues/12969
2022-11-23 23:10:28 +00:00
Jeff Young 1aad2fb37b Change via keep-start-end to be start/end, not top/bottom.
The implementation used to always check F_Cu and B_Cu, rather than
where the via started and ended (which will be different for blind/
buried vias and microvias).
2022-11-23 21:37:50 +00:00
Jeff Young 5de4bfde93 Move drilled NPTH holes to hole-clearance checking. Edge-clearance
checking is just for milled holes (slots).

Fixes https://gitlab.com/kicad/code/kicad/issues/12980
2022-11-23 13:31:51 +00:00
Jeff Young e62463b52b Don't store optimized anchors in CN_ITEMs.
It appears that multiple RN_NETs can refer to the same CN_ITEMs meaning
that we run into threading problems if we modify the CN_ITEM.

Fixes https://gitlab.com/kicad/code/kicad/issues/12968
2022-11-23 00:46:06 +00:00
Mike Williams 60d42a7b1e Spelling: fix various suppress misspellings 2022-11-22 13:47:10 -05:00
Jeff Young b42d5da07d Check keepTopBottom when determining whether or not to flash a pad/via.
Fixes https://gitlab.com/kicad/code/kicad/issues/12961
2022-11-22 18:18:43 +00:00
Jeff Young 8b1ffca7fa Better reporting of nets and netclasses. 2022-11-22 14:54:08 +00:00
Jeff Young 97fd99ec99 Re-resolve netclasses after assigning netclass to pattern.
Fixes https://gitlab.com/kicad/code/kicad/issues/12965
2022-11-22 14:54:08 +00:00
Seth Hillbrand 9403b5ce99 Unescape strings in search panel
Fixes https://gitlab.com/kicad/code/kicad/issues/12963
2022-11-22 05:51:31 -08:00
Jeff Young 50089ce558 Fix errors in handling of std::shared_ptrs.
We can't reset to a pointer owned by another std::shared_ptr.
2022-11-22 13:14:00 +00:00
Jeff Young 226529235c Mostly const safety, but also performance opt. by avoiding shared_ptr overhead. 2022-11-22 12:21:30 +00:00
Seth Hillbrand 740dbdf09a De-initialize propertygrid when done
There doesn't appear to be a nice way to de-register wxPropertyGrids, so
we need to reach into the singleton and remove our registered editor.

Fixes https://gitlab.com/kicad/code/kicad/issues/12297
2022-11-21 16:36:00 -08:00
Seth Hillbrand 0e818360c4 Unescape netnames in search panel
Fixes https://gitlab.com/kicad/code/kicad/issues/12960
2022-11-21 15:47:14 -08:00
Seth Hillbrand 50ecb5b498 Remove errant printf 2022-11-21 15:19:45 -08:00
Jeff Young 11130bfd88 Backing out earlier fix in favour of fixing std::shared_ptr usage.
Assigning to a reference to a std::shared_ptr does not update the
reference to a different std::shared_ptr; it changes what the
std::shared_ptr points to.

Fixes https://gitlab.com/kicad/code/kicad/issues/12968
2022-11-21 21:56:17 +00:00
Jeff Young 106508f266 Split ratsnest optimization into separate parallel threads.
Fixes https://gitlab.com/kicad/code/kicad/issues/12968
2022-11-21 18:50:44 +00:00
Seth Hillbrand 3b31955d98 Get hit test in group members
Fixes https://gitlab.com/kicad/code/kicad/issues/12957
2022-11-21 09:28:49 -08:00
Seth Hillbrand 01138a2e19 Fix fillet action for lines
Generalize fillet action behavior to all straight lines in pcbnew

Fixes https://gitlab.com/kicad/code/kicad/issues/4742
2022-11-21 07:01:14 -08:00
Jeff Young c1510f07d8 Fix some issues with group bounding boxes.
Fixes https://gitlab.com/kicad/code/kicad/issues/12958
2022-11-20 23:57:36 +00:00
Jeff Young 0120df014e Give group the right parent when pasting.
Fixes https://gitlab.com/kicad/code/kicad/issues/12954
2022-11-20 22:52:06 +00:00
Alex 12a55f20d3 Fix a mistake in grip margin.
Fixes https://gitlab.com/kicad/code/kicad/issues/12952
2022-11-21 00:25:19 +05:00
Alex dd2f19ca5f Allow router cursor snapping to points on the arc.
Also don't disable grid snapping when holding Shift over arcs.
2022-11-20 16:56:25 +05:00
Alex 110bc6abd1 Fix router cursor glitching on H/V track segments.
Also don't disable grid snapping when holding Shift over tracks.
2022-11-20 16:56:25 +05:00
Kliment c5fe265eb4 Take axis inversion into account when importing graphics. Fixes #9351. 2022-11-19 17:25:27 +01:00
Jeff Young 9b2606018e Fix shadowed variable. 2022-11-19 11:53:33 +00:00
Jeff Young bab2b6c4b6 Don't assume a 1:1 map between Altium and Kicad nets.
We've found at least one Altium board which has duplicate netcodes
for the same net.

Fixes https://gitlab.com/kicad/code/kicad/issues/12909
2022-11-19 11:53:33 +00:00
Jeff Young b82ec9595a Allow board importing into project. 2022-11-19 11:53:33 +00:00
jean-pierre charras 035031d902 BOARD_CONNECTED_ITEM::GetShortNetname(): protect against nullptr.
m_netinfo was not tested against nullptr in this method, although it is
tested in all other places.
2022-11-19 11:16:47 +01:00
jean-pierre charras 9f0c03db94 Export STEP dialog: Fix outdated text (virtual components). Replaced by
"not mounted components" and added a tooltip.
No actual code change.
Fixes #12922
https://gitlab.com/kicad/code/kicad/issues/12922
2022-11-19 09:31:37 +01:00
Alex 126d224e44 array_creator: Transform item before adding, modify only the first one. 2022-11-19 04:07:35 +05:00
Jeff Young 11dddefd05 Implement GetEffectiveShape for groups.
Fixes https://gitlab.com/kicad/code/kicad/issues/12940
2022-11-18 21:13:23 +00:00
Alex 38fd1c9985 pcbnew: Improve performance when something is selected. 2022-11-19 01:53:30 +05:00
Jeff Young c409646aad Update message panel after rebuilding connectivity.
Fixes https://gitlab.com/kicad/code/kicad/issues/10122
2022-11-18 15:29:16 +00:00
Tomasz Wlostowski 24c271d508 router: GetUpdatedItems() now returns an unique_ptr to the temporary NODE so that the items it owns do not get deleted upon return from the method 2022-11-18 15:14:33 +01:00
Tomasz Wlostowski 644c76b9c6 router: follow up via force propagation interface changes in the via DRAGGER 2022-11-18 15:14:09 +01:00
Tomasz Wlostowski dcfb35f002 router: more resilient via force propagation 2022-11-18 15:14:09 +01:00
jean-pierre charras 3960f48b5d Fix a fatal compil error on gcc. 2022-11-17 08:39:42 +01:00
Jeff Young bba6d503d4 Don't keep value of user or grid anchors between invocations.
Fixes https://gitlab.com/kicad/code/kicad/issues/12065
2022-11-17 00:51:52 +00:00
Alex 5e7c4b734c Small optimizations in DRC and SHAPE_POLY_SET. 2022-11-17 02:10:22 +05:00
Alex 3dea146488 router: Clear rule resolver caches on routing/dragging start.
Fixes https://gitlab.com/kicad/code/kicad/issues/12907
2022-11-17 02:10:21 +05:00
Alex 3f790d9dae Revert "router: Disable writing clearance cache for items in local variables."
This reverts commit 6d71f27500.

Caused a performance drop in walkaround mode.
2022-11-17 02:10:20 +05:00
Jeff Young cefc5268ab Allow pads in selection and filter them for free-pads later.
Fixes https://gitlab.com/kicad/code/kicad/issues/12912
2022-11-16 18:37:40 +00:00
Alex 6d71f27500 router: Disable writing clearance cache for items in local variables.
Fixes https://gitlab.com/kicad/code/kicad/issues/12907
2022-11-16 21:19:56 +05:00
Jeff Young 1b3f03a800 Don't feed wxWidgets negative column widths. 2022-11-16 13:33:55 +00:00
Jeff Young 13f5c78e89 More tightening of group parent lifecycles.
Fixes https://gitlab.com/kicad/code/kicad/issues/12908
2022-11-16 00:42:38 +00:00
Tomasz Wlostowski 26a38797c7 router: log and replay the 'unfix' events too 2022-11-15 23:05:53 +01:00
Tomasz Wlostowski b507c44d74 router: fix regression in Backspace (unfix/undo last segment) caused by redesign of the line placement algo
Fixes https://gitlab.com/kicad/code/kicad/-/issues/12835
2022-11-15 23:05:53 +01:00
Alex f9bfb8534f Fix orientation of track netnames. 2022-11-16 00:43:06 +05:00
Jeff Young 5759a3a10a Fix copy/pasta from previous commit. 2022-11-15 16:01:24 +00:00
jean-pierre charras f13ffa8276 Step export: fix incorrect export of a pcb with multiple main outlines.
The code was existing but did not work fine with more than one outline
Fixes #6684
https://gitlab.com/kicad/code/kicad/issues/6684
2022-11-15 16:37:00 +01:00
Jeff Young 9724f6e736 Don't allow zone filling during other editing operations.
It's a very heavy op, and is likely to violate all manner of
assumptions the other ops make.

Fixes https://gitlab.com/kicad/code/kicad/issues/12736
2022-11-14 23:39:49 +00:00
Jeff Young 93c6d99a6d Move saving preferences out of the destructor.
For other reasons we wrap the adapters in a wxDataObject, which has
delayed destruction semantics, but that means the settings stuff may
no longer be around when the d'tor executes.

Fixes https://gitlab.com/kicad/code/kicad/issues/12371
2022-11-14 20:01:37 +00:00
Jeff Young bc0a753238 Slight improvement to overly-wide checkbox columns. 2022-11-14 20:01:37 +00:00
Marek Roszko e85a84b8a3 Fix the step export for now
Need to fix argparse to handle single quotes and double quotes better

Fixes https://gitlab.com/kicad/code/kicad/-/issues/12899
2022-11-14 07:31:23 -05:00
jean-pierre charras f51db4e093 Fix some Coverity and compil warnings. 2022-11-14 09:02:40 +01:00
Marek Roszko 50dcf258e6 Adjust the position file comment header 2022-11-13 18:43:49 -05:00
Marek Roszko d3606cb4e4 Fix position export job not running 2022-11-13 18:42:23 -05:00
Jeff Young f4944f0db3 Quiet clang getting its knickers in a knot over case fallthroughs. 2022-11-13 23:01:48 +00:00
Jeff Young 9d8fdd8d53 Fire selection events from SelectAll().
Fixes https://gitlab.com/kicad/code/kicad/issues/12896
2022-11-13 22:59:21 +00:00
Marek Roszko cedef5912e Link to zlib for pcbnew due to step 2022-11-13 17:58:41 -05:00
Alex 126914859a Use correct pad to die lengths in DP length tuner.
Fixes https://gitlab.com/kicad/code/kicad/issues/12859
2022-11-13 21:07:09 +00:00
Marek Roszko ea83449ef7 Change up the step export arg handling to single quote for now
Fixes https://gitlab.com/kicad/code/kicad/-/issues/12890
2022-11-13 11:49:20 -05:00
Marek Roszko 0a8db3bb88 Fix forgotten handling of origin offsets
Fixes https://gitlab.com/kicad/code/kicad/-/issues/12889
2022-11-13 09:22:59 -05:00
Jeff Young 7089e99f4b Integrate move individually into move algo so other commands don't choke.
Also adds commands to cancel and finish move individually.

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

Fixes https://gitlab.com/kicad/code/kicad/issues/12749
2022-11-13 13:18:42 +00:00
Jeff Young 365674dfdf Footprints in the footprint editor can't be in a group. 2022-11-13 13:18:42 +00:00
Jeff Young 6a9a1e6e65 Print hole walls if in colour (and printing real drill sizes). 2022-11-13 13:18:42 +00:00
jean-pierre charras 49ff3513e7 Add missing lib (libz) in lib list to link on msys2 2022-11-13 09:29:48 +01:00
jean-pierre charras 9c5fbdb040 Fix compatibility with OCC version 7.4 and older 2022-11-13 08:18:10 +01:00
Marek Roszko 066a609b39 Cleanup warnings in the step exporter 2022-11-12 21:52:54 -05:00
Marek Roszko 3dd2ae762d Refactor step export to use our normal board processing routines 2022-11-12 21:27:10 -05:00
jean-pierre charras 248181e62d Fix Coverity and compil warnings. 2022-11-12 16:02:24 +01:00
jean-pierre charras 90238dede8 PCBNEW_PRINTOUT: fix incorrect size of holes printed with the "small drill" option
Fixes #12880
https://gitlab.com/kicad/code/kicad/issues/12880
2022-11-12 16:02:24 +01:00
jean-pierre charras 31bad5baaa Avoid duplicating similar options in print and plot headers 2022-11-12 16:02:24 +01:00
Alex 348c3d4216 Fix an incorrect calculation in length tuning tools.
MEANDER_PLACER_BASE::lineLength wasn't calculating the length correctly
when starting and ending pads were on different layers.

Naturally, now jointA corresponds to the start of the path, jointB to the end.

Fixes https://gitlab.com/kicad/code/kicad/issues/12881
2022-11-12 13:11:27 +00:00
Jeff Young d9987e9569 Orig_items will have been invalidated by Revert.
Don't use it to rebuild the selection.  Use the board_item flags instead.

Fixes https://gitlab.com/kicad/code/kicad/issues/12882
2022-11-11 22:57:38 +00:00
Jeff Young 138f835672 Retire group bbox cache.
It's too hard to maintain when changes to other items (the groups
members) affect it.
2022-11-11 20:31:31 +00:00
Jeff Young 3fc727bb91 Clear selection before deleting objects during conversion.
Fixes https://gitlab.com/kicad/code/kicad/issues/12879
2022-11-11 17:53:01 +00:00
Jeff Young 03ba14c6d3 Tighten lifecycle management of parent group pointers.
Also adds some debugging to try to catch dangling pointers.

Also adds a cache for group bounding boxes (which will be expensive
to calculate for large groups).

Fixes https://gitlab.com/kicad/code/kicad/issues/12875
2022-11-11 17:27:28 +00:00
Alex 0b4fc8f50d Fix bugs in PCB arc editing. 2022-11-11 15:00:36 +05:00
Alex 46d4861187 Use the 45-degree limit button to apply alternative constraint. 2022-11-11 15:00:36 +05:00
Alex 8b0f3f1ee7 Set keeping the center as the default arc editing mode. 2022-11-11 15:00:36 +05:00
Jeff Young f846bc833b Don't error out when enumeration of footprints fails.
We still want to load the ones that did enumerate.

Fixes https://gitlab.com/kicad/code/kicad/issues/12864
2022-11-10 13:48:04 +00:00
Jeff Young 36eb853570 Formatting. 2022-11-10 13:48:04 +00:00
Jeff Young 3e3ed0f3ee Formatting and naming. (No functional changes.) 2022-11-09 16:31:29 +00:00
Jeff Young da171b9665 0,0 origin isn't an option we give to the user.
Fixes https://gitlab.com/kicad/code/kicad/issues/12324
2022-11-09 16:20:52 +00:00
Jeff Young 3f63f9fc57 Don't prune inner layers of through-hole parts.
For historical reasons we've always included ALL inner layers in these
items and changing that has uncovered several latent bugs.  Rather
than find all the rest this late in the game, I went back to storing
all inner layers, even those the board doesn't currently have.

Fixes https://gitlab.com/kicad/code/kicad/issues/12863
2022-11-09 15:58:14 +00:00
Jeff Young 63f937db85 Don't use drag origin for real drag events.
Fixes https://gitlab.com/kicad/code/kicad/issues/12763
2022-11-09 13:09:31 +00:00
Jeff Young 4066850f37 Use event point to determine if we're still in draggable item. 2022-11-09 13:09:01 +00:00
jean-pierre charras 85e44c2dae pcbnew, SVG import: fix an issue for SVG files using a CR+LF end of file
The issue was in a validity test working only if CR+LF is not replaced by LF
Fixes #10096
https://gitlab.com/kicad/code/kicad/issues/10096
2022-11-09 09:33:51 +01:00
Seth Hillbrand 8b7d997a6d Fix broken refactor
Don't trust the automatic refactor.  It misses the strangest things
2022-11-08 20:30:30 -08:00
Seth Hillbrand 39774463db Remove extra line 2022-11-08 16:35:03 -08:00
Jeff Young 2ada7db282 Update footprint editor's board with changed prefs.
Fixes https://gitlab.com/kicad/code/kicad/issues/12678
2022-11-09 00:30:39 +00:00
Seth Hillbrand 056f45cd70 Fixup most intersecting polygon points
Remaining is the intersecting complex pad, so this keeps the error
message when drawing

Fixes https://gitlab.com/kicad/code/kicad/issues/12806
2022-11-08 16:05:04 -08:00
Jeff Young 2cfe78170c Honour selection filter when picking move anchors.
Fixes https://gitlab.com/kicad/code/kicad/issues/12773
2022-11-08 16:27:18 +00:00
Jeff Young 1d7c5dce70 Don't attempt to write zone-connection-layers to footprint library.
Fixes https://gitlab.com/kicad/code/kicad/issues/12857
2022-11-08 12:13:15 +00:00
jean-pierre charras 9501f4303d Rename CreateWindow to CreateKiWindow to avoid a collision name with a windows header
No code change, but it fix an issue specific to msys2 that bother me when
trying to fix issues with wx 3.0.x version
2022-11-08 12:31:07 +01:00
jean-pierre charras cb3d215b6a Fix compil and Coverity warnings. 2022-11-08 11:53:13 +01:00
Marek Roszko d8e9436d92 Fix step export not resolving variables
Fixes https://gitlab.com/kicad/code/kicad/-/issues/12754
2022-11-07 23:21:48 -05:00
Marek Roszko cd30da179a Round out the cli with position file export 2022-11-07 19:53:35 -05:00
Jeff Young be8bbcaac3 Send Selected event even if the result is an empty selection.
Fixes https://gitlab.com/kicad/code/kicad/issues/12849
2022-11-07 19:47:51 +00:00
Jeff Young b5f62da5d9 Respect synthetic layer visibility when selecting footprint texts.
Fixes https://gitlab.com/kicad/code/kicad/issues/12850
2022-11-07 19:26:14 +00:00
Jeff Young ae741b93e6 Resore push/pop-less PickerTool.
(Functionality was accidentallly lost when we removed the opt command
strings.)
2022-11-07 19:11:12 +00:00
dsa-t 0b3ecdd968 Revert "Fix handling of self-intersecting polygons"
This reverts commit ed309e20da
2022-11-07 09:41:56 +00:00
jean-pierre charras dc6fcc262c Pcbnew : allows overwriting viewport with same name in appearance manager.
Fixes #12765
https://gitlab.com/kicad/code/kicad/issues/12765
2022-11-07 09:11:49 +01:00
Jeff Young be29ab2c76 Need to check enabled as well as visible.
Fixes https://gitlab.com/kicad/code/kicad/issues/12786
2022-11-06 19:53:57 +00:00
Jeff Young 396e220133 Non-visible layers are stored in the GPU so still have to be drawn.
Fixes https://gitlab.com/kicad/code/kicad/issues/12792
2022-11-06 17:37:29 +00:00
Jon Evans dd94b2d3a7 Rename PROPERTIES to STRING_UTF8_MAP for clarity
This class has nothing to do with the properties system
2022-11-06 11:51:52 -05:00
Jon Evans 68de92313e Properties: move to custom editor for distances; refactoring
Also fix display of angle values since EDA_ANGLE was introduced

Fixes https://gitlab.com/kicad/code/kicad/-/issues/12290
2022-11-06 11:40:45 -05:00
Jeff Young 90c5295a9f Fix builds on non-Macs. 2022-11-06 15:07:38 +00:00
Jeff Young f706ac06b8 Code cleanup. 2022-11-06 11:17:54 +00:00
Jeff Young b385a4b60a Implement DarkMode for the Appearances Palette.
Fixes https://gitlab.com/kicad/code/kicad/issues/11734
2022-11-06 00:34:45 +00:00
Jeff Young a03799c61e Don't mark collisions on dragged items, only things they collide with.
Fixes https://gitlab.com/kicad/code/kicad/issues/8965
2022-11-05 21:54:33 +00:00
Jeff Young bb618f2d55 Update pointEditor after cancelled move. 2022-11-05 16:50:54 +00:00
Jeff Young 25f06eed8c Move zone borders back to their "host" layer.
Zone borders shouldn't be affected by zone-opacity control; we always
draw them in full layer opacity.

Fixes https://gitlab.com/kicad/code/kicad/issues/12438
2022-11-05 16:50:54 +00:00
Jeff Young 0883c0ae64 Remove shadow member variable.
Fixes https://gitlab.com/kicad/code/kicad/issues/12830
2022-11-05 16:50:54 +00:00
Jeff Young 7b0535e63f My build seems to want to check this in.
I thought the compiled files were outside of the tree?
2022-11-05 16:50:54 +00:00
Jon Evans 995a153f27 Update nlohmann::json to 3.11.2
Also update json_schema_validator to match new deprecations
2022-11-05 10:53:57 -04:00
Jeff Young 9fafd6feff Add missing constraint type to help. 2022-11-05 10:23:12 +00:00
Seth Hillbrand c1f2ca1d8d Make multiple names of the net on a track
Rather than moving the netname around, we want to keep the correct
number of netnames on a track such that there is always at least one
displayed on long tracks even when panning.

This reduces calculation time while keeping the netnames visible

Fixes https://gitlab.com/kicad/code/kicad/issues/12436
2022-11-04 11:49:50 -07:00
Seth Hillbrand c95bd3fc89 Cache LOD for netname redraw
When panning, we should only redraw the netnames when they come into
view or go out of view.  Caching the LOD provides this preventing
unneeded redraws while still redrawing on zoom changes

Fixes https://gitlab.com/kicad/code/kicad/issues/12436
2022-11-03 13:50:12 -07:00
Seth Hillbrand 8bc9d456c3 Fix area selection calculation
area was a double value for comparison of large numbers.  But the
promotion from int happened after the multiplication (and overflow) for
large images

Fixes https://gitlab.com/kicad/code/kicad/issues/12821
2022-11-03 11:46:40 -07:00
Jeff Young d8ddeea14a Update errors count when errors are logged.
Fixes https://gitlab.com/kicad/code/kicad/issues/12800
2022-11-03 17:19:59 +00:00
Jeff Young e33c611488 Replace collision calls with ones that work.
I'm not sure why the old calls didn't work, but they reported "no
collision" between two overlapping zones.
2022-11-03 17:19:59 +00:00
Jeff Young 13b097396b More explicit error message for unnumbered pins. 2022-11-03 17:19:59 +00:00
Marek Roszko bc45ae1b72 Move a dialog that was hiding in the filetree 2022-11-02 22:30:46 -04:00
Sylwester Kocjan a234d5a2c8 common,eeschema,pcbnew: path cleanup 2022-11-02 13:29:52 +00:00
Jeff Young 619c340d92 Handle holes when building outlines for copper sliver checker.
Fixes https://gitlab.com/kicad/code/kicad/issues/12797
2022-11-01 23:33:44 +00:00
Jeff Young 1f4e51b008 Be careful of interveneing priority zones when doing divot prevention.
Fixes https://gitlab.com/kicad/code/kicad/issues/12797
2022-11-01 23:33:44 +00:00
Seth Hillbrand ed309e20da Fix handling of self-intersecting polygons
We allow temporary self-intersection but before committing, we reduce
the polygon to a single outline (optionally with holes)

Fixes https://gitlab.com/kicad/code/kicad/issues/12806
2022-11-01 13:09:11 -07:00
Jon Evans a5d685ff5c Handle coordinate transforms in properties system
Fixes https://gitlab.com/kicad/code/kicad/-/issues/12320
2022-10-31 23:01:52 -04:00
Seth Hillbrand c7c4439027 Allow bezier->line/poly conversion
Fixes https://gitlab.com/kicad/code/kicad/issues/12778
2022-10-31 12:48:53 -07:00
Tomasz Wlostowski a0105efc0c router: major rewrite of shove/walkaround single line placement. An attempt to fix most router blockages/non-45 stray segments and simplar stuff. Also adds a ton of debug geometry cruft.
fixes: 12258
fixes: 12067
fixes: 10807
fixes: 10632
2022-10-31 11:38:31 +01:00
Tomasz Wlostowski 70bca1b2d5 router: allow caller to override the 'safety' length limit in WALKAROUND 2022-10-31 11:17:32 +01:00
Tomasz Wlostowski 363d606503 router: improved heuristics in via force propagation algorithm 2022-10-31 11:17:32 +01:00
Tomasz Wlostowski 1ddabd4eaf router: some extra debug geometry dumps in SHOVE 2022-10-31 11:17:32 +01:00
Tomasz Wlostowski 165b5257e8 router: temporaily disable upper corner count limit constraint in the OPTIMIZER which prevents almost any optimization of shoved lines 2022-10-31 11:17:32 +01:00
Tomasz Wlostowski e80bdf934a router: add via force propagation iteration limit as a user-controllable parameter in ROUTING_SETTINGS 2022-10-31 11:17:32 +01:00
Tomasz Wlostowski 247922ca2d router: LINE::SetShape() should update the attached via position with the last point of the new line shape 2022-10-31 11:17:32 +01:00
Tomasz Wlostowski 3e67b42efd router: fix another corner case in LINE::Walkaround 2022-10-31 11:17:31 +01:00
Tomasz Wlostowski 65507e7186 router: extend dump format to support automatic regressions tests of interactive routing scenarios 2022-10-31 11:17:31 +01:00
jean-pierre charras d289130627 fix memory leak and missing switch to "C" locale in some handlers
PCBNEW_JOBS_HANDLER::JobExportGerber(): disable plot pad holes.
2022-10-31 10:04:01 +01:00
Jon Evans ed4a40ee4f Save state of appearance panel panes
Fixes https://gitlab.com/kicad/code/kicad/-/issues/9087
2022-10-30 19:46:15 -04:00
Marek Roszko 0a134788d0 Implement cli for gerber, drill, pdf export of pcb 2022-10-29 11:56:10 -04:00
jean-pierre charras 8d44c770a8 board_commit.cpp: Avoid generating a wxAssert message in QA test.
In QA test, frame and selTool are nullptr.
So we cannot use wxCHECK( frame && selTool,...) because it breaks the QA test.
We just test frame and selTool when needed.
2022-10-29 16:28:57 +02:00
Seth Hillbrand aca3329469 Remove superfluous Simplify call 2022-10-28 17:01:36 -07:00
Jeff Young 01b4c20c94 Router only owns message panel when routing.
Also fixes a pair of copy/paste error not caught earlier.

Fixes https://gitlab.com/kicad/code/kicad/issues/12780
2022-10-28 22:51:43 +01:00
Wayne Stambaugh e1af4c5cf6 Pcbnew move item dialog layout improvements.
Don't use wxBU_EXACTFIT to define the reset buttons.  On GTK, there is no
border around the button text which does looks cramped and inconsistent
with the other buttons.
2022-10-28 14:27:35 -04:00
Jeff Young 3b3e6de515 Disable mirror commands when a single footprint is selected.
Fixes https://gitlab.com/kicad/code/kicad/issues/12752
2022-10-28 19:20:24 +01:00
Seth Hillbrand 7a874255c5 Be smarter about canceling fills
Handles cancellation in main fill loop.  Allows loops to finish without
restarting new ones.  Further enhancement might allow breaking threads
cleanly but this gets 90% of the cases

Fixes https://gitlab.com/kicad/code/kicad/issues/12693
2022-10-28 10:17:58 -07:00
Jeff Young 24f8bf2adf Clear Editing Board Footprint message when loading new footprint.
Fixes https://gitlab.com/kicad/code/kicad/issues/12783
2022-10-28 15:59:03 +01:00
Jeff Young 78db69bb48 Don't append '+' when modifier used on its own. 2022-10-27 18:03:07 +01:00
Jeff Young f6c441c434 Viewport switcher keys are platform-specific.
Also fixes a regression where ctrl-tab doesn't get recognized.

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

Fixes https://gitlab.com/kicad/code/kicad/issues/10127
2022-10-27 14:28:11 +01:00
Jeff Young ef17ee3384 Tooltips for layer & viewer presets.
Fixes https://gitlab.com/kicad/code/kicad/issues/11778
2022-10-27 14:27:19 +01:00
Wayne Stambaugh 6a0db3e7e2 Fix Coverity warnings. 2022-10-26 14:39:44 -04:00
Marek Roszko a7e1f668a7 Some cleanup of the cli functions 2022-10-25 23:26:23 -04:00
Marek Roszko 2b8a29b662 Try and make the svg command handling warn a little, also default the output 2022-10-25 20:17:25 -04:00
Jon Evans 5f0ebfbfbd Expose black&white setting for PDF plotting also
Also fix an issue plotting tech layers for pads in color

Fixes https://gitlab.com/kicad/code/kicad/-/issues/12740
2022-10-25 19:06:19 -04:00
Jeff Young 9380b9a451 Trim pad layers to current board before comparing.
Fixes https://gitlab.com/kicad/code/kicad/issues/12758
2022-10-25 23:53:10 +01:00
Jeff Young c026c3af7b Fix typo.
Fixes https://gitlab.com/kicad/code/kicad/issues/12753
2022-10-25 18:28:31 +01:00
Jeff Young 5fe5534822 Clean up layer handling and normalize to remove magic numbers.
Fixes https://gitlab.com/kicad/code/kicad/issues/12747
2022-10-25 12:31:47 +01:00
Jeff Young f480cbf93f Treat internal copper layers as side-specific.
Fixes https://gitlab.com/kicad/code/kicad/issues/12726
2022-10-25 12:08:57 +01:00
Fabien Corona 20b63f305e Sim: Ibis improvements and fixes
Follow-up after the KIBIS and KIBIS GUI merge requests.

- Move KIBIS from Pcbnew to Eeschema space,
- Make KIBIS obtain the Ku/Kd coefficients via the `SPICE_SIMULATOR` class instead of calling the `ngspice` executable via `system()`,
- Allow to toggle between differential and single-ended model in the GUI,
- Various GUI fixes and improvements.
2022-10-25 09:45:40 +00:00
Marek Roszko b058ef2d87 Add the missing black and white setting to Plot -> SVG 2022-10-24 22:46:01 -04:00
Jon Evans 960c92634f Improve logic of Position Relative tool
Fixes https://gitlab.com/kicad/code/kicad/-/issues/12672

(cherry picked from commit 2d2912c23d)
2022-10-24 18:47:38 -04:00
Jeff Young d6fca11419 Finish up work on PlaceFile settings persistence.
We were missing several flags, and using the Plot output directory
instead of saving our own.

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

Fixes https://gitlab.com/kicad/code/kicad/issues/12714
2022-10-24 22:23:11 +01:00
Jeff Young fa2a36b74e Add SMD and TH settings to config, and get rid of intermediate vars.
Fixes https://gitlab.com/kicad/code/kicad/issues/12715
2022-10-24 19:50:59 +01:00
Jeff Young 4778122aa0 Flip anything on a side-specific layer, rather than physical layer.
Fixes https://gitlab.com/kicad/code/kicad/issues/12726
2022-10-24 16:54:33 +01:00
Marek Roszko d06155f6af Allow the search pane to highlight nets
Fix https://gitlab.com/kicad/code/kicad/-/issues/12551
2022-10-23 19:54:12 -04:00
Jeff Young 2dec37f806 We must check clearance on all layers of multi-layer items.
(One layer may have a custom rule.)

Fixes https://gitlab.com/kicad/code/kicad/issues/12733
2022-10-24 00:14:12 +01:00
Jeff Young cef7cd8f7c Move default font to RENDER_SETTINGS.
Fixes https://gitlab.com/kicad/code/kicad/issues/12723
2022-10-22 21:32:42 +01:00
Wayne Stambaugh d78b41969f Fix broken autosave when board is modified.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/12700
2022-10-22 15:49:03 -04:00
jean-pierre charras 63002cec57 Do not add a title/comment in mandatory field strings when writting netlists.
This is mainly for "Sheetfile" property because current it is the only one
that has a title when plotting/drawing it.
2022-10-22 12:50:26 +02:00
Jeff Young ce2dbdec75 Formatting and a bit of cleanup. 2022-10-21 18:41:39 +01:00
Jeff Young d16b23d16e Name shortening and line-break reduction. 2022-10-21 18:41:39 +01:00
Seth Hillbrand d1bf889e71 Resolve embedded text vars
Title Block text variables are embedded into the pcb file and should
be used for resolving when the project file is missing
2022-10-21 08:37:37 -07:00
Alex 67985510a8 Fix selecting pads of footprints in groups. 2022-10-21 17:13:24 +03:00
Jeff Young 585fac19c6 Copy connected-only and keep-top-bottom properties.
Fixes https://gitlab.com/kicad/code/kicad/issues/12691
2022-10-21 00:05:11 +01:00
Jeff Young 6fd195c389 Use comma to separate diff pair nets/netclassse rather than /.
("/" is problematic because it's more likely to appear in netnames.)

Fixes https://gitlab.com/kicad/code/kicad/issues/12592
2022-10-21 00:05:11 +01:00
Jeff Young 3451506d25 Slight performance improvement. 2022-10-20 18:37:48 +01:00
Jeff Young 323c04af2c Fix order-of-ops issue with calling collide before tesselating. 2022-10-20 18:37:48 +01:00
jean-pierre charras 6aa515e2f8 board_stackup_manager: fix incorrect behavior when adding a new dielectric layer.
Fixes #12680
https://gitlab.com/kicad/code/kicad/issues/12680
2022-10-20 11:27:35 +02:00
Jeff Young e3842514e7 Move courtyard collision setting to preferences.
Also cleans up PCBNew/FPEditor edit options panel to be more in sync
with each other.
2022-10-19 11:33:11 +01:00
Jeff Young 403cc50e7c Don't exit group when the cancel went to another tool.
Also fixes a bug where the group border didn't get updated immediately
on enter/exit.

Fixes https://gitlab.com/kicad/code/kicad/issues/12669
2022-10-18 17:53:06 +01:00
Jeff Young 8d40bf25d6 Need to setup outline mode stuff if it's turned on late. 2022-10-18 14:41:27 +01:00
Jeff Young 1f0fa3ef63 Fix bug in new optionally-flashed via/pad zone fill logic. 2022-10-18 14:02:47 +01:00
Jeff Young 4633d251a5 Remove single-zone-fill and unfill.
These are incompatible with our zone-priority-based algorithms.
2022-10-18 13:45:28 +01:00
Jeff Young 437d2c4589 Overhaul of remove-unconnected's zone filling and drawing strategies.
1) The highest priority zone that a via/pad collides with "owns" its
connectivity state.  Once set, lower priority zones cannot change it --
and in fact, if they would have connected to it are forced not to.

2) The connectivity state goes with the zone fill state, and therefore
must be saved in the file.

3) Display of remove-unconnected's pads is no longer done in GetViewLOD()
(which isn't called for selected items), and is instead done in PCB_PAINTER.
This allows us to draw the full pad in outline mode when a via/pad is
selected which would otherwise only show the hole.

4) Note that in some cases this will still generate DRC errors -- in
particular when a via nearly collides with a higher priority zone it
won't get "owned" by that zone and may therefore have insufficient
clearance if said zone concludes it's unconnected and a subsequent
(lower priority) zone connects to it (causing it to now become flashed).

Fixes https://gitlab.com/kicad/code/kicad/issues/11299
2022-10-18 13:05:42 +01:00
Wayne Stambaugh 598b09821a Coverity fixes. 2022-10-17 15:30:20 -04:00
Jeff Young 92f1ee556f Don't fill drawing sheet rects with transparent fill.
It might make sense to do that with board and/or schematic items for
hit-testing or something, but it definitely doesn't make any sense for
the drawing sheet border.

Also, when reading in items with a transparent fill, treat them as
unfilled (otherwise we get filled with layer colour in at least PCBNew).
2022-10-17 17:51:11 +01:00
Jeff Young 413fd82813 Re-entrancy guard for router tool.
Fixes https://gitlab.com/kicad/code/kicad/issues/12604
2022-10-17 13:21:07 +01:00
Jeff Young 46752499df We need both a tool-oriented delete and one that doesn't push/pop, etc.
Fixes https://gitlab.com/kicad/code/kicad/issues/12600
2022-10-17 13:21:07 +01:00
jean-pierre charras f3bb34779a TransformTextShapeWithClearanceToPolygon() add optimization for 3D viewer.
This function convert a text shape to a set of polygons for the 3D viewer.
Texts shapes are a bit special and can generate a lot of small overlapping polygons.
These polygons are now merged before being added to the list of polygons handled
by the 3D viewer draw functions.
Locally merging polygons is usually not efficient but in this case it can speedup
the 3D viewer (up to 10x).
Mainly noticeable for silkscreen layers when the "copper" thickness is shown
2022-10-17 07:32:30 +02:00
Jeff Young 3e53426b6c Use same ratsnest colours in the router as the rest of KiCad. 2022-10-16 22:21:14 +01:00
Jeff Young e9f8454a67 No DRC engine in footprint editor.
Fixes https://gitlab.com/kicad/code/kicad/issues/12658
2022-10-16 18:39:37 +01:00
Jeff Young 631980b0ab We were saving the old board pointer, but not updating the current one.
This also makes a few other adjustments to order and to where we look
for the enabled layers which should make it more robust.

Fixes https://gitlab.com/kicad/code/kicad/issues/10925
2022-10-16 18:39:37 +01:00
Jeff Young 73e1676bdb Fix const-reference property access.
Fixes https://gitlab.com/kicad/code/kicad/issues/12639
2022-10-15 20:22:38 +01:00
Jeff Young d1fb32f26c Formatting. 2022-10-15 19:09:25 +01:00
Jeff Young 4af98827fd Revert change for 11299, and update removed-pad items after zone fills.
Fixes https://gitlab.com/kicad/code/kicad/issues/12645
2022-10-15 16:06:57 +01:00
Jeff Young b012cc1ac3 Don't resolve footprint text variables in footprint editor.
Fixes https://gitlab.com/kicad/code/kicad/issues/12658
2022-10-15 16:05:22 +01:00
Jeff Young 0d7185c2ff Fix mismatch between PCB_VIA defaults and file format defaults. 2022-10-15 11:17:58 +01:00
jean-pierre charras a855c9a40c Fix not handled exceptions. 2022-10-15 10:27:00 +02:00
jean-pierre charras 8098db2a20 BuildBoardPolygonOutlines: enable multiple main outlines: it works fine in 3D viewer. 2022-10-15 09:33:27 +02:00
Seth Hillbrand 697056fa7e Correctly sort positions for default align
When not aligning under mouse cursor, choose the X-most element where X
is top/bottom/left/right.  Previous sorting was not correct for two
directions

Fixes https://gitlab.com/kicad/code/kicad/issues/12627
2022-10-14 16:15:06 -07:00
Jeff Young 7ffdfb1067 Clear Scintilla undo history after setting initial text.
Fixes https://gitlab.com/kicad/code/kicad/issues/12650
2022-10-14 22:01:20 +01:00
Jeff Young 6f9bc0980b Refactor poly outline generator to handle multiple outlines.
Note: disjoint outlines are handled in footprint courtyards, but not
for board outlines.

Fixes https://gitlab.com/kicad/code/kicad/issues/7660
2022-10-14 20:32:04 +01:00
Jeff Young 6357c83a8c Debug code to try and catch Undo/SyncWorld mismatch.
Fixes https://gitlab.com/kicad/code/kicad/issues/12640
2022-10-14 13:25:25 +01:00
Jeff Young 07d9671126 Repair unbalanced UndoRedoBlock call. 2022-10-14 11:44:04 +01:00
Jeff Young b01bf081d8 Cleanup. 2022-10-14 11:12:25 +01:00
Jeff Young de5980b92e Share more of the courtyard collision highlighting code. 2022-10-14 10:42:07 +01:00
Jeff Young 11dc5424cb Pull interactive courtyard checker out of move tool to share with router.
Fixes https://gitlab.com/kicad/code/kicad/issues/12594
2022-10-14 00:48:37 +01:00
Jeff Young 8f1b4a9c03 Include cleanup. 2022-10-13 23:15:41 +01:00
Jeff Young 3090363cd5 Copy via flags down to the level the router consumes.
Fixes https://gitlab.com/kicad/code/kicad/issues/12591
2022-10-13 17:41:42 +01:00
Jeff Young 46a41e2e34 Pin 0-sized pads at 1um rather than throwing them out.
(See bug report for more commentary.)

Fixes https://gitlab.com/kicad/code/kicad/issues/12617
2022-10-13 14:47:50 +01:00
Jeff Young 08260661b8 Force flashing when generating SOLIDs.
We only have a single SOLID per pad, so the solid's shape must always
be the flashed shape and then we can do layer-specific flashing tests
internally.

Fixes https://gitlab.com/kicad/code/kicad/issues/12458
2022-10-13 13:05:51 +01:00
Jeff Young d1450e1802 Commenting. 2022-10-13 13:05:51 +01:00
Jeff Young 8b9cbd5805 Don't reset editPad if it still exists after model reset.
Fixes https://gitlab.com/kicad/code/kicad/issues/12630
2022-10-13 00:07:30 +01:00
Jeff Young efa14e501c Cleanup. 2022-10-12 16:36:54 +01:00
jean-pierre charras d0d625dcb5 BOARD_INSPECTION_TOOL::LocalRatsnestTool(): set a suitable cursor when activated. 2022-10-12 15:56:41 +02:00
Jeff Young bd1114d94d Move footprint properties dialogs to symbol properties grid resizing strategy.
Fixes https://gitlab.com/kicad/code/kicad/issues/9883
2022-10-12 00:38:44 +01:00
Jeff Young e02c05d38f Add unit and eval support to WX_GRIDs.
Fixes https://gitlab.com/kicad/code/kicad/issues/1871

Fixes https://gitlab.com/kicad/code/kicad/issues/4285
2022-10-11 23:40:58 +01:00
Seth Hillbrand c9f11827a7 Don't connect disparate nets
Only some elements get their nets assigned based on connectivity.  Other
elements should be keps in different clusters for connection

Fixes https://gitlab.com/kicad/code/kicad/issues/12622
2022-10-11 15:03:51 -07:00
Jeff Young 57a6aeb86a Redraw ratsnest after removing teardrops.
No, I don't know why this is needed.  But after a couple of hours trying
to chase it down, return-on-investment is fading....

Fixes https://gitlab.com/kicad/code/kicad/issues/12420
2022-10-10 21:07:18 +01:00
Jeff Young 83310659fd Basic geometry: R != D.
Fixes https://gitlab.com/kicad/code/kicad/issues/12601
2022-10-10 19:18:37 +01:00
Jeff Young 8470b178cd Use actual pad shapes or built outline instead of effective shpaes for anchors.
The effective shapes don't work very well in the custom pad or rounded
rectangle cases, and they're somewhat slower in some of the other cases.

Fixes https://gitlab.com/kicad/code/kicad/issues/12601
2022-10-10 18:11:32 +01:00
Jeff Young 3221877fe8 Push autosave-require down in to EDA_BASE_FRAME.
Fixes https://gitlab.com/kicad/code/kicad/issues/11790
2022-10-10 14:03:52 +01:00
Jeff Young be6f08deca Code clarity. (No functional changes.) 2022-10-10 14:03:52 +01:00
Jeff Young b2f05c758b We don't always have a line when dragging.
Fixes https://gitlab.com/kicad/code/kicad/issues/12612
2022-10-10 11:44:17 +01:00
Jeff Young ea6fb84351 Formatting. 2022-10-10 11:44:17 +01:00
aris-kimi 6bc00eabaf dialog_dxf_import dialog minor UI fixes 2022-10-10 02:51:24 +00:00
Jeff Young 35a14b8e5d Better error messages (and make an empty pad an error, not a warning). 2022-10-09 20:28:54 +01:00
Jeff Young e866dfe137 Avoid trying to draw empty pads.
Fixes https://gitlab.com/kicad/code/kicad/issues/12605
2022-10-09 20:28:54 +01:00
Jeff Young 4a66203493 Update zone layers for all layers.
Fixes https://gitlab.com/kicad/code/kicad/issues/12128
2022-10-08 23:27:59 +01:00
Marek Roszko 3b63ce8a48 Don't use the 3d resolver config anymore 2022-10-08 14:27:10 -04:00
jean-pierre charras 27f8abd8a1 Fix compatibility with wxWidgets 3.0
change wxOVERRIDE -> override
2022-10-08 17:34:37 +02:00
jean-pierre charras faae4f9eea kicad2step: force immediate printing of messages (mingw issue: we need to flush the stdout buffer) 2022-10-08 16:43:14 +02:00
Marek Roszko aaa1d166a7 Redirect step export output to a pretty window 2022-10-08 09:48:00 -04:00
Jeff Young 51c20da93e Areas might have layers defined in area as well as rule.
Fixes https://gitlab.com/kicad/code/kicad/issues/12584
2022-10-07 23:52:47 +01:00
Jeff Young 79dabdd484 Fix typo. 2022-10-07 23:52:47 +01:00
Alex 2577ebb94d Increase dynamic ratsnest opacity for better visibility. 2022-10-07 21:50:12 +00:00
Jeff Young 04fec5016b Add keepout zones set to keepout footprints to footprint courtyard checker.
(This is for the move tool, not DRC.  DRC uses more sophisticated keepout
processing which is too slow for the move tool, and doesn't let us know which
keepout area collided for collision highlighting.)

Fixes https://gitlab.com/kicad/code/kicad/issues/12594
2022-10-07 22:23:37 +01:00
Jeff Young d6f1d5da76 Start-routing list needs to be a white list, not a black list.
We check the collisions later in the same routine, which is where all
the black-listed objects come in.

Fixes https://gitlab.com/kicad/code/kicad/issues/12595
2022-10-07 18:18:02 +01:00
jean-pierre charras b8dfbe02ad Fix some issues in STEP exporter 2022-10-07 18:53:31 +02:00
Jeff Young bc58480e24 Missed some other uses of m_startItem in previous commit.
Fixes https://gitlab.com/kicad/code/kicad/issues/12592
2022-10-07 14:01:46 +01:00
Jeff Young cbb997a3b5 Use GetCurrentNets(), not m_startItem for message panel updates.
Fixes https://gitlab.com/kicad/code/kicad/issues/12592
2022-10-07 10:34:11 +01:00
jean-pierre charras 01a1d148e6 Make a sentence understandable and translatable.
Fix a minor compil warning
2022-10-07 10:11:02 +02:00
Alex 165654f114 Expose Switch Arc Posture in context menu. 2022-10-07 08:28:13 +03:00
Alex d26b59a0bf Improve arc construction using angles from arc geometry manager.
Fixes https://gitlab.com/kicad/code/kicad/issues/11713
2022-10-07 06:51:00 +03:00
Alex 2741d0eb4b Fix crash on Specctra import.
Fixes https://gitlab.com/kicad/code/kicad/issues/12583
2022-10-07 03:03:34 +03:00
Alex 22917860ef Move Enter Group for easier access. 2022-10-07 03:03:33 +03:00
Jeff Young 098e96f1c7 Use more precise formatting in DRC messages when less precise values are identical.
Fixes https://gitlab.com/kicad/code/kicad/issues/12587
2022-10-06 22:18:53 +01:00
Jeff Young 9119b5072a Respect DRCEpsilon in diff-pair coupling test.
Fixes https://gitlab.com/kicad/code/kicad/issues/12587
2022-10-06 22:18:53 +01:00
Jeff Young d6c7f46842 Formatting. 2022-10-06 22:18:53 +01:00
Alex 0fea6f5ac3 Fix selection and entering in nested groups.
Fixes https://gitlab.com/kicad/code/kicad/issues/12586
2022-10-06 21:02:36 +03:00
aris-kimi f818f3a445 Fix footprint rule and zone area anchors
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/12575
2022-10-06 15:29:18 +00:00
Jeff Young 40ad5b6de3 Broaden reset-sizes-after-layer-switch algorithm.
Fixes https://gitlab.com/kicad/code/kicad/issues/12576
2022-10-06 15:50:22 +01:00
Jeff Young 6927e75eae Handle keepout areas with holes.
Fixes https://gitlab.com/kicad/code/kicad/issues/12581
2022-10-06 15:08:56 +01:00
Jeff Young 19d270fe74 Text size sanity checking for TEXT_ITEMS_GRID.
Oh dear, there was a bunch going on here.  Firstly the move from int
to long long int for ValueFromString() means that we were no longer
catching overflows (as we were C-style casting it back to int in many
places).  But even when the overflow is caught, it would run in to
wxWidgets' empty string bug while trying to log it.

Fixes https://gitlab.com/kicad/code/kicad/issues/12577
2022-10-06 13:19:08 +01:00
Jeff Young d8a3ba7917 Update router sizes when switching layers.
We may have layer-specific rules involved.  Note that at some point
we also need to do something similar on every "fix route" step to
handle area-specific rules.

Fixes https://gitlab.com/kicad/code/kicad/issues/12576
2022-10-05 16:45:42 +01:00
Mark Roszko 6ddc5c1a6e Fix run from build dir for step 2022-10-05 03:53:56 +00:00
Marek Roszko 3fe004fd1b New kicad-cli will now be the cli interface 2022-10-04 22:24:13 -04:00
Seth Hillbrand 87171f53c7 Speedup dynamic ratsnest
Removes some unneeded calculations and threads the remaining.

Threading was previously removed to avoid overhead issues with small
boards.  This is no longer needed with the thread pool implementation

Fixes https://gitlab.com/kicad/code/kicad/issues/12131
2022-10-04 17:06:45 -07:00
Seth Hillbrand a0865082fb Fix compile warnings 2022-10-04 17:06:45 -07:00
jean-pierre charras 0c7b6c3cbc fix minor compil warnings 2022-10-04 19:51:51 +02:00
Seth Hillbrand b4f3390626 Drill size is absolute
Use hole plating size for visibility only, not zone filling, routing or
DRC
2022-10-04 09:52:40 -07:00
Jeff Young 436d75e7f9 Try to reconcile SELECTION and BRIGHTENED use of overlay.
For some reason the overlay doesn't get redrawn during the PCBNew
selection disambiguation menu, so we need to not hide BRIGHTENED
items.

Fixes https://gitlab.com/kicad/code/kicad/issues/12547
2022-10-04 17:01:56 +01:00
Jeff Young 524a43f95e Don't select footprints on the wrong side if not visible.
Fixes https://gitlab.com/kicad/code/kicad/issues/12483
2022-10-04 13:22:06 +01:00
Mark Roszko fb8a4c10f7 Shove kicad2step into pcbnew itself with a new cli 2022-10-04 01:53:37 +00:00
Seth Hillbrand b716afd6f1 Clarify various uses of "Center"
Distinguish between the english verb "Center" and the noun "Center",
which may be translated differently

Fixes https://gitlab.com/kicad/code/kicad/issues/11109
2022-10-03 12:48:57 -07:00
Seth Hillbrand 15d52c91e4 Clear ratsnest when removing nets
While we can keep the vector for nets, we need to ensure that the data
are cleared to prevent stale pointer access

Fixes https://gitlab.com/kicad/code/kicad/issues/12564
2022-10-03 09:33:31 -07:00
Jeff Young 97d4df4154 Better thread safety for zone boundingbox caches. 2022-10-02 19:30:43 +01:00
Jeff Young adbbceacda Make footprint type check more narrow, and set default to ignore. 2022-10-02 18:19:43 +01:00
Jeff Young 1fc5ecae6e Minor dialog layout improvements.
Fixes https://gitlab.com/kicad/code/kicad/issues/12497
2022-10-02 11:45:30 +01:00
jean-pierre charras a7775bab26 Manage the Search panel visibility state in view menu.
Fixes #12533
https://gitlab.com/kicad/code/kicad/issues/12533
2022-10-02 10:20:26 +02:00
Jon Evans 7059ef9b89 Store netclass visibility separately from nets
Fixes https://gitlab.com/kicad/code/kicad/-/issues/10290
2022-10-01 19:54:13 -04:00
Jeff Young e49de68a59 Implement a more durable zone bounding box caching strategy.
Fixes https://gitlab.com/kicad/code/kicad/issues/10821
2022-10-01 22:10:43 +01:00
Seth Hillbrand 6d298b661a Minor speedup for some dynamic ratsnest cases 2022-10-01 13:43:57 -07:00
Jeff Young d776e908d0 Fix an edge-case in the spoke genration logic for non-cardinal spokes.
Fixes https://gitlab.com/kicad/code/kicad/issues/12549
2022-10-01 19:31:47 +01:00
Jeff Young 7be05e9eb1 Make sure we have nets before grabbing the first.
Fixes https://gitlab.com/kicad/code/kicad/issues/12554
2022-10-01 13:50:26 +01:00
Jeff Young ba630971af Possible fix for move/esc/esc crash.
Fixes https://gitlab.com/kicad/code/kicad/issues/12553
2022-09-30 23:05:55 +01:00
Jeff Young c0a666507c Work around more instances of the wxWidgets color string locale bug.
Fixes https://gitlab.com/kicad/code/kicad/issues/12552
2022-09-30 20:56:25 +01:00
Jeff Young f095453d3e Optimize ratsnest line endings for zones. 2022-09-30 19:04:54 +00:00
jean-pierre charras a2a442a9f7 Plot Gerber, StartPlotBoard(): display a error message if the layer is not valid.
It can happens in Python scripts, when the layer is not set when starting plot,
and therefore the Gerber file header is incorrect.
2022-09-30 18:16:11 +02:00
Jeff Young 6a6ef9b1f4 Bring adding-to-group and hiding in sync. 2022-09-30 16:45:00 +01:00
Jeff Young c87a5ff0ab Remove elipsis from Remove Teardrops.
Fixes https://gitlab.com/kicad/code/kicad/issues/12550
2022-09-30 13:04:58 +01:00
Jeff Young 2372f24cb0 Don't include hidden text in group boundingbox.
Fixes https://gitlab.com/kicad/code/kicad/issues/12541
2022-09-30 13:02:08 +01:00
Mike Williams c1da59b560 Swap: disallow swapping tracks / wires
Also fix missed shortcut change for S -> Shift-S

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/12538
2022-09-29 17:04:43 -04:00
Jeff Young b6efb88ee9 Fix logic error when filling zones.
Fixes https://gitlab.com/kicad/code/kicad/issues/12542
2022-09-29 17:46:24 +01:00
Jeff Young d67437a2aa Move ratsnest exclusion processing to a post-pass.
Also fixes a few cases where we were unnecessarily rebuilding
connectivity more than once for an operation.
2022-09-29 17:08:49 +01:00
jean-pierre charras b5dfa4e2fb Fix not handled exception, creating a crash.
Fixes #12536
https://gitlab.com/kicad/code/kicad/issues/12536
2022-09-29 13:08:23 +02:00
Fabien Corona 7e486327d9 Ibis differential and PRBS models 2022-09-29 08:35:01 +00:00
Seth Hillbrand 9894acea76 Spelling 2022-09-28 17:09:43 -07:00
Alex 4095172259 ADDED: Pack and Move Footprints, improved footprint spread algorithm. 2022-09-28 13:37:23 +00:00
Alex b6eb5f721a Remove old rect placement algorithm. 2022-09-28 13:37:23 +00:00
Mike Williams ba6afafc86 Router Tool: get rid of getNearestRatnestAnchor
Unused now that the PNS Router handles the actions that needed it.
2022-09-28 13:29:52 +00:00
Mike Williams 6252840abd PNS/Router Tool: Refactor Continue From End 2022-09-28 13:29:52 +00:00
Mike Williams 1be0deb58f PNS/Router Tool: Refactor Finish Route 2022-09-28 13:29:52 +00:00
Mike Williams b1f2273bc6 PNS: Add CurrentStart() to placers. 2022-09-28 13:29:52 +00:00
jean-pierre charras dcc325b3b2 More about fix compil issues and warnings, especially in ibis code.
A few are msys2 specific and due to include files order.
2022-09-28 11:26:07 +02:00
jean-pierre charras 7d20418d6f Fix compil issues and warnings, especially in ibis code. 2022-09-28 09:55:00 +02:00
Scott Hanson 5b9fcc0ba0 Cvpcb: Reload footprint libraries in CVPCB
CHANGED: Reload footprint libraries in CVPCB when footprint library table(fp-lib-table) is updated
2022-09-27 22:58:03 +00:00
Jeff Young 3a7068b346 Iterate on a copy of the selection since we're going to delete from it.
Fixes https://gitlab.com/kicad/code/kicad/issues/12484
2022-09-27 23:54:19 +01:00
Jonathan Haas 6b15231f4b Add code to set better default layer widths.
This affects both the layer count dropdown and the "Adjust dielectric thickness" button. Changing layer widths will now maintain the same total board width and set layer widths to common manufacturer values. Layer widths can be locked (as before) to keep any manually defined values.
2022-09-27 21:24:48 +00:00
Fabien Corona 528fe4d371 Add Ibis to spice model editor
ADDED: IBIS models are now supported in Sim Model Editor
2022-09-27 20:47:00 +00:00
Jeff Young 1a812727cb Fix some logic errors in importing SVG polygons with holes.
Fixes https://gitlab.com/kicad/code/kicad/issues/11479
2022-09-27 17:45:21 +01:00
Alex dc07ab9df1 Replace PROF_COUNTER with PROF_TIMER in some conditional places. 2022-09-27 14:07:47 +00:00
Jeff Young b70ffddb04 Terminology and coding style. 2022-09-27 12:23:38 +01:00
Jeff Young 9e580b3116 Other -> Unspecified and a couple of other terminology improvements. 2022-09-27 12:15:18 +01:00
Jeff Young 57a79f3020 Coding standards. 2022-09-27 11:50:14 +01:00
Mike Williams 700edb95e3 PCB Actions: Grab Unconnected
Grabs the nearest unconnected item for each selected footprint/pad.

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/1986
2022-09-26 16:17:41 -04:00
Mike Williams f4a3062684 PCB: Select Unconnected
Selects the all unconnected items for each selected routable item.
2022-09-26 16:17:41 -04:00
Mike Williams e66393c4dd PCB Tools: Move Individually
Allows moving a selection of components one by one.
2022-09-26 16:17:41 -04:00
Marek Roszko cfa26fb706 Fix footprint relative path resolution for idf/vrml export 2022-09-25 23:40:25 -04:00
Marek Roszko 707a598e5d Prevent a crash due to the 3d preview dummy board stealing setting ownership 2022-09-25 23:04:13 -04:00
Marek Roszko c50b4fb04f Add relative to footprint 3d model path resolution
Fixes https://gitlab.com/kicad/code/kicad/-/issues/2073
2022-09-25 22:56:16 -04:00
Marek Roszko 8e96751af2 Strip out and migrate 3d search paths in favor of env vars
This mainly stops reading/writing 3dresolver.cfg
We still keep some sillyness for kicad2step for now

Fixes https://gitlab.com/kicad/code/kicad/-/issues/9164
2022-09-25 21:29:52 -04:00
Jeff Young 16d5c43c14 Fix shadowed variable. 2022-09-25 22:04:56 +01:00
Jeff Young b4701593fb Restore parent group pointers on undo.
Fixes https://gitlab.com/kicad/code/kicad/issues/11914
2022-09-25 21:45:29 +01:00
Jeff Young 503385f52e Don't use FindNamedPad for net-tie logic. It only reutrns the *first*
pad of a given number.

Also improves other DRC logic to tighten up the net-tie rules now that
we know which pads are allowed to short with which other pads.

Also removes the "Overlapping pads" DRC violation now that we know
whether or not overlapping pads in a net-tie footprint constitute a
short.

Fixes https://gitlab.com/kicad/code/kicad/issues/12506
2022-09-25 17:38:31 +01:00
Marek Roszko 05a8650158 Add forgotten save of setting 2022-09-25 12:03:45 -04:00
Marek Roszko 2490ad1458 Fix search panel not remembering visibility
Fixes https://gitlab.com/kicad/code/kicad/-/issues/12494
2022-09-25 11:56:41 -04:00
Marek Roszko 59d62f7df1 Untangle some includes 2022-09-25 11:37:06 -04:00
Ian McInerney 40ff7cb9bd Fix some UI element spacing in settings panels 2022-09-25 15:41:39 +01:00
Ian McInerney ea259fd093 Remove extra creation of an outline for the soldermask zone
The zone class initializes the outline with an empty SHAPE_POLY_SET, so
adding a new SHAPE_POLY_SET outline in the BOARD constructor causes a
leak of the original.
2022-09-25 15:41:39 +01:00
Marek Roszko a381a0acb2 Generalize bookmarks to support additional groups and names 2022-09-24 22:35:20 -04:00
Marek Roszko 6f8205235f ADDED: Add outline support to schematic PDF and PCB plot 2022-09-24 21:45:48 -04:00
Ian McInerney 1683e552f7 Add/fix some variable initializations 2022-09-25 00:48:38 +01:00
Jeff Young f6d0fb8eed Fix copy/paste error. 2022-09-24 20:00:01 +01:00
Jeff Young 7e71dc084c Implement Mirror H/V for tracks and vias.
While not that often useful, it's really annoying that it doesn't work
when you *do* find a use-case for it.

Fixes https://gitlab.com/kicad/code/kicad/issues/6853
2022-09-24 19:55:48 +01:00
Jeff Young 328cc27020 Add pad-recombining to FPEditor's Cleanup Graphics.
Fixes https://gitlab.com/kicad/code/kicad/issues/12487
2022-09-24 19:34:06 +01:00
Ian McInerney fdb97a46c1 Don't copy items in for loops when not needed 2022-09-24 03:46:06 +01:00
jean-pierre charras 28f836ab5c Fix overzealous string replacement 2022-09-23 10:56:58 +02:00
Alex 58b03b0a1c Small optimizations. 2022-09-22 17:22:04 +00:00
Jeff Young 897135a4f0 Support mirroring on the board too.
Also fixes a few bugs in FP item mirroring.

Fixes https://gitlab.com/kicad/code/kicad/issues/2168
2022-09-22 15:05:58 +01:00
Alex f75266d130 Keep selection order in SCH->PCB cross-selection. 2022-09-22 11:43:37 +00:00
Jeff Young 839d31d427 Only update properties from a "real" project.
Fixes https://gitlab.com/kicad/code/kicad/issues/6268
2022-09-22 10:14:08 +01:00
jean-pierre charras c44e54756a search panel: fix a crash and a refresh issue after selecting a second item
at least on W10/msys2
2022-09-21 19:36:35 +02:00
Jeff Young 8eb68ee472 Add pin/unpin context menu to Symbol Chooser and Footprint Chooser.
Also moves some more code down into common so it can be shared.

Fixes https://gitlab.com/kicad/code/kicad/issues/12384
2022-09-21 14:45:12 +01:00
jean-pierre charras 25f1f7b0df Fix a compil issue on GCC 2022-09-21 09:04:31 +02:00
Marek Roszko 5af00486c3 Set a default floating size for the search pane
aui panes unforunately get a default of 0,0 and no attempts to detect a size
2022-09-21 00:06:45 -04:00
Marek Roszko ec25463fed Allow multi-selecting from the search pane
Fix https://gitlab.com/kicad/code/kicad/-/issues/12476
2022-09-20 23:58:49 -04:00
Marek Roszko dc9909f83f Show all on empty searches
Fixes https://gitlab.com/kicad/code/kicad/-/issues/12478
2022-09-20 23:44:42 -04:00
Marek Roszko 30dbcbbcf5 Only search the current tab on events 2022-09-20 23:38:06 -04:00
Marek Roszko 1b962a1660 Expand zone info a little
Fixes https://gitlab.com/kicad/code/kicad/-/issues/12479
2022-09-20 22:16:50 -04:00
Marek Roszko 35201eac52 Add textboxes to Text tab of search
Fixes https://gitlab.com/kicad/code/kicad/-/issues/12477
2022-09-20 22:16:50 -04:00
Jon Evans 728ef8a61c Hide properties panel menu entry if flag isn't set 2022-09-20 21:48:38 -04:00
Jeff Young 513fc872bb Support both X and Y mirroring in FPEditor.
Fixes https://gitlab.com/kicad/code/kicad/issues/12409
2022-09-21 00:16:27 +01:00
Seth Hillbrand 0150655ed3 Fix missing DRC check with via
When the via is first and not second in our ordering, the hole-copper
clearance was not checked as the track did not have a hole.

We also calculated the NPTH-via clearance incorrectly in the inspector
2022-09-20 13:43:01 -07:00
Jeff Young 7f34586c7e Allow text variable resolution through properties in drawing sheet text.
Fixes https://gitlab.com/kicad/code/kicad/issues/12473
2022-09-20 15:28:05 +01:00
Jeff Young cf1a411a19 Allow net to be selected with mixed track & via selection.
Fixes https://gitlab.com/kicad/code/kicad/issues/12412
2022-09-20 11:37:13 +01:00
Seth Hillbrand 9b4eb91f12 Zone Fill performance enhancement
Don't wait until all zones are filled before tesselating fills.
Tesselation happens on a layer-by-layer basis, so once the zones' layers
are filled, we can tesselate them in parallel with the remaining fill
work
2022-09-19 11:53:50 -07:00
Seth Hillbrand 0295090135 Zone Fill performance for overlapping zones
When multiple zones overlap each other, we need to synchronize the
filling.  This should not wait for all zones to try to fill before
restarting.  Instead, zones that cannot be filled because the depend on
another zone finishing are immediately re-inserted into the fill queue.
2022-09-19 10:11:06 -07:00
Jeff Young 64a6fc0fd4 Push UNITS_PROVIDER down into a low-level mixin.
This allows us to also construct cheap UNIT_PROVIDERs for specific
tasks when necessary.
2022-09-19 17:10:59 +01:00
jean-pierre charras 5990595619 When adding a bitmap, do not clone it during moving.
Cloning is not necessary, and is memory consuming.
2022-09-19 17:41:47 +02:00
Mike Williams ca0c9f12e0 PCB Editor: Unroute Footprint
Also works on selected pads.

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/1955
2022-09-19 10:37:10 -04:00
Mike Williams 9304607624 TOOL_EVENT: make command string non-optional
We're getting segfaults in places where this isn't checked. Also, add
some asserts so we can catch bad tool push/pop.

Removes all uses of GetCommandStr() and makes it private.
2022-09-19 10:23:09 -04:00
Jeff Young 45d6b4a9fc Readability improvements. 2022-09-19 11:18:20 +01:00
Jeff Young 1566bd8b14 Make sure a collector has a guide before handing it to a client filter.
Fixes https://gitlab.com/kicad/code/kicad/issues/12460
2022-09-18 18:14:47 +01:00
Marek Roszko 57f8a248a5 Remove unused settings 2022-09-17 18:03:43 -04:00
jean-pierre charras 97963a2bba Better after base_units.cpp changes in python stuff.
Move an include to kicad.i
2022-09-17 11:21:48 +02:00
jean-pierre charras 71bb7d63d9 Fix isses after base_units.cpp changes. 2022-09-17 10:56:56 +02:00
Marek Roszko ece23d434b Split up Double2Str to a format function to make its use case clear 2022-09-17 00:10:22 -04:00
Marek Roszko 1e0eca0916 Eyeball swig fix after the units changes 2022-09-16 22:31:52 -04:00
Marek Roszko 3d5913c825 Remove convert_to_biu.h, merge contents to base_units.h 2022-09-16 21:09:28 -04:00
Marek Roszko 66e8931405 Remove IU_PER_MM thats standalone 2022-09-16 21:09:27 -04:00
Marek Roszko 7a5829f8d6 Move IU2Mils 2022-09-16 21:09:27 -04:00
Marek Roszko 61e11d6896 Strip out Mils2Iu 2022-09-16 21:09:27 -04:00
Marek Roszko e6ed275c25 Repoint IU_PER_MILS 2022-09-16 21:09:26 -04:00
Marek Roszko 33f8161799 Merge in MM_PER_IU to EDA_IU_SCALE 2022-09-16 21:09:26 -04:00
Marek Roszko a8613ee80f Combine Iu2Millimeter & remove PcbMm2iu 2022-09-16 21:09:26 -04:00
Seth Hillbrand 8e361e8a15 Be more diligent about checking for zone file deps
The outline collision is relatively cheap (especially after filtering
bbox collisions) so check if a zone REALLY depends on another zone
before making it wait.  Waiting for zones can really increase the total
fill time
2022-09-16 17:23:06 -07:00
Seth Hillbrand 524b129c64 ADDED: Support for explicit DNP field
Dims elements shown as DNP.  Adds property `dnp` to explicitly denote
parts that should not be populated. These parts are not included in X/Y
files
2022-09-16 22:26:16 +00:00
Jeff Young 107f409106 Use router's connectivity algorithm, not CONNECTIVITY_DATA's.
Fixes https://gitlab.com/kicad/code/kicad/issues/10745
2022-09-16 22:49:20 +01:00
Jeff Young f10fdfc7d7 More delay for netname drawing, and don't run through tracks if it's off. 2022-09-16 22:19:56 +01:00
Jeff Young 90bc5c19cf Performance enhancement for zone filling. 2022-09-16 19:16:15 +01:00
Jeff Young cf1565a16a Bug fixes for layer expression processing.
1) Push a VAR onto the stack, not a resolved value
2) Don't collapse a PCB_LAYER_VALUE to a VALUE during processing
3) Make sure we run overloaded operators from the correct side

Fixes https://gitlab.com/kicad/code/kicad/issues/12437
2022-09-16 14:14:43 +01:00
Jeff Young d9f75556bd Fix old copy/paste error (from 2017, believe it or not).
Fixes https://gitlab.com/kicad/code/kicad/issues/11487
2022-09-16 11:25:27 +01:00
Mark Roszko b00178adb3 Nuke base_units from orbit 2022-09-16 04:38:10 +00:00
Jeff Young aa0863cdf4 Don't mirror text on non-physical layers when in flip board view.
Fixes https://gitlab.com/kicad/code/kicad/issues/10037
2022-09-16 00:46:14 +01:00
Jeff Young ce9adeaf51 Don't set FreeVia when we can't find a net.
Fixes https://gitlab.com/kicad/code/kicad/issues/12421
2022-09-15 23:16:08 +01:00
Jeff Young 19d8dcad8b Don't hang when filling degenerate zones. 2022-09-15 23:16:08 +01:00
Jeff Young a21d24a4c8 Experiment with loading recent searches into the search menu.
Fixes https://gitlab.com/kicad/code/kicad/issues/11743
2022-09-15 14:44:02 +01:00
jean-pierre charras 83fb06ff75 Fix compil and Coverity warnings. 2022-09-15 10:50:14 +02:00
Jon Evans da9be1a812 ADDED: Multi-selection cut/copy/paste in symbol editor library tree
Fixes https://gitlab.com/kicad/code/kicad/-/issues/11505
2022-09-14 22:20:38 -04:00
Marek Roszko 125ea73adf Avoid refreshing the search when the panel isn't open 2022-09-14 21:02:00 -04:00
Jeff Young 12ee8b5d7c Improve DRC cross-probing a bit. 2022-09-15 00:45:29 +01:00
lulu731 0180bcf90a ADDED: Implement Drag and Drop
dropping files to Kicad manager :
  *.kicad_pro, *.pro -> open project;
  gerber and job files -> open in Gerbview editor;
  Eagle and Cadstar files -> open project.
dropping file to schematic editor -> append schematic;
dropping library file to Symbol editor -> add library;
dropping board file to PCB editor -> append board;
dropping library or footprint file to Footprint editor -> add library or import footprint;
dropping ZIP file or gerber files to Gerbview editor -> open files;
dropping sheet file to Drawing Sheet editor -> open sheet.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/11638
2022-09-14 22:28:09 +00:00
Seth Hillbrand 78acb4f07f Fix unintentional typo 2022-09-14 15:14:35 -07:00
Seth Hillbrand 26a1114e3c Avoid Yields when the results are ready
We always need to check for calculation results before yielding the
system otherwise we will delay outcomes

Fixes https://gitlab.com/kicad/code/kicad/issues/12228
2022-09-14 13:30:04 -07:00
dsa-t bd8b737c44 GAL: Do better job at reserving vertices. 2022-09-14 16:07:47 +00:00
jean-pierre charras 397a93029e Fix some outdated things (mainly about fix_swig_imports.py, useless with swig version 4)
Fixes #12414
https://gitlab.com/kicad/code/kicad/issues/12414
2022-09-14 13:36:43 +02:00
Jeff Young 2d3b8d6393 Fix logic around Select All inside an entered group.
Fixes https://gitlab.com/kicad/code/kicad/issues/12411
2022-09-14 12:24:51 +01:00
Jeff Young 281b9d405a ADDED ability to specify where pad number (& net name) go on custom shaped pads.
Fixes https://gitlab.com/kicad/code/kicad/issues/6627
2022-09-14 11:37:20 +01:00
Jeff Young ecd99633d8 Allow AppendBoard even in project mode. 2022-09-14 11:37:20 +01:00
Jeff Young f91487aa36 Don't overwrite titleblock and pageinfo when appending board.
Fixes https://gitlab.com/kicad/code/kicad/issues/11650
2022-09-14 11:37:20 +01:00
Mark Roszko f304e2d4f6 ADDED: Search/inspect pane 2022-09-14 02:59:57 +00:00
Mike Williams 1a023f5dd0 PCB Editor: (Auto)Route Selected (From Other End)
3x Selection-Based Routing Tools. Takes a selection of routable objects
and routes them one at a time individually, with an attempted finish, or
from the other end, depending on the action given.
2022-09-13 15:06:36 +00:00
Mike Williams dc20e24c4a Route Other End: Perform Steps in one Undo Commit 2022-09-13 15:06:36 +00:00
Mike Williams 82f8cd72a3 PNS Router IFACE: Add board commit mode control 2022-09-13 15:06:36 +00:00
Jeff Young 0a5ca5b485 Display crosshairs in picker tools.
Fixes https://gitlab.com/kicad/code/kicad/issues/10183
2022-09-13 01:40:43 +01:00
Jeff Young 8ae0ddf09d Move import graphics dialog to UNIT_BINDER.
Also fixes a bug where the position gets scaled (because we're
applying it to the imported values, which are automatically scaled).

Fixes https://gitlab.com/kicad/code/kicad/issues/10483
2022-09-13 00:59:56 +01:00
Jeff Young c2643f53cf Tighter control over lambda capture. 2022-09-12 20:51:15 +01:00
Jeff Young eaccd40c75 Allow vias to connect <no net> tracks even when DRC checking is on.
Fixes https://gitlab.com/kicad/code/kicad/issues/12403
2022-09-12 20:38:21 +01:00
Wayne Stambaugh 4f3db82c68 Add debugging support for KiCad2Step command line generation. 2022-09-12 14:30:07 -04:00
Mike Williams 37d2addf0e Icons: add swap 2022-09-12 11:11:49 -04:00
Mike Williams f70e1d0f22 SCH/PCB: Set Swap hotkey to 'S'
* Move Add Sheet to Shift+S in Schematic Editor
* Move Set Grid Origin to Shift+S in PCB Editor
2022-09-12 11:11:49 -04:00
Mike Williams de6e368ac6 PCB: Swap Tool 2022-09-12 09:39:43 -04:00
jean-pierre charras d1af8e7a4b Fix broken bool PCB_SHAPE::IsType() 2022-09-12 12:38:45 +02:00
Jeff Young 57f9d6cb3d ADDED text variables for pad NET_NAME, NET_CLASS and PIN_NAME.
Fixes https://gitlab.com/kicad/code/kicad/issues/6405
2022-09-12 00:55:57 +01:00
Jeff Young 95874aeeb4 Allow multi-layer plotting from python.
Fixes https://gitlab.com/kicad/code/kicad/issues/12314
2022-09-11 23:37:13 +01:00
Jeff Young 0df1786456 Improve adherecne to ignored tests. 2022-09-11 19:48:08 +01:00
Jeff Young c16a640477 Improve marker counting and reporting. 2022-09-11 19:48:08 +01:00
Alex cc4e34ef49 Don't sync the world twice in inline router tools.
Activate() already clears and syncs the world via PNS::TOOL_BASE::Reset,
so there's no need to sync in InlineDrag and InlineBreakTrack.
2022-09-10 20:49:30 +00:00
Jeff Young 5d468ca759 Use MESSAGE_TYPE::OUTDATED_SAVE for read-only infobar messages as well.
Fixes https://gitlab.com/kicad/code/kicad/issues/12252
2022-09-10 21:27:10 +01:00
Jeff Young b95d9d660d Move gerbview colors to preferences dialog. 2022-09-10 16:11:24 +01:00
Jeff Young bd919e57bd Exclude deprecated layers. 2022-09-10 10:44:40 +01:00
Jeff Young f87bf3c46d Special case up-key so it can get past headers in paged dialogs.
Fixes https://gitlab.com/kicad/code/kicad/issues/10078
2022-09-10 09:31:27 +01:00
Jeff Young 9cf3c529d3 Apply the same accuracy band to connectivity as we use for hittesting.
Fixes https://gitlab.com/kicad/code/kicad/issues/10745
2022-09-09 21:42:21 +01:00
Bobbe 93670d2b24 Improve support for .wrz files in vrml exporter, Fix error handling 2022-09-09 20:13:50 +00:00
Jeff Young 5b3bd9be83 Prune pasted data of non-enabled layers.
Fixes https://gitlab.com/kicad/code/kicad/issues/11997
2022-09-09 21:02:08 +01:00
Jeff Young f179754118 Implement add-new-on-return for some of our grids.
Fixes https://gitlab.com/kicad/code/kicad/issues/12335
2022-09-09 13:41:13 +01:00
Jeff Young 98e760da93 Coverity-suggested improvements. 2022-09-09 13:41:13 +01:00
Jeff Young ca14697ad6 Fix issue trying to size stuff before it's displayed.
Fixes https://gitlab.com/kicad/code/kicad/issues/12386
2022-09-08 23:51:05 +01:00
Jeff Young 2743fd583f More improvements to drag tool selection disambiguation.
Fixes https://gitlab.com/kicad/code/kicad/issues/10745
2022-09-08 23:43:07 +01:00
aris-kimi 4efa13a3e3 Change Loss Tg to Loss Tan.
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/10699
2022-09-08 16:17:32 +00:00
Jeff Young a619ef9d53 Improve drop-a-knee-selection-to-a-single-segment algorithm.
In particular, don't rely on there being only two items in the
collector at the start.

Fixes https://gitlab.com/kicad/code/kicad/issues/10745
2022-09-08 14:10:18 +01:00
Jeff Young 9523586bf1 Remove atrophied PCB NO_CONNECTS layer and its colour.
Fixes https://gitlab.com/kicad/code/kicad/issues/12316
2022-09-08 00:28:31 +01:00
jean-pierre charras 6b3d36b6c3 CONVERT_TOOL: also show the "Create From Selection" menu if a array can be created
The "Create Array" sub-menu was recently moved to this menu, so it must me
shown as soon as an array can be created.
2022-09-07 10:53:27 +02:00
Alex d67c81a657 When deselecting items, pick only selected ones.
Fixes https://gitlab.com/kicad/code/kicad/issues/10292
2022-09-06 19:44:29 +00:00
Mike Williams fa3e9efdce PCB Router: return to original active layer after routing
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/12313
2022-09-06 10:51:46 -04:00
Mike Williams 68f71e4a62 PCB Router: Pressing V again can untoggle Via
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/12315
2022-09-06 10:51:46 -04:00
jean-pierre charras 565b815250 3D models list in footprint properties: fix issue when a lot of 3D models is added
Fixes #10014
https://gitlab.com/kicad/code/kicad/issues/10014
2022-09-06 16:28:46 +02:00
Jeff Young 8afc1db7a6 Property popups for symbols, labels, sheets, and footprints in PDF.
Fixes https://gitlab.com/kicad/code/kicad/issues/5521
2022-09-06 13:59:52 +01:00
Jeff Young 7c83c78afe Allow free pad usage in router.
Fixes https://gitlab.com/kicad/code/kicad/issues/11730
2022-09-06 13:59:52 +01:00
Jeff Young 3534cfbba8 Allow a single net collision with a free pad. 2022-09-06 13:59:52 +01:00
Jeff Young 16b4f96405 Centralize no-connect- and free-pad processing.
Also makes the track-net-names less squirrelly around the viewport
edges.
2022-09-06 13:59:52 +01:00
Jon Evans e294fe2074 ADDED: Dynamic field columns in symbol chooser
CHANGED: Symbol chooser search now considers custom symbol fields

Visible columns can be controlled in database libraries.
In standard KiCad libraries, we show columns for all custom fields for now.

Customizable column visibility will be added in the future.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/11946
2022-09-05 16:38:14 -04:00
jean-pierre charras 963a17f5b5 fix a compil warning 2022-09-05 18:33:17 +02:00
Jeff Young 156755e9db Allow processing of non-handled events in length tuner tool.
Fixes https://gitlab.com/kicad/code/kicad/issues/11425
2022-09-05 10:57:07 +01:00
Jeff Young c0ba1b35bf Remove SMD pad side sanity check. 2022-09-05 10:41:37 +01:00
Jeff Young 895a8a8dbc Work around focus issues for status popups.
Autoscroll wasn't working on Mac because the status popup's panel
has the focus.  This *may* also fix a problem on MSW of the auto-scroll
not being cancel-able.

Fixes https://gitlab.com/kicad/code/kicad/issues/11425
2022-09-04 21:08:01 +01:00
Jeff Young 9405817a4d Improve contrast of status popup text on Mac.
Also works around an issue where GetBackgroundColor() returns black
(with a 40% alpha) on Mac.
2022-09-04 21:08:01 +01:00
Jeff Young d5cf7828fa ADDED footprint checks for SMD pad consistency.
Fixes https://gitlab.com/kicad/code/kicad/issues/11736
2022-09-04 10:34:32 +01:00
Roberto Fernandez Bautista 2d203bc975 Don't move items inside a group: move the whole group instead 2022-09-04 00:59:57 +02:00
Roberto Fernandez Bautista fa5dc23797 CADSTAR PCB: Fix regression when loading pads in footprints
Zero sized pads can be valid - e.g. a through hole pad
2022-09-04 00:59:57 +02:00
Roberto Fernandez Bautista 9abf3438b8 CADSTAR PCB: Invert logic for guessing which layer is top / bottom
Ensures correct automatic layer mapping is applied to the design in
https://gitlab.com/kicad/code/kicad/-/issues/12349
2022-09-04 00:59:57 +02:00
Roberto Fernandez Bautista c961624d43 CADSTAR PCB: Load 2-point polygons as line segments
Fixes asserts when loading design from https://gitlab.com/kicad/code/kicad/-/issues/12349
2022-09-04 00:59:57 +02:00
Roberto Fernandez Bautista 21b3753e9b CADSTAR PCB: Parse Teardrops
Todo: We need to figure out how we will load teardrops. For now
just drop them on import.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/12349
2022-09-04 00:59:56 +02:00
Jeff Young efae2bbb4c Better feedback for netclass assignment patterns. 2022-09-03 21:33:56 +01:00
Jeff Young c30a557810 ADDED netclass assignment from PCB canvas.
Fixes https://gitlab.com/kicad/code/kicad/issues/5975
2022-09-03 19:29:59 +01:00
jean-pierre charras b791fff963 DIALOG_UNUSED_PAD_LAYERS: minor enhancement: pads and vias can be handled all at once 2022-09-03 10:41:14 +02:00
Roberto Fernandez Bautista c15a13963b Fix Build error: AddLine doesn't exist anymore 2022-09-02 11:17:28 +02:00
Roberto Fernandez Bautista 22f96bfd11 Re-route m_last_head after routing fails
This should ensure the shove state gets reverted

Fixes https://gitlab.com/kicad/code/kicad/-/issues/9023
2022-09-02 09:41:15 +02:00
Jeff Young 854acd4c77 Null-ptr safety for diff-pair-coupling test.
Fixes https://gitlab.com/kicad/code/kicad/issues/12329
2022-09-02 00:49:33 +01:00
Jeff Young 09773e3e2e Make sure dirty flag gets set, and leave save enabled regardless.
Fixes https://gitlab.com/kicad/code/kicad/issues/11824
2022-09-01 14:27:16 +01:00
Jeff Young 9188838e50 RIP EDA_RECT. 2022-08-31 23:57:24 +01:00
Jeff Young b4492e0bd2 More EDA_RECE yeetage. 2022-08-31 17:19:50 +01:00
Jeff Young ebe9617e77 More EDA_RECT expungification, and an attempt to fix the python test. 2022-08-31 17:19:48 +01:00
Jeff Young f17a865593 Move EDA_ITEM hitTest to BOX2I. 2022-08-31 17:18:45 +01:00
Jeff Young 2dc6300501 Move EDA_ITEM bounding boxes to BOX2I. 2022-08-31 10:16:55 +01:00
Jeff Young 5679b9dbdc Remove a few EDA_RECT instances. 2022-08-31 01:22:49 +01:00
Jeff Young c7036ae076 Beef up BOX2's API so it can replace EDA_RECT. 2022-08-31 00:44:33 +01:00
Jeff Young 0c8787cbb9 Some more wxPoint/EDA_RECT yeeting. 2022-08-31 00:44:33 +01:00
Seth Hillbrand b736460e71 Move optional access from value() to *operator
`value()` throws.  Where we check for existence, we don't need to use
the throwing version and should just use the unprotected variant
2022-08-30 13:59:39 -07:00
Mike Williams a176bf383e Properties: pick up single selections
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/12302
2022-08-30 13:59:37 -04:00
Seth Hillbrand 91fbb5c957 Don't prevent immediate actions while router active
Immediate actions that can take place are useful.  We should only be
preventing immediate actions while actively routing or dragging

Fixes https://gitlab.com/kicad/code/kicad/issues/12311
2022-08-30 10:31:29 -07:00
Jeff Young 63386ba64d Pointer safety for ERC/DRC dialogs.
Also makes the "Edit ingored violations" easier to find.

Fixes https://gitlab.com/kicad/code/kicad/issues/12308
2022-08-30 12:07:19 +01:00
Marek Roszko 03aa63bd50 Move 5 helpers to EDA_UNIT_UTILS since they aren't iu specific 2022-08-29 20:11:03 -04:00
Roberto Fernandez Bautista 238c21ed0b Properties: Special case PCB_SHAPE "Layer" property
Fixes https://gitlab.com/kicad/code/kicad/-/issues/12304
2022-08-29 23:13:46 +02:00
Stefan Hamminga 2ff6a6aee1 Implement and enable option to not shove vias during push & shove routing 2022-08-29 17:32:39 +00:00
Jeff Young 2d68cdff94 Better reporting of hole-to-hole clearances and clearance resolutions. 2022-08-29 17:37:49 +01:00
Jeff Young e0f6a6e475 Run hole-to-hole checks on Edge_Cuts layer.
Also makes the flashing logic inside PAD::GetEffectiveShape() easier
to understand.

Fixes https://gitlab.com/kicad/code/kicad/issues/12296
2022-08-29 17:37:49 +01:00
Marek Roszko f0956e48f2 Make EDA_TEXT common
Since EDA_TEXT is a base class, we can just force the child classes to pass the correct iu scaled size

ALLOW_BOLD_THICKNESS removed because it's a pre-custom font holdover
2022-08-29 07:31:03 -04:00
Jeff Young 48f77973da Another try at getting the Link combobox working on MSW. 2022-08-28 23:25:01 +01:00
Jeff Young b886ec728e Copy shape data when converting PCB TEXTBOX to FP.
Fixes https://gitlab.com/kicad/code/kicad/issues/12298
2022-08-28 21:34:13 +01:00
Jeff Young 77c79b6f6a Apply searchArea architecture to courtyard functions. 2022-08-28 21:20:03 +01:00
Jeff Young 667a54ad86 Retire insideArea in favour of intersectsArea and enclosedByArea. 2022-08-28 18:02:41 +01:00
Jeff Young 122a6d7f46 Move hypertext linking to user-page-numbers.
Also moves most navigation code to SCH_NAVIGATION_TOOL.
Also changes page number href to anchor syntax ('#foo').
Also adds hypertext processing to SCH_TEXTBOXes.
Also adds combobox with schematic pages to text properties dialog.
2022-08-27 19:17:43 +01:00
Roberto Fernandez Bautista 840bcffefb ADDED: Hyperlinks on text items in Schematic Editor 2022-08-27 19:17:42 +01:00
Marek Roszko bf964d8678 Commonize page_info by simply making the Iu scale a parameter on call. 2022-08-27 13:36:00 -04:00
Roberto Fernandez Bautista 029cc65b34 EDA_SHAPE: Remove m_upsideDownCoords hack (Fixes hitTest routine) 2022-08-27 12:51:32 +01:00
jean-pierre charras 3b4c5f0dc4 French translation update 2022-08-27 09:10:02 +02:00
Jon Evans 300d92438c Allow hiding symbol library tables from symbol chooser
Hidden but loaded libraries are useful when using database libraries
2022-08-26 20:18:40 -04:00
Marek Roszko 161775fdbc Fix another type warning 2022-08-26 20:15:01 -04:00
Jeff Young 09511d176c Quiet Coverity. 2022-08-26 17:05:25 +01:00
Seth Hillbrand 146495672e Utilize our combine_hash routine for multiple hash
We should be using the one routine every time we want to build a hash
from indepedent values rather than rebuilding it differently in multiple
places
2022-08-26 08:45:13 -07:00
Seth Hillbrand 06786c34d7 Blacklist hashes for 2d integer elements
The hash table for integer hashes is extremely limited and places most
elements in the same buckets.  This leads to a linear search time for
structures built on this.

This blocks hashes, directing the coder to utilize std::set or std::map
structures instead of hash tables for implementing integer-based
lookups.
2022-08-26 08:43:37 -07:00
Jeff Young 1a672aba56 Fix a couple of DRC bugs where the bbox wasn't inflated for largestClearance.
Also removes a case of double-testing a pad with a non-plated hole.
2022-08-26 13:22:57 +01:00
Jeff Young 909358e643 Make sure pair caches are layer-specific where they need to be. 2022-08-26 13:22:57 +01:00
Jeff Young 86944c4f9f Marginal performance improvements. 2022-08-26 13:22:57 +01:00
Jeff Young f99761e5bd entirelyInsideArea() prototype. 2022-08-26 13:22:57 +01:00
Jeff Young 7baa56528a Make sure via-gap-same-as-trace-gap gets turned off for board settings.
Fixes https://gitlab.com/kicad/code/kicad/issues/12236
2022-08-26 13:22:57 +01:00
jean-pierre charras d351d0c839 BOARD_NETLIST_UPDATER: disable auto refill zones if new footprints are loaded and waiting for placement.
Auto refill creates a crash when these footprints are moved, probably due to a partial
connectivity rebuild due to refilling when the connectivity data is not yet finalized.
Fixes #11830
https://gitlab.com/kicad/code/kicad/issues/11830
2022-08-26 10:38:36 +02:00
Seth Hillbrand f1261e71d4 Replace boost::optional with std::optional 2022-08-25 15:50:47 -07:00
jean-pierre charras a306246558 Fix a few (minor) compil and Coverity warnings. 2022-08-25 20:21:00 +02:00
Seth Hillbrand fb74bdb059 Don't consider rule area zones in priority calc 2022-08-25 10:12:58 -07:00
Seth Hillbrand e661545ecf Choose the first unused priority value for zones
Default the new zone priority value to the lowest available unused
priority.  Ensures that, by default, a new zone has a unique priority
level preventing zones from unintenionally shorting
2022-08-25 10:05:30 -07:00
Seth Hillbrand ee95224517 Ensure that teardrops always get filled first
Teardrops are, by definition, higher priority than standard zones, so
ensure that they cannot be overriden
2022-08-25 08:54:34 -07:00
Seth Hillbrand 418df36790 Avoid teardrops in priority calculation
When choosing a new priority value, don't look at teardrops (which have
high priority)
2022-08-25 08:41:14 -07:00
Seth Hillbrand 3e4cfab254 Set new zone priority to unique number
Previously new zones' priorities were all set to 0.  This is almost
always wrong and can lead to unintended conflicts.  The new zone default
value is now set to one higher than the largest number on the board.
This is a better default value because it will not conflict with
existing values.
2022-08-24 16:37:57 -07:00
Jeff Young ae86c6f3a7 Don't include text in locked-item-shadow-calc for footprints.
And make shadow margins consistent for all objects.

Fixes https://gitlab.com/kicad/code/kicad/issues/11545
2022-08-24 10:30:20 +01:00
Marek Roszko fc99b3ba95 Don't link gdiplus everywhere anymore
Tested on msys2 which is the only place it would have been buggy
CMake seems to share the gdiplus linkage with the other dependencies automatically now
2022-08-23 23:51:35 -04:00
Marek Roszko e0f28fc4e1 Replace wxFindReplaceData with our own container
By dropping the flags, we can be strict with options.
Also it makes future usage of search functionality a little more "UI" framework independent
2022-08-23 22:16:51 -04:00
Jeff Young ec51955dad Remove vestiges of old pad locking system.
We now use a session preference (Allow free pads) in the board editor,
and we never supported pad locking in the footprint editor.
2022-08-23 18:02:16 +01:00
Seth Hillbrand e4bb1560c5 Set locale in python save routine
Fixes https://gitlab.com/kicad/code/kicad/issues/11006

(cherry picked from commit c3496d61eb)
2022-08-23 09:53:18 -07:00
Jeff Young 1871812f2b Consolidate on a more widely used sub-type architecture. 2022-08-23 12:57:55 +01:00
Marek Roszko 3e451ca516 Add RemoveAllListeners function for future addons 2022-08-22 23:29:04 -04:00
Jon Evans cfb6fcf31a Do not create panel if disabled 2022-08-22 21:32:33 -04:00
Roberto Fernandez Bautista 940a15c547 Todo: Properties system doesn't like const wxString& getters
Comment out for now
2022-08-22 21:32:33 -04:00
Roberto Fernandez Bautista 4108099641 Properties Panel: Correctly limit layers for connectable items to copper layers 2022-08-22 21:32:33 -04:00
Roberto Fernandez Bautista fe7e665236 Properties: NetName and NetClass should have a space + don't translate "Net" 2022-08-22 21:32:33 -04:00
Roberto Fernandez Bautista f5a75a4001 Minor nullptr fixes 2022-08-22 21:32:33 -04:00
Jon Evans f5597238fb Properties: add color swatch to layer enum 2022-08-22 21:32:33 -04:00
Jon Evans 3c6e8aea0f Properties panel: post-rebase fixes and hide by default
Remove layer widget re-added by Orson's rebase
2022-08-22 21:32:33 -04:00
Maciej Suminski af71d42307 Renamed PROPERTY_TYPE enum names to avoid a conflict on MSYS2 2022-08-22 21:32:32 -04:00
Maciej Suminski c37c429c75 Rename PROPERTY_PANEL::Update() to PROPERTY_PANEL::UpdateData()
The base class (wxPanel) already provides Update() method,
which should not be overridden.
2022-08-22 21:32:32 -04:00
Maciej Suminski 7f00efe6cf Properties: Fixed conditional properties using enum values in the conditions
When wxAny holds an enum, it cannot be compared with an integer due to a
missing conversion function. In such case, conditional properties
compare a raw value rather than wxAny.
2022-08-22 21:32:32 -04:00
Maciej Suminski f6f6ebd5f9 WIP: Properties GUI 2022-08-22 21:32:32 -04:00
Maciej Suminski 95fd58b25a Properties meta-data for pcbnew classes 2022-08-22 21:32:00 -04:00
Maciej Suminski 745c94b0a1 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
2022-08-22 21:32:00 -04:00
Jeff Young 1e68c353f1 Account for groups in undo of Position Relative To.
Also fixes a bug were pads weren't correctly being found for anchoring
the selection before the Position Relative To.

Fixes https://gitlab.com/kicad/code/kicad/issues/11793
2022-08-22 22:33:38 +01:00
Seth Hillbrand 4b63c7012d Silence some clang warnings 2022-08-22 12:54:00 -07:00
Alex 3a76d42630 Cross-probing/selection for multiple items (PCB -> SCH)
Fixes https://gitlab.com/kicad/code/kicad/issues/10469
2022-08-22 19:33:39 +00:00
Jeff Young f42b66bc1c Regularize ellipsization of menu and status text.
Fixes https://gitlab.com/kicad/code/kicad/issues/12257
2022-08-22 17:52:58 +01:00
Wayne Stambaugh c72457482c Fix Eagle plugin footprint QA test issue.
Apparently mapping Eagle footprint layers to the KiCad Dwg_User
that were previously mapped to UNDEFINED_LAYER breaks the QA test
and causes the footprint editor to crash when opening Eagle
footprints.  This means that the potential data loss issue when
loading Eagle footprints is still in play.
2022-08-22 09:11:30 -04:00
Jeff Young 792d7babe3 Performance (std::map -> std::unordered_map) and commenting. 2022-08-22 12:43:57 +01:00
Jeff Young 03454684fa Commenting. 2022-08-22 12:43:57 +01:00
Jeff Young 4f0136db3b Attempt to fix std::initializer_list lifetime issue. 2022-08-21 20:54:41 +01:00
Wayne Stambaugh 0bc1188897 Fix Eagle plugin board layer mapping issue.
The Eagle plugin layers have to be mapped differently depending on
whether a board is being imported or a footprint library is being
cached.  Footprint libraries can bypass the manual layer remapping
step that happens when importing a board.

Please note that when loading footprints in the footprint editor
and viewer, all layers that do not directly map to KiCad layers are
put on the Dwg_User layer so that there is data loss.  Users will
have to manually remap objects to the correct layer as required.
This is less than ideal but until the footprint library table parser
supports prompting users to remap unknown layers, it will have to do.

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/11839
2022-08-21 14:56:04 -04:00
Seth Hillbrand af34835fdf Restore removed data
Functions and definitions used in Python scripting should not be
removed.  Comments in header files should never be removed (only
updated/corrected)
2022-08-20 08:40:08 -07:00
Jeff Young eac3d33266 Keep Footprint Checker info between runs. 2022-08-20 12:28:34 +01:00
Jeff Young 28f7221cc3 Allow selection of Footprint Checker markers.
(And do a cross-probe to the Footprint Checker dialog.)
2022-08-20 11:30:25 +01:00
Jeff Young 8b0efa8ac4 A bit of cleanup from last commit. 2022-08-20 11:14:44 +01:00
Jeff Young aa2ad3b44c Move KICAD_T[] to std::initializer_list<KICAD_T>. 2022-08-20 10:28:11 +01:00
Jeff Young 46df421064 ADDED defined pad groups for net-tie footprints
Each pad group is allowed to short nets with other pads in its group.

Legacy footprints with the "net tie" keyword hack will get a single
group auto-created with all the footprint's pads in it.

DRC and the router now allow a track to collide with copper graphic items
while entering a net-tie pad as long as the closest point in the collision
is within the pad.

DRC (and the footprint checker) now check for copper items in the
footprint shorting pads which are not in the same pad group.

Fixes https://gitlab.com/kicad/code/kicad/issues/2265
2022-08-19 18:54:20 +01:00
Jeff Young 508df402f6 Cleanup. 2022-08-19 18:54:19 +01:00
jean-pierre charras a60053c800 selectAllItemsOnSheet(): fix a typo that prevent selection of items in root sheet. 2022-08-19 11:12:16 +02:00
jean-pierre charras e0fbe2542f Fix a few compil and Coverity warnings. 2022-08-19 10:53:29 +02:00
Marek Roszko 3a718385cf Just match the type to the comparison type on second thought 2022-08-18 22:22:04 -04:00
Marek Roszko 675938375b Use a larger data type for min_dist
Squared norms are massive and can logically exceed 32-bit ints
2022-08-18 22:19:36 -04:00
Seth Hillbrand b9461f2ba7 Re-enable tests for zones
Avoid invalid substantial checks triggered by signed floating point
zeros.  Adds a QA check to ensure zone-self checks are maintained
2022-08-18 17:06:29 -07:00
Seth Hillbrand 97d7ee1f30 Remove `/` from our forbidden LIB_ID list
It is still forbidden from footprint file names but that is handled
separately and it should not be forbidden in symbol files at all
2022-08-18 12:49:40 -07:00
Francois Berder 84745a6cdc Fix wrong number of columns check
Signed-off-by: Francois Berder <fberder@outlook.fr>
2022-08-18 11:03:45 +00:00
Marek Roszko 98b3904c51 Fix reserve call with the wrong source for size 2022-08-16 23:38:08 -04:00
Mike Williams f06e28b7a7 PCB: Finish Route, Route From End
Adds restart routing from other ratsnest' end and automatically finish
routing.

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/5051
2022-08-17 03:15:46 +00:00
Jeff Young 6cfbf895fc Make sure parent pos is factored in for polygons.
Fixes https://gitlab.com/kicad/code/kicad/issues/11945
2022-08-16 17:28:56 +01:00
Alex 371f6d917f Use VECTOR2I::extended_type instead of long, and int for numeric limits. 2022-08-16 12:08:55 +00:00
Alex 405be8d15f Bounds-awareness in Move, Rotate, point editor, drawing tool 2022-08-16 12:08:55 +00:00
Alex b81a3f0533 GetClampedCoords: Better usability for rounding 2022-08-16 12:08:55 +00:00
Alex 4d7d367b25 Use KiROUND for BBox calculation, change parameter name, block negative padding. 2022-08-16 12:08:55 +00:00
Jeff Young a3dc38cb32 Update schema versions so we can patch bad data from earlier bug.
Fixes https://gitlab.com/kicad/code/kicad/issues/12180
2022-08-15 23:48:38 +01:00
Seth Hillbrand 759e1a64ef Fix broken const ref in wildcard 2022-08-15 12:09:30 -07:00
Seth Hillbrand 35ac39844f Clean up some auto usage
Don't make new copies of shared_ptr if we can use references.  Keep auto
usage down to hard-to-type-out sequences
2022-08-15 11:29:45 -07:00
Jeff Young db91bcbabf Bump file format version for allow-soldermask-bridges-in-FPs. 2022-08-15 18:03:03 +01:00
Jeff Young 1f347582f8 Introduce new marker type so we can track DRC errors on the drawing sheet.
Fixes https://gitlab.com/kicad/code/kicad/issues/12221
2022-08-15 18:03:03 +01:00
Seth Hillbrand 4b3ac52b1d Fix shadowed variables 2022-08-15 08:03:30 -07:00
Seth Hillbrand 9828360759 Remove unused variable 2022-08-15 07:52:53 -07:00
Jon Evans 55bb374370 Fix crash when unloading board 2022-08-14 22:49:51 -04:00
Marek Roszko c418b25756 Centralize the parseDouble functions in the parsers and gcc specialcase 2022-08-14 18:46:19 -04:00
Jeff Young 959681e472 Config Paths help is now inside the dialog, so we don't need quasimodal here anymore. 2022-08-14 22:56:29 +01:00
Jeff Young 86938aa425 Read, write and process the board-wide Allow soldermask bridges in FPs. 2022-08-14 22:56:29 +01:00
Jeff Young a9536b5de9 CHANGED netclass assignments now done via canvas or via patterns. 2022-08-14 22:56:29 +01:00
Jeff Young 18ac169ac7 Add contexts to EDA_COMBINED_MATCHER. 2022-08-14 22:56:29 +01:00
Roberto Fernandez Bautista 6b349fdb0a CADSTAR PCB: Allow remapping all non-electrical layers
Fixes https://gitlab.com/kicad/code/kicad/-/issues/12196
2022-08-14 22:24:17 +01:00
Roberto Fernandez Bautista 69d696660b cadstar: Report warning that imported text may be different
Fixes https://gitlab.com/kicad/code/kicad/-/issues/12195
2022-08-14 22:24:16 +01:00
Marek Roszko a070959209 Switch from strtod to std::from_chars for performance 2022-08-14 16:19:24 +00:00
Seth Hillbrand 2ee65b2d83 Force removal of zero-sized pads on load.
Pads with zero width or height cause issues when rendering and
selecting.  KiCad has never allowed these elements but hasn't prevented
importing systems where they exist.  This prevents their import and
cleans existing designs where the pads are placed

Fixes https://gitlab.com/kicad/code/kicad/issues/12200
2022-08-13 19:10:48 -07:00
Seth Hillbrand 1ce8fc1614 Ensure arcs are handled in topology
Use the connection-independent `Anchor()` function to get connection
points for either arcs or segments in topology.  This allows the
ratsnest to be correctly drawn between nets with arcs

Fixes https://gitlab.com/kicad/code/kicad/issues/12205
2022-08-12 20:07:28 -07:00
jean-pierre charras 488a53e71b Fix a few minor Coverity warnings 2022-08-12 10:51:36 +02:00
jean-pierre charras 5616ef2e7c ZONE_FILLER::buildThermalSpokes() fix incorrect spoke shape for pad shapes with offset.
Fixes #12201
https://gitlab.com/kicad/code/kicad/issues/12201
2022-08-10 15:27:28 +02:00
Jeff Young d6cd55e133 ADDED esc-removes-net-highlight preference to PCBEditor.
Fixes https://gitlab.com/kicad/code/kicad/issues/8760
2022-08-09 08:46:12 +01:00
Marek Roszko f695ae5522 Generate const keyword_hash maps at compile time
Or else the map gets pointlessly recreated during footprint loading thousands of times
2022-08-09 00:56:49 -04:00
Jeff Young a11f48ef10 Markers provider is no longer responsible for all markers.
Unconnected items and schematic partity violations are also now
represented by markers, so the ERC/DRC window itself needs to do
the deep-delete.

Fixes https://gitlab.com/kicad/code/kicad/issues/12182
2022-08-08 22:02:20 +01:00
Jeff Young 73402d733e Add labels for icon buttons. (They're used by screen readers.)
Also fixes a bunch of annoying wxWidgets asserts.
2022-08-08 22:02:20 +01:00
Jeff Young 4423755176 Pretty up the Teardrops dialog.
Fixes https://gitlab.com/kicad/code/kicad/issues/12170
2022-08-07 23:22:21 +01:00
Jeff Young 015bde8cb0 Test pad:hole violations in footprints as long as not same pad number.
Fixes https://gitlab.com/kicad/code/kicad/issues/12124
2022-08-07 19:49:39 +01:00
jean-pierre charras 05785ac6b9 Teardrops: use default zone settings instead of last settings set by the zone dialog.
Fixes #12171
https://gitlab.com/kicad/code/kicad/issues/
Fixes #12172
2022-08-07 08:52:40 +02:00
Jeff Young 509d233d97 Fix knockout text bounding boxes and hit testing.
Fixes https://gitlab.com/kicad/code/kicad/issues/12133
2022-08-06 00:00:04 +01:00
Jeff Young 6a9b821b5c Fix order of initialization resulting in net assignment getting lost.
Fixes https://gitlab.com/kicad/code/kicad/issues/12168
2022-08-06 00:00:04 +01:00
jean-pierre charras ea914eac9a Pcbnew: fix regression: Display board info when clicking on a empty place.
Previously: the displayed info was "Selected Items 0".
2022-08-05 13:49:01 +02:00
Seth Hillbrand 129905686f Fix error in net list sorting 2022-08-04 10:27:01 -07:00
Seth Hillbrand 090e70ccd2 ADDED: Have Net Inspector report lengths per layer
When tuning high speed traces, you may need to extract data per layer
rather than just the summary as signal speed varies based on dielectric
and trace type
2022-08-03 16:35:58 -07:00
Jeff Young 96f01d33c8 Performance improvements.
1) Move a bunch of std::map's to std::unordered_map to get constant-time
look-ups
2) Lengthen progress-reporting intervals to spend more time doing work
and less time talking about it
3) Reverse order of SHAPE_LINE_CHAINs in thermal intersection checks to
make (much) better use of bbox caches
4) Don't re-generate bboxes we already have
5) Fix some autos that weren't by reference (and were therefore copying
large datasets)
6) Rename delta progressDelta so it's easier to search for in future
7) Get rid of a few more autos (because I don't like them)
8) Pass large items to lambdas by reference

Fixes https://gitlab.com/kicad/code/kicad/issues/12130
2022-08-03 11:59:42 +01:00
Seth Hillbrand 76b9e25143 Cleanup unused code 2022-08-02 08:33:59 -07:00
jean-pierre charras f0efa9af9d gen_footprints_placefile: re-add option to negate or not the X coordinate.
This option is for footprints on bottom side, and not for Gerber format.
This option was existing in 5.x version, but lost in 6.x version.
Fixes #4638
https://gitlab.com/kicad/code/kicad/issues/4638
2022-08-02 11:22:12 +02:00
Seth Hillbrand f5283c6133 Fix cherry-pick issue 2022-08-01 21:32:56 -07:00
Seth Hillbrand e4ca2408d4 Net Inspector: Handle via layers
Rather than measuring the total via height, measure from the entry to
exit track height to get a more accurate distance

(cherry picked from commit 57de5a6b65)
2022-08-01 20:25:27 -07:00
Seth Hillbrand e0b3f6c258 PNS: Handle via-in-pad distances when tuning
Tuning with a via in pad, the via isn't a part of the full line.  But we
still need to account for the line length distance of the
starting/ending vias.  To do this, we simply measure the height from
the ending track to the ending pad and starting track to starting pad

(cherry picked from commit 82e8e38054)
2022-08-01 20:25:17 -07:00
Jeff Young 9a4136de00 Implement annular ring checking for pads.
Fixes https://gitlab.com/kicad/code/kicad/issues/12109
2022-08-01 17:45:34 +01:00
Jeff Young f3936f24ae Go back to single-threaded sliver checker.
Something was unhappy with the multi-threaded version.
(Note that we still multi-thread the polygon-building, which is the
most expensive part.)
2022-08-01 17:45:34 +01:00
Seth Hillbrand 17fdb7c6a8 Prevent drag index from exceeding full line count
Simplification removes segments, so we might lose our valid index.
Ideally, we would simplify during the assembly or pass the input index
to the simplify routine to maintain the proper value.

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

(cherry picked from commit 6c617d84ca)
2022-08-01 08:58:28 -07:00
Seth Hillbrand 5207a8d8b4 Properly scope the island removal enum 2022-08-01 08:58:04 -07:00
Seth Hillbrand 9fbf9973be Remove obsolete IsKeepout and KeepoutAll functions
These are superceded by IsRuleArea and the individual keepouts
2022-08-01 08:05:09 -07:00
Jeff Young 7556d7152f Fix errant return and improve progress reporting. 2022-08-01 13:09:51 +01:00
Jeff Young 43df863df2 Fix issue with caches not being initialized when printing msg bar. 2022-08-01 13:09:51 +01:00
Jeff Young 0304ad4494 Move connection width testing to rule system.
Also copies connection width progress reporting architecture over to
the sliver checker.
2022-08-01 13:09:51 +01:00
Jeff Young 927bc8141b Init member variables. 2022-08-01 13:09:51 +01:00
Jeff Young f2f04b1d20 Better progress reporting for thermal connections. 2022-08-01 13:09:51 +01:00
Jeff Young b0a9cea6f6 Better progress reporting, and don't report necks that don't have items.
Since we aren't searching zones (they aren't in the m_CopperItemRTreeCache)
this will drop all errors that are zone-only (which are better handled by
zone-min-width).
2022-08-01 13:09:51 +01:00
Jeff Young 4bc7c16ce0 Don't auto-fill zones due to DRC marker insertion. 2022-08-01 13:09:51 +01:00
Jeff Young 54213bb7f1 Cleanup and move to DRC_ENGINE's status reporter.
1) brace formatting
2) get rid of some autos
3) get rid of a dyn_cast that CLion claims is bad
4) use DRC_ENGINE's status reporter
2022-08-01 13:09:51 +01:00
Jeff Young 661caf1de9 Make sure new zones are filled when auto-fill is on.
Also fixes some issues with enablement of the Remove Islands stuff.

Fixes https://gitlab.com/kicad/code/kicad/issues/12123
2022-08-01 13:09:51 +01:00
Jeff Young 6f49b57f9b Cleanup & performance enhancements. 2022-08-01 13:09:51 +01:00
Marek Roszko a8505d9c76 SEARCH_RESULT -> INSPECT_RESULT
To fix the name squatting it's doing for future functionality
2022-07-29 20:01:10 -04:00
Jeff Young f0b9e67212 Add ignore-line-widths mode to CONVERT_TOOL.
Fixes https://gitlab.com/kicad/code/kicad/issues/5911
2022-07-29 21:39:03 +01:00
Jeff Young 753f2f3e4c Display descriptions in second column of library trees.
Also fixes some bugs in how the columns are sized.

Fixes https://gitlab.com/kicad/code/kicad/issues/12090
2022-07-28 14:51:47 +01:00
Jeff Young fc1afa6298 Improvements to convert tool.
1) Handle filled shapes
2) If a chained outline can't be found, build hulls of the individual
segments
3) Combine intersecting shapes
4) Simplify code

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

Fixes https://gitlab.com/kicad/code/kicad/issues/5911
2022-07-27 18:57:45 +01:00
Jeff Young 2bf33321d1 Update constraint mode in status bar during move.
Fixes https://gitlab.com/kicad/code/kicad/issues/10465
2022-07-27 18:57:45 +01:00
jean-pierre charras aabc3b3cc6 FP editor: fix crash when duplicating a footprint.
Fixes #12098
https://gitlab.com/kicad/code/kicad/issues/12098
2022-07-27 19:08:27 +02:00
Jeff Young cb6a2552d9 Use the FPEditor's status bar messages for FPBrowser.
Fixes https://gitlab.com/kicad/code/kicad/issues/11404
2022-07-26 18:45:02 +01:00
jean-pierre charras 4d48376eae Fix some warnings detected by PVS-STUDIO (not used vars) 2022-07-26 16:00:14 +02:00
Jeff Young ee0f93ed17 Fix some issue with hierarchy panel on OSX.
Also moves the option toolbars tight to the canvas for all windows.

Fixes https://gitlab.com/kicad/code/kicad/issues/12087
2022-07-26 14:51:43 +01:00
Jeff Young 032708860b Include both text shapes and border shapes in textbox.
Fixes https://gitlab.com/kicad/code/kicad/issues/11806
2022-07-25 16:10:08 +01:00
Jeff Young e10158ff10 ADDED show pin names on footprint pads when assigning to symbol.
Fixes https://gitlab.com/kicad/code/kicad/issues/4576
2022-07-24 23:41:41 +01:00
Jeff Young 1bad72f14f Remove bad static_cast.
(m_settings isn't a PCBNEW_SETTINGS in non-PCB_EDIT_FRAMEs)
2022-07-24 23:41:41 +01:00
jean-pierre charras 82167a7c96 Avoid crashes when, for some reason, a dll cannot be loaded.
In this case a null pointer was returned by the internal code.
This pointer is now tested against nullptr to avoid the application crashing.
Fixes #12080
https://gitlab.com/kicad/code/kicad/issues/12080
2022-07-24 19:42:50 +02:00
jean-pierre charras 0604d7b813 Fix minor compil and Coverity warnings. 2022-07-24 09:33:43 +02:00
jean-pierre charras c16d0603c6 Add fix missing in my commit 8eee7667 2022-07-24 09:10:51 +02:00
Jeff Young fa679d3601 Pinned libs can also be found in program settings. 2022-07-23 20:17:04 +01:00
jean-pierre charras 8eee766791 Fix Cvpcb DISPLAY_FOOTPRINTS_FRAME: some display options not working. Commit 5e4a7041 moved 4 settings used in Cvpcb to a PCBNEW_SETTINGS struct. But in Cvpcb, this config struct does not exist. So these 4 settings are now moved to a section (PCB_VIEWERS_SETTINGS_BASE) common to Cvpcb and Pcbnew config. 2022-07-23 18:45:13 +02:00
Jeff Young f0ef6932b8 Fix issues with plotting textbox outlines.
Fixes https://gitlab.com/kicad/code/kicad/issues/11943
2022-07-23 13:53:03 +01:00
Jeff Young 280ff3ccdc Fix net highlight command enablement.
These always need to be enabled so that the current highlight can
be cleared.

Fixes https://gitlab.com/kicad/code/kicad/issues/12058
2022-07-23 12:42:11 +01:00
Jeff Young 9dd3bbf2cb Change highlight net hotkey default.
Fixes https://gitlab.com/kicad/code/kicad/issues/12051
2022-07-23 12:34:48 +01:00
Jeff Young bf5e649e44 Fix log errors in new solder masking checking code. 2022-07-23 09:26:04 +01:00
Jeff Young f41af10007 Clean up hole shapes for safety (smart pointer) and consistency. 2022-07-22 23:06:07 +01:00
Jeff Young a2c002e1da Improve solder mask aperture testing.
1) For solder mask apertures report both the aperture and both
exposed items.

2) Don't process solder mask apertures in footprints with the
"bridging allowed" flag set.

Fixes https://gitlab.com/kicad/code/kicad/issues/12064
2022-07-22 23:06:07 +01:00
Jeff Young 5442d284f4 Improve strings for highlight net commands. 2022-07-22 09:31:11 +01:00
Jeff Young def87c969e Redo the pinned-libraries storage architecture.
1) always use preferences directly
2) allow nicknames from either preferences or project
3) store-after-modify

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

Fixes https://gitlab.com/kicad/code/kicad/issues/11892
2022-07-22 09:31:10 +01:00
Jeff Young b80fd5329d Clear dimension pointer after committing.
Fixes https://gitlab.com/kicad/code/kicad/issues/11864
2022-07-22 09:31:09 +01:00
Jeff Young 004abcd370 Leave originally selected items selected after cancelled move.
Fixes https://gitlab.com/kicad/code/kicad/issues/12024
2022-07-22 09:31:08 +01:00
Marek Roszko b6b4ae959e Shuffle around the helper script folders 2022-07-21 19:04:08 -04:00
Seth Hillbrand 16e3d40552 ADDED: Display calculated clearance in status bar
In addition to showing resolved clearance, we also show the calculated
clearance in the same method as is used for DRC.  This will allow users
to better examine their system while working.

Fixes https://gitlab.com/kicad/code/kicad/issues/7934
2022-07-21 15:44:48 -07:00
Seth Hillbrand 9b74372f9d Minor spelling fix 2022-07-21 11:55:44 -07:00
Tomasz Wlostowski e558893851 router: use actual snap point position for routability checks of a segment instead of the segment endpoint(s).
Explanation:
- place a long segment A with something violating the rules close to its endpoint
- try to start routing in the 2/3 of the length of A (on the obstacle side)
- bummer - the router picks the nearest endpoint of A for the collision check (even though we don't care about this collision since we want to route far away from it)
2022-07-21 16:30:28 +02:00
Mike Williams f8b157a1fb PCB: Bitmaps should respect layer opacity and highlighting options
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/12045
2022-07-20 14:59:19 -04:00
Jeff Young 012d861aab Get rid of error-prone reverse logic.
Fixes https://gitlab.com/kicad/code/kicad/issues/12049
2022-07-20 17:24:12 +01:00
Jeff Young 6a9c6e8599 Hook up ID_GRID_SETTINGS for footprint viewers.
Fixes https://gitlab.com/kicad/code/kicad/issues/12030
2022-07-19 21:24:45 +01:00
Jeff Young 763c77eab8 DXF parameters are for DXF (only).
Fixes https://gitlab.com/kicad/code/kicad/issues/12021
2022-07-18 17:51:20 +01:00
jean-pierre charras 49bf717c0e fix minor compil warnings 2022-07-17 20:29:59 +02:00
Jeff Young 1ade5a8c72 Fix typo.
And clean up the code just a little to make it clearer.

Fixes https://gitlab.com/kicad/code/kicad/issues/12022
2022-07-17 17:04:04 +01:00
Jeff Young b727bfc16d Performance: avoid sqrt at all costs. 2022-07-16 18:42:32 +01:00
Jeff Young d0547cbde7 Don't allow 0 line-width for unfilled shapes.
Fixes https://gitlab.com/kicad/code/kicad/issues/12010
2022-07-16 16:26:05 +01:00
Jeff Young 2f00b4e170 Delete multiple rows if selected.
Fixes https://gitlab.com/kicad/code/kicad/issues/12013
2022-07-16 12:07:15 +01:00
Jeff Young aa9fe58abe Don't duplicate user-defined track widths, via sizes or DP dims...
... when appending to board.

Fixes https://gitlab.com/kicad/code/kicad/issues/12014
2022-07-15 20:52:08 +01:00
Seth Hillbrand c8a383a48e Get via font fill/color correct when highlighted
Fixes https://gitlab.com/kicad/code/kicad/issues/11802
2022-07-15 11:40:46 -07:00
Seth Hillbrand 595e5cb3f2 Add sort feature to pre-defined list
Board setup rows should be sortable when inserting new elements.  They
get sorted when saving, this keeps that representation while editing

Fixes https://gitlab.com/kicad/code/kicad/issues/12015
2022-07-15 11:16:15 -07:00
Jeff Young 2de10080cd Add edge and margin clearances to message panel. 2022-07-15 16:14:32 +01:00
jean-pierre charras 50bb7c93a1 Fix bug in commit 64e1720f 2022-07-15 17:03:05 +02:00
jean-pierre charras 64e1720f12 FP_SHAPE in pads: always specify fill mode for shapes that can be filled or not.
Fixes #12012
https://gitlab.com/kicad/code/kicad/issues/12012
2022-07-15 16:50:38 +02:00