Commit Graph

14863 Commits

Author SHA1 Message Date
Jon Evans d403e92315 Properties: introduce method chaining for initialization
(cherry picked from commit 254168c788)
2023-02-14 21:10:42 -05:00
Jon Evans d20f49b58b Fix handling of PPI when loading embedded images
Fixes https://gitlab.com/kicad/code/kicad/-/issues/13884


(cherry picked from commit 473979d686)
2023-02-15 00:42:30 +00:00
Wayne Stambaugh 0f7fbc411a Allow plotting of multiple board layers per plot in Python.
Since the always plot the edge cuts layer  option was deprecate,
the ability to plot multiple board layers was exposed through the
PLOT_CONTROLLER object.

Added the interactive plot information which was overlooked during
version 7 development.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/13841

(cherry picked from commit eb83f76bff)
2023-02-14 09:53:16 -05:00
Seth Hillbrand f56fcb0a14 Better handling of vertex sorting
Nominally, the zcode of a vertex is unique.  This is not 100% true,
however, as we must interlace two 32-bit numbers into a single 32-bit
number.  Sorting needs to account for the possibility that the zcode
will be the same while other elements of the vertex are different.  This
commit fixes the broken boolean logic to more clearly handle these cases

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

(cherry picked from commit e7fe69b97f)
2023-02-13 11:23:14 -08:00
Jeff Young 7816652078 Account for border when calculating text margin for text boxes.
Also fixes some unnoticed issues with the textbox dialogs (probably
dating from the move to wxWidgets 3.2).

Fixes https://gitlab.com/kicad/code/kicad/issues/13877
2023-02-13 17:07:42 +00:00
Jeff Young 94963b5b3a Remove DRC exclusions that no longer have items.
Fixes https://gitlab.com/kicad/code/kicad/issues/13802

(cherry picked from commit 13391176ae)
2023-02-13 10:55:07 +00:00
Jon Evans 6948a0bebd Expose new netclass storage to SWIG
Fixes https://gitlab.com/kicad/code/kicad/-/issues/13337
2023-02-11 09:50:24 -05:00
Alex b5191c8c22 Fail-safety in spreadRectangles. 2023-02-11 16:42:27 +03:00
Jon Evans b888714ed5 Don't discard temporary item being placed if placement is rejected
Fixes https://gitlab.com/kicad/code/kicad/-/issues/13697
2023-02-11 08:40:33 -05:00
Jon Evans e066454c61 Zones: use metric defaults and limits instead of mixed units
Update testcases to reflect new defaults
2023-02-11 07:39:29 -05:00
Seth Hillbrand fda3feaf3f Revert "Add doc link to custom rules syntax help."
This reverts commit 7874735810.
2023-02-10 15:33:03 -08:00
Seth Hillbrand 90a388571e Fix copy-pasta
testing 'othervia' for dynamic_cast success needs to use `othervia`
rather than `via` which might still be null

Fixes Sentry issue KICAD-5K
2023-02-10 13:33:21 -08:00
Seth Hillbrand 6fb9d190ac Use the common subset of nets for local update
When adding new data, we may have differing sizes of the dynamic
ratsnest and our local copy, so ensure that we are only referencing
elements that exist in both
2023-02-10 12:50:29 -08:00
Alex 89429996da Fix a crash in rectpack2D when unable to pack footprints. 2023-02-10 22:45:07 +03:00
Seth Hillbrand f4825cdd8f Allow same-net, same-priority zone filling
When two zones with the same net and same priority overlap, they should
both be filled, matching the behavior of v6.  If you would like an
explicit override of one or the other, you need to set the zone priority
higher.  Relying on the UUID as a tie breaker is good for zones with
different nets but creates unexpected changes from v6 when applying it
to zones of the same net
2023-02-10 11:07:08 -08:00
Jon Evans e2353a2849 PANEL_BOARD_STACKUP: Ensure UI is re-linked to storage when importing
Fixes https://gitlab.com/kicad/code/kicad/-/issues/13835
2023-02-10 12:58:04 -05:00
jean-pierre charras 538ee12188 Pcb editor: fix crash when trying to activate the "place anchor" tool.
"place anchor" tool exists only in the Fp editor. However, the hotkey
to activate this tool was also active in the board editor. Now disabled.
2023-02-09 16:29:33 +01:00
Jon Evans 92a61b187f Properties: Hide zone fill type settings for now
Fixes https://gitlab.com/kicad/code/kicad/-/issues/13811
2023-02-08 21:56:15 -05:00
Alex b71fa91bc4 Don't write outside of overrides array on pad zone_layer_connections.
Use std::array to catch future errors in Debug.

Fixes https://gitlab.com/kicad/code/kicad/issues/13803
2023-02-08 01:32:52 +03:00
jean-pierre charras a493a2c822 kicad-cli, pcbnew pàlot: honor the color options when ploting pdf files
--black-and-white and -t were shown in help, but not handled
Fixes #13805
https://gitlab.com/kicad/code/kicad/issues/13805
2023-02-07 20:20:45 +01:00
jean-pierre charras 82d9176782 FOOTPRINT::Flip(): add missing PCB_BITMAP_T.
Fixes #13785
https://gitlab.com/kicad/code/kicad/issues/13785
2023-02-05 18:41:58 +01:00
Jeff Young f2f54fe926 Improve zone-layer-connections terminology and comments.
This makes it clearer that the overrides are not inverses of each
other -- one overrides the flashing state and the other overrides
the connection state (to other zones, not to everything).

Also fixes a bug where we were failing to check the force-no-connect
for pads.
2023-02-05 17:39:42 +00:00
Alex c122fd0e36 Remove unused cache_optionally_flashed_connections. 2023-02-05 17:39:42 +00:00
Alex f6fd85af85 CHANGED: Try to determine via/pad flashing state before filling zones.
If removing unused via annular ring option is enabled on a layer, then the via will have the ring if both:
- Via center is not inside a rule area with "Keep out copper fill" flag set
- Highest-priority zone the via hole intersects with has the same net

Pads will be flashed if:
- Pad center is not inside a rule area with "Keep out copper fill" flag set
- Highest-priority zone at the pad center has the same net

Fixes https://gitlab.com/kicad/code/kicad/issues/12964
2023-02-05 17:39:42 +00:00
Alex bf1a8f2582 router: Fix clamp in meander corner radius calculation.
Fixes https://gitlab.com/kicad/code/kicad/issues/13781
2023-02-05 07:22:38 +03:00
Jeff Young a59c1afa53 Fix two bugs in RTree polygon collions special case.
1) Special case doesn't work for polygons with holes
2) Fix special case to handle intersecting lines where neither end is
   in the polygon.

Note that only (1) is required for the bug below.  (2) was just
discovered while implementing (1).

Fixes https://gitlab.com/kicad/code/kicad/issues/13779
2023-02-04 13:46:40 +00:00
jean-pierre charras 6b5eeeb861 Preferences dialog: try to reduce its width, in non English languages.
Remove some useless spacers, and do not force some widgets to have a to
large size (by removing empty areas).
Work in progress: one panel is still too big.
2023-02-04 14:36:14 +01:00
Seth Hillbrand 887c740c2e Limit the number of potential netnames
Don't set text if outside of the clipbox.  Text is non-cached so will
get redrawn on zoom

Fixes https://gitlab.com/kicad/code/kicad/issues/13572
2023-02-04 11:17:09 +01:00
Jeff Young 8ecf64b6c5 Don't run DRC rules on non-existant layers.
Fixes https://gitlab.com/kicad/code/kicad/issues/13753
2023-02-03 15:08:31 +00:00
Jeff Young 235925d62c Clearer reporting of negative clearances. 2023-02-03 15:08:31 +00:00
Jeff Young 0d083d0230 AllCuMask() and AllTechMask() are static, they do NOT modify "this". 2023-02-03 15:08:31 +00:00
Seth Hillbrand b427ad80f6 Don't make unneeded copies of std::pairs 2023-02-03 15:28:53 +01:00
Seth Hillbrand dde336ee40 Split connectivity mutex locking
Internal routines have no need for locking the mutex they already own.
While external routines that want to recalculate the Ratsnest do need an
exclusive lock before being allowed access

Fixes https://gitlab.com/kicad/code/kicad/issues/13011
2023-02-03 15:26:19 +01:00
jean-pierre charras 8ce0a84ca7 Fix compatibility with older wxWidgets versions.
Fix also a compil warning
2023-02-03 08:24:38 +01:00
Wayne Stambaugh e20c86ad5e Minor dialog layout improvements. 2023-02-02 16:54:52 -05:00
Seth Hillbrand e60152e351 Fix island removal when copper->edge clearance is 0
Just testing a single point to find copper that is outside the board works
until the arc->segment conversion moves the board outline just enough to
have the filled copper slightly (few IU) outside of the converted outline.

Instead, we do an expensive check of comparing the size of the
intersection between the island and the island's intersection with the
board.  If the intersection is at least half as large as the original
island, we can say with certainty that the island is inside.  The margin
could be much smaller than half but this preserves the intent without
picking an arbitrary number that might be violated

Fixes https://gitlab.com/kicad/code/kicad/issues/13717
2023-02-02 19:19:26 +00:00
jean-pierre charras fcefb5f86d Re-allows selection of bitmaps not owned by a footprint.
It was broken by my commit f8051d95
Fixes #13747
https://gitlab.com/kicad/code/kicad/issues/13747
2023-02-02 18:09:37 +01:00
Jon Evans 200bf696af Fix importing of legacy netclasses
Fixes https://gitlab.com/kicad/code/kicad/-/issues/13746
2023-02-02 08:29:43 -05:00
jean-pierre charras 737318a24d struct ZONE_DESC: ensure ENUM_MAP<PCB_LAYER_ID> is initialized before use it.
ENUM_MAP<PCB_LAYER_ID> is tested initialized in some other XXX_DESC,
but not in ZONE_DESC
Fixes #13699
https://gitlab.com/kicad/code/kicad/issues/13699
2023-02-02 09:11:27 +01:00
Jon Evans 26b9d2f5ac DRC: Allow disabling DP constraints in specific areas
Fixes https://gitlab.com/kicad/code/kicad/-/issues/13743
2023-02-01 23:11:39 -05:00
Jeff Young 7874735810 Add doc link to custom rules syntax help.
Fixes https://gitlab.com/kicad/code/kicad/issues/13727
2023-02-01 23:40:53 +00:00
Alex 6543d23d9f router: Re-add electrical path lines drawing for length tuning. 2023-02-01 20:36:52 +03:00
Alex 7d6218acb4 Unify checkbox borders in Interactive Router Settings. 2023-02-01 07:46:42 +03:00
Alex 1c2345776e Remove unused variable. 2023-02-01 07:28:55 +03:00
Jon Evans 48e4005111 Fix diff pair router checking of min clearance
Fixes https://gitlab.com/kicad/code/kicad/-/issues/13720
2023-01-31 19:53:35 -05:00
Kliment 68eac74458 pcbnew: Fix strokeWidth truncation to integer mm in SVG polygons import
The polygon conversion algorithm mistakenly stored the stroke width of
filled polygons in an integer variable. As a result, all stroke widths
were rounded down to the next smaller integer mm size. This commit changes
the types in the relevant functions and variables from int to double.
2023-01-31 20:34:25 +00:00
Seth Hillbrand f34aa947d3 Allow on-outline zones to be considered inside
Also ensure that calculated areas for island removal are absolute.

The on-outline zone can happen when the clearance to the edge is
particularly small.

Fixes https://gitlab.com/kicad/code/kicad/issues/13717
2023-01-31 12:32:23 -08:00
jean-pierre charras f8051d954a Better handling of PCB_BITMAP items in a footprint.
- Ensure they can be erased in the FP editor
- Ensure they cannot be selected in the PCB editor (they are not show)
Fixes #13714
https://gitlab.com/kicad/code/kicad/issues/
2023-01-31 11:16:38 +01:00
Roberto Fernandez Bautista 44cfb1ea43 CADSTAR PCB: Don't create zero sized text items
Partially addresses https://gitlab.com/kicad/code/kicad/-/issues/13693
2023-01-30 19:56:22 +00:00
Roberto Fernandez Bautista 963e82ee7f CADSTAR PCB: Correctly handle anticlockwise arcs
Also add some qa tests for EDA_SHAPE::SetAngleAndEnd

Fixes https://gitlab.com/kicad/code/kicad/-/issues/13626
2023-01-30 19:56:22 +00:00
Jeff Young 50e9685490 Check for tented vias before expanding solder mask.
Fixes https://gitlab.com/kicad/code/kicad/issues/13705
2023-01-30 17:56:35 +00:00
Chris Morgan ce06171561 Convert additional sprintf to snprintf 2023-01-30 16:22:03 +00:00
Marek Roszko e928d72c3b Fix relative step file export
Forgot to set the project relative path, and the library search path

Fixes https://gitlab.com/kicad/code/kicad/-/issues/13696
2023-01-29 22:19:37 -05:00
vinsfortunato 5bdaf20af6 eagle: determine and use the minimum copper layer stackup count
Fixes: https://gitlab.com/kicad/code/kicad/issues/13484
2023-01-29 21:13:41 +00:00
Jon Evans 971abcfc1a Fix DP meander placer when tuning from an uncoupled section
Fixes https://gitlab.com/kicad/code/kicad/-/issues/12212
2023-01-28 22:25:46 -05:00
Wayne Stambaugh 68decdd4f2 Fix static event table derived object definitions. 2023-01-28 14:10:06 -05:00
Marek Roszko d4a5e2caad Fix crash when .kicad_pcb is renamed to .kicad_mod and load library attempted
Pick a random error message used elsewhere
2023-01-28 10:42:46 -05:00
Jon Evans d04cda35c5 Handle hidden attribute in fp-lib-table
Fixes https://gitlab.com/kicad/code/kicad/-/issues/13689
2023-01-28 09:23:25 -05:00
Jeff Young b1018e8eeb Relax no-zone-commands constraint on interactive placer tools.
These tools are initialized with an item (via/pad/microwave) so there's
no way to tell between during-placement and idle.  Besides, they don't
update the ratsnest so they probably won't fall afoul of the original bug
(https://gitlab.com/kicad/code/kicad/-/issues/12736).

Fixes https://gitlab.com/kicad/code/kicad/issues/13686
2023-01-28 10:42:24 +00:00
Marek Roszko 4d811ba975 Enable layer arg for fp export svg 2023-01-27 23:45:42 -05:00
Jon Evans b4994a7fa1 Locked shadows should not be on overlay
These are supposed to render under the component
and do not need to be pulled to the front for overlay.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/12486
2023-01-27 22:09:42 -05:00
Ian McInerney 51c8f2c119 Fix library sort order in library viewers
The lib table returns a properly sorted list of libraries already, which
we just iterate through. A std::set is a sorted collection, but uses a
different sorting function than the lib table, so appending to a
std::set breaks the initial sorting that was done already.

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/13530
2023-01-27 23:39:50 +00:00
Kliment f6dc48ead7 Pcbnew: Make "Substitute similarly named models" on by default in STEP export. 2023-01-27 23:32:23 +00:00
kliment a3e3231605 Pcbnew: Increase the default size of the board setup dialog 2023-01-27 22:00:39 +00:00
Alex 8603c06ef3 Fix netnames. 2023-01-27 19:35:41 +03:00
Alex 13ce2ebf46 15% rendering optimization in PCB_TRACK::ViewGetLOD. 2023-01-27 18:37:43 +03:00
Jeff Young 8268234aa1 Reverse shown-source logic so we report if it's the netclass width.
(whether or not it's *also* the previous track width).
2023-01-27 15:31:02 +00:00
Jon Evans 675b6b5d5c Fix logic error in ec4d377d
Also fixup goldens for importers for new default island mode
2023-01-27 10:16:56 -05:00
Jon Evans ec4d377d15 Stop removing islands for fully-isolated zones
It is hard for a user to tell what is going on when their zone
just doesn't fill at all.  We catch isolated areas in the DRC so
we can just leave them alone here until the zone has at least one
non-isolated filled area.

Also change default back to always remove islands to reduce confusion

Fixes https://gitlab.com/kicad/code/kicad/-/issues/13271
2023-01-27 08:57:18 -05:00
Alex e3fa447f0c router: Remove extra qualification. 2023-01-27 11:56:23 +03:00
Alex 0ff6cb49d6 router: When dragging tracks, don't snap to parts of the original line.
Fixes https://gitlab.com/kicad/code/kicad/issues/10113
2023-01-27 11:06:36 +03:00
Alex 52edbf91dc Better synchronization of various ratsnest visibility controls. 2023-01-27 10:01:12 +03:00
Alex a872ed11bf Fix paths for Copy default global library table. 2023-01-27 09:24:52 +03:00
Seth Hillbrand a0236113da Attempt fix to RATSNEST crash
We call 'RecalculateRatsnest' in multiple locations, this will
invalidate various pointers needed by VIEW::Redraw().  When this is
called through the normal connectivity routines, we have the mutex
locked to prevent conflict but we've added more locations that update
just the Ratsnest.  The std::adopt_lock should take over the existing
lock when needed

Fixes https://gitlab.com/kicad/code/kicad/issues/13011
2023-01-26 17:32:38 -08:00
Seth Hillbrand ec9e7eed90 Don't link DNP with Exclude from Pos files
Exclude from Pos file property follows the footprint but may be
different from the DNP property

Fixes https://gitlab.com/kicad/code/kicad/issues/13616
2023-01-25 13:54:12 -08:00
Seth Hillbrand a6badd0313 Fix compile warning 2023-01-25 13:53:13 -08:00
Jeff Young 2312cf34c4 Pay attention to knockout text when adding to DRC Rtrees. 2023-01-25 18:34:03 +00:00
jean-pierre charras b2f6c13b6a Fp editor and Fp viewer: fix missing info on msg panel after loading a fp
Fix also duplicate/not used code
Fixes #11404
https://gitlab.com/kicad/code/kicad/issues/11404
2023-01-25 17:47:04 +01:00
Mike Williams a76a4f9788 Router: don't unnecessarily change track widths on layer change
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/13546
2023-01-25 09:34:17 -05:00
Marek Roszko ae812bdf39 Try to use the theme setting for the cli pcb svg export 2023-01-24 22:57:28 -05:00
Jeff Young e886ccacbd Cleanup unused local variable. 2023-01-24 23:45:55 +00:00
Jon Evans 769afa6fe6 Properties: refactoring 2023-01-24 12:08:37 -05:00
Jon Evans 890103a012 Properties: Fix handling of mixed value selections 2023-01-24 11:51:26 -05:00
Simon Richter 05198b896f Move PCB_EDIT_FRAME::ExchangeFootprint to pcb_edit_frame.cpp
No idea why it was in the dialog file, but there is no good reason for that.
2023-01-24 12:54:05 +00:00
Jeff Young 00e2bbac5a Special-case net-ties for solder mask bridging.
Fixes https://gitlab.com/kicad/code/kicad/issues/13646
2023-01-24 11:33:08 +00:00
Jeff Young b0ec006b81 The safety of running the event loop during doCloseWindow is debatable.
(Possibly a fix for Sentry KICAD-7T.)
2023-01-24 11:33:08 +00:00
Jeff Young 8eae75e8d6 Suppress handling of selection events until delete is done.
Fixes https://gitlab.com/kicad/code/kicad/issues/13451
2023-01-24 00:07:40 +00:00
Seth Hillbrand e713a3eac2 Handle cleanup safely
Make sure that the connectivity has successfully completed before
attempting to merge segments.  Also avoids reaching into the shared_ptr
if we don't need to

Fixes https://gitlab.com/kicad/code/kicad/issues/13639
2023-01-23 15:56:46 -08:00
Jon Evans 12b0a12d74 Handle DP checks for board minimum rules
Fixes https://gitlab.com/kicad/code/kicad/-/issues/13640
2023-01-23 17:45:16 -05:00
Seth Hillbrand efe12f2da5 Cleanup variable naming
Also remove ancient/unused code for lazy resolving
2023-01-23 22:21:12 +00:00
Seth Hillbrand a9ed47f06c Update KICAD6->KICAD7 2023-01-23 22:21:12 +00:00
Jeff Young 509b39e9e4 Propagate nets within non-conflicting clusters immediately.
Fixes https://gitlab.com/kicad/code/kicad/issues/13601
2023-01-23 16:25:29 +00:00
Jeff Young ece775c53c Blind/buried vias are drilled, and drilled holes need to avoid prior-burned holes.
Fixes https://gitlab.com/kicad/code/kicad/issues/13627
2023-01-23 16:25:29 +00:00
Jeff Young c430c88f9d Immediate update of no-net objects when they're connected to something else.
Fixes https://gitlab.com/kicad/code/kicad/issues/13601
2023-01-23 16:25:29 +00:00
Jon Evans 4a55b7998a Standardize on longer phrasing
Fixes https://gitlab.com/kicad/code/kicad/-/issues/13514
2023-01-23 08:59:18 -05:00
Jon Evans e11012fe06 Properties: show via friendly name
Fixes https://gitlab.com/kicad/code/kicad/-/issues/13635
2023-01-23 08:56:21 -05:00
aris-kimi 09b83b95d0 PCB Editor: Locked filter unchecked by default
And some minor code style improvement in one place

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/13246
2023-01-23 11:36:06 +00:00
jean-pierre charras 136c150460 plot_brditems_plotter: fix crash (null poiner use) when run from kicad-cli,
with a not initialized plotter render settings.
Fixes #13633
https://gitlab.com/kicad/code/kicad/issues/13633
2023-01-23 11:50:27 +01:00
jean-pierre charras e0111f709b Fix minor cosmetic issues in Print dialogs
Fixes #13629
https://gitlab.com/kicad/code/kicad/issues/13629
2023-01-23 09:21:23 +01:00
Jon Evans 1bc3f77d2e Coverity fixes 2023-01-22 22:48:31 -05:00
Alex 1aca216f18 Add DRC suggestions for Via_Type 2023-01-23 05:14:06 +03:00
Alex 91d154cd28 Add DRC suggestions for Shape 2023-01-22 22:35:12 +03:00
Alex 05eafdc08b Add missing DRC Type suggestions. 2023-01-22 22:35:12 +03:00
Jeff Young bf8762c57c Streamline color lookup (and a bit of wxS). 2023-01-22 17:18:03 +00:00
Jon Evans 09cb222252 Change indeterminate checkbox behavior to be more intuitive
Fixes https://gitlab.com/kicad/code/kicad/-/issues/13604
2023-01-22 12:10:45 -05:00
Jon Evans 351f668645 Separate selection change updates from properties updates
Fixes https://gitlab.com/kicad/code/kicad/-/issues/13624
2023-01-22 12:10:45 -05:00
Jeff Young 729b2deb5c Use board layer names for properties grid.
Fixes https://gitlab.com/kicad/code/kicad/issues/13553
2023-01-22 15:47:57 +00:00
Marek Roszko 0ff32d20cd wxS more things 2023-01-22 09:41:42 -05:00
Jeff Young 03a64492e8 Handle all member vars if not doing a std::swap on "this".
Fixes https://gitlab.com/kicad/code/kicad/issues/13621
2023-01-22 13:00:18 +00:00
aris-kimi 86c12d35b4 Small order change for three View menu items 2023-01-22 01:04:17 +00:00
Jeff Young 005648f4db The net inspector is a modeless panel, not a dialog.
No need for OK button.
2023-01-22 00:14:02 +00:00
Jeff Young 8a9a63134c Minor dialog adjustments. 2023-01-22 00:14:02 +00:00
Jon Evans 3a9ef02fdf Clean up handling of selection changes
Fixes https://gitlab.com/kicad/code/kicad/-/issues/13620
Fixes https://gitlab.com/kicad/code/kicad/-/issues/13609
2023-01-21 17:37:29 -05:00
jean-pierre charras df4f9d4c94 FP editor: fix crash when trying to save a footprint after removing its library
Fixes #13619
https://gitlab.com/kicad/code/kicad/issues/13619
2023-01-21 18:18:38 +01:00
Jeff Young 12215647f1 Handler blind/buried/micro via drawing when all layers are hidden.
Fixes https://gitlab.com/kicad/code/kicad/issues/13607
2023-01-20 19:09:12 +00:00
Mike Williams 6586a2ca66 PCB Editor: prevent scroll wheel on track size opening board settings
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/13218
2023-01-20 12:13:16 -05:00
Seth Hillbrand 34810d24a5 Remove unique dummy text
Text that will be replaced programmatically should be specified as
"dummy" in wxFormBuilder to avoid adding unneeded translation strings
2023-01-20 09:11:08 -08:00
Jeff Young 89d434255c Run clearance rules for router status bar.
Fixes https://gitlab.com/kicad/code/kicad/issues/13605
2023-01-20 14:19:58 +00:00
Jeff Young d9a90519f9 Flatten (and fix layout) of library table managers. 2023-01-20 14:19:58 +00:00
Jeff Young 24dd402e29 Finish processing last pad in pad group, and trim whitespace from pads. 2023-01-19 15:48:32 +00:00
Mike Williams 67eae77e9d PCB/SCH/3D: Implement 3D cross-probing from schematic
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/3859
2023-01-19 10:39:47 -05:00
Mike Williams b8352b07c5 PCB: Immediate mode copy should deselect if hover selecting 2023-01-19 09:45:47 -05:00
Seth Hillbrand 7e5a2450b8 Move multiple wxMessageBox to DisplayErrorMessage
Also provide protection for headless running in multiple callsites

Fixes https://gitlab.com/kicad/code/kicad/issues/13575
2023-01-18 16:54:01 -08:00
Seth Hillbrand b99bd7633d Allow commas, spaces in pad names for net-ties
Net tie groups are currently separated by comma.  But comma is also an
allowed, albeit rare character for pad names.  To allow pad names with
commas in net tie groups, the group definition must be escaped with a
forward slash for commas (and forward slashes).

Pad 1,2
Pad 2,3

Net-tie group "1\,2,2\,3"

Fixes https://gitlab.com/kicad/code/kicad/issues/13001
2023-01-18 14:45:52 -08:00
Seth Hillbrand 8f4486752d Fix build error 2023-01-18 10:20:20 -08:00
Seth Hillbrand 7fa15b3fbb Only update items that can be affected
When updating the view, don't force repaint all items.  Changing the
line width only affects elements with lines

Fixes https://gitlab.com/kicad/code/kicad/issues/13579
2023-01-18 09:59:00 -08:00
Dag Lem cff0560088 Eagle schematic import: Handling of escaped text 2023-01-18 12:33:36 +00:00
Jeff Young 3af9c658e6 Don't specify fonts in wxFormBuilder. It only leads to pain.
Fixes https://gitlab.com/kicad/code/kicad/issues/13547
2023-01-18 12:28:07 +00:00
jean-pierre charras 90c76fa4bc Pcbnew: display first and last layer ID on buried and micro vias.
Fixes #13566
https://gitlab.com/kicad/code/kicad/issues/13566
2023-01-18 09:56:25 +01:00
jean-pierre charras 940d88c47d PCB_SHAPE::swapData() : Do not swap twice a parameter
Fixes #13576
https://gitlab.com/kicad/code/kicad/issues/13576
2023-01-18 08:37:34 +01:00
Jeff Young 7844602210 Nullptr safety. 2023-01-18 01:30:40 +00:00
Jeff Young f90b04c715 Nullptr safety. (Sentry KICAD-5N) 2023-01-18 01:05:27 +00:00
Jeff Young f45d44a639 Don't leave temp footprints attached to a board. 2023-01-18 00:46:59 +00:00
Seth Hillbrand f35a02d57a Move early exit higher in netname redraw
If the track is outside of the viewbox, GetLOD returns HIDE.  This needs
to be handled quickly in the loop before further processing

Fixes https://gitlab.com/kicad/code/kicad/issues/13572
2023-01-17 15:56:04 -08:00
Jeff Young 3cc960a872 Push nets to free pads when they're used.
Fixes https://gitlab.com/kicad/code/kicad/issues/13516

Fixes https://gitlab.com/kicad/code/kicad/issues/13517
2023-01-17 23:29:47 +00:00
Seth Hillbrand 1d223d1439 Safely load python plugins
Catch potential exceptions when doing the initial python plugin load

Fixes https://gitlab.com/kicad/code/kicad/issues/12231
2023-01-17 12:56:15 -08:00
Seth Hillbrand 60ba245474 Remove Eagle islands by default unless told otherwise
Fixes https://gitlab.com/kicad/code/kicad/issues/13503
2023-01-17 12:49:44 -08:00
Jeff Young 26c821962f Simplify and regularize text variable substitution architecture.
EDA_ITEMs are responsible for giving their parent a crack at it if
they failed to resolve it.  This recurses all the way up to the schematic/
board, and then to the project.

Cross-reference handling is also move to the EDA_ITEMs.  It must be done
before bubbling up so that we don't end up in loops.  (The aDepth parameter
will break the loop, but without having done anything useful.)

Fixes https://gitlab.com/kicad/code/kicad/issues/13541
2023-01-17 17:05:41 +00:00
Jeff Young 9820062c71 Fix clipping issue in Pad Properties dialog. 2023-01-17 17:05:41 +00:00
Wayne Stambaugh 022c913e8f Fix another broken graphics import file filter. 2023-01-17 11:34:51 -05:00
Mike Williams 369c0efade Bitmaps: respect source DPI
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/13565
2023-01-17 11:20:17 -05:00
Wayne Stambaugh f81642bbb3 Fix broken graphics import file filters.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/13570
2023-01-17 11:19:53 -05:00
jean-pierre charras 90c5ede1e6 pcbnew: move DIALOG_PAD_PROPERTIES_BASE from dialog_pad_properties to its own files.
dialog_pad_properties_base.fbp included to many dialog descriptions.
2023-01-17 09:44:28 +01:00
Marek Roszko ac94995f70 Some more wxS 2023-01-16 19:07:50 -05:00
Felix Schneider 08295c795b Add vertical justification buttons to pcbnew text dialog
kicad 6 default behaviour was not achievable through the UI.
Addresses #13423 and #2375
2023-01-16 18:40:08 +00:00
Jeff Young 22497502e6 Don't leave a dummyPad in a group. Freeing it will cause problems.
Fixes https://gitlab.com/kicad/code/kicad/issues/13556
2023-01-16 17:30:40 +00:00
Jeff Young e490728226 Don't run the footprint checker's shorting pads routine at board level.
Fixes https://gitlab.com/kicad/code/kicad/issues/13555
2023-01-16 16:44:16 +00:00
jean-pierre charras c4ccf46cc7 DIALOG_PAD_PRIMITIVES_PROPERTIES: fix incorrect display of polygon primitive.
Fixes #13557
https://gitlab.com/kicad/code/kicad/issues/13557
2023-01-16 17:32:22 +01:00
Jeff Young f0b2902b8c Don't allow quit while zone filler is running.
Fixes https://gitlab.com/kicad/code/kicad/issues/13551
2023-01-16 16:01:45 +00:00
Jeff Young 62649b868c Ensure good fonts in grid headers.
Also moves rendering to a flat look for headers (instead of a beveled
border).

Fixes https://gitlab.com/kicad/code/kicad/issues/13547
2023-01-16 02:47:14 +00:00
Jeff Young ca1fb732c8 Share Eagle var substitution between board and schematic importers.
Fixes https://gitlab.com/kicad/code/kicad/issues/13541
2023-01-15 22:27:19 +00:00
Jeff Young 91c5bb9175 Block user-initiated zone-fill actions, but not system ones.
Fixes https://gitlab.com/kicad/code/kicad/issues/13536
2023-01-15 19:16:36 +00:00
Jeff Young 0328cae94c Detach revert footprint copy from parent board.
Fixes https://gitlab.com/kicad/code/kicad/issues/13537
2023-01-15 17:26:44 +00:00
Wayne Stambaugh 744fd3a71e Fix GCC build issue on Linux. 2023-01-15 12:18:56 -05:00
Jeff Young bf4b9ef6e2 Remove sorting by priority before filling.
We can't fill lower-priority zones until the higher-priority ones
have been tesselated, and as the tesselation step always gets pushed
to the back of the queue after the fill finishes having them sorted
by priority accomplishes little.  (We're also going to push all other
layers of the high-priority zone to the back as the first layer will
have the lock, further degrading the usefulness of sorting.)
2023-01-15 15:52:24 +00:00
Jeff Young 0c8f95aa02 Make sure tesselate_lambda has lock before modifying zone.
Also implements locking for upating pad & tracks' zoneConnectionCaches.

Fixes https://gitlab.com/kicad/code/kicad/issues/13531
2023-01-15 15:52:24 +00:00
Jeff Young 45a71a205c Don't wait for degenerate zones. 2023-01-15 15:52:24 +00:00
Jeff Young f1aee2fa18 Minor dialog tweaks. 2023-01-14 01:45:30 +00:00
Jeff Young ea4c3a267b Be more discerning about dirtying zones for auto-refill.
In particular, record which children caused a parent footprint to be
added to the commit so we can determine if they have intersecting
bounding boxes and/or layers.

Fixes https://gitlab.com/kicad/code/kicad/issues/13512
2023-01-13 19:09:22 +00:00
Jeff Young f358749b28 Import copper pour cutouts from Eagle packages (footprints).
Fixes https://gitlab.com/kicad/code/kicad/issues/13503
2023-01-13 16:35:45 +00:00
Tomasz Wlostowski 761e754294 router: trying to improve the 'guess posture' algorithm to work well with both fix-all and fix-last-segment on click 2023-01-12 23:37:07 +01:00
Tomasz Wlostowski 65def26b4d router: follow up ROUTER::GetUpdatedItems() API changes in the ROUTER_TOOL 2023-01-12 23:37:07 +01:00
Tomasz Wlostowski d07d6c9a30 router: fix 'Bowen knot'-looking hulls for 0-length segments 2023-01-12 23:37:07 +01:00
Tomasz Wlostowski 0595440d79 router: minor improvements in shove algorithm handling of vias 2023-01-12 23:37:07 +01:00
Tomasz Wlostowski 213d30cad6 router: workaround for assertion fail on NODE::Add(unique_ptr<LINE>) 2023-01-12 23:37:07 +01:00
Tomasz Wlostowski aa7271e55a router: expose the 'head' traces in a separate list for debug logs 2023-01-12 23:37:07 +01:00
Seth Hillbrand 79f567cff4 Standardize BOM nomenclature
Fixes https://gitlab.com/kicad/code/kicad/issues/13499
2023-01-12 13:54:12 -08:00
Jeff Young 631fd54f9f Don't suppress writing of empty values. They have meaning.
Fixes https://gitlab.com/kicad/code/kicad/issues/13507
2023-01-12 15:24:59 +00:00
Jon Evans 595bf70d5d Do not try to read from UI elements that haven't been initialized yet
Fixes https://gitlab.com/kicad/code/kicad/-/issues/13480
2023-01-12 09:16:22 -05:00
Jon Evans c530bdb5a1 Rename GetSelectMenuText to GetItemDescription
This descriptive text is used for many more things than
just the select menu these days.
2023-01-11 22:27:44 -05:00
Jon Evans 1ff1571849 Bring back deprecated net properties to rules system 2023-01-11 22:14:52 -05:00
qu1ck 2654279678 Cleanup zone bbox cache in destructor 2023-01-12 00:21:51 +00:00
Seth Hillbrand 248399f771 Standardize print/plot terms
Use choice box for color/bw selection
"border and title block" -> "drawing sheet"

Fixes https://gitlab.com/kicad/code/kicad/issues/13128
2023-01-11 12:30:02 -08:00
Jeff Young 8238973bf4 Make sure std::unique_ptr gets initialized.
(Fixes unit test failure.)
2023-01-11 18:28:29 +00:00
Jeff Young 096cc7a5ad Suppress unflashed annular rings only when copper layer is primary.
Fixes https://gitlab.com/kicad/code/kicad/issues/13471
2023-01-11 18:15:46 +00:00
Jeff Young c85dcbc4e1 Improve performance of IncrementTimestamp so it can be called at will. 2023-01-11 17:41:08 +00:00
jean-pierre charras 1500e3bb80 Pcbnew, minor fix: do not write twice the dielectric color in stackup section in broad file. 2023-01-11 17:45:00 +01:00
Jeff Young 30c9deb9d5 Flat(er) look for paged dialogs. 2023-01-11 01:11:25 +00:00
qu1ck f153ff8453 Add GetCurrentSelection() python scripting helper 2023-01-10 16:39:48 +00:00
jean-pierre charras 507edc54b3 Fix issues related to footprint wizards not loaded/reloaded in fp editor and fp wizard frame.
Fixes #11195
https://gitlab.com/kicad/code/kicad/issues/11195
2023-01-09 19:58:02 +01:00
Wayne Stambaugh c3ded7a03d Remove board editor standard dialog button static line separators. 2023-01-09 08:49:38 -05:00
Jeff Young e916b715d5 Special case for very-short tracks was killing both-ends-in-a-zone.
(And doing so randomly as if the closer endpoint to the zone center
was the one without a pad then it would get marked as good, while if
it was the other way around we'd notch 2 connections for the pad end
and none for the other end.)

Fixes https://gitlab.com/kicad/code/kicad/issues/13420
2023-01-09 13:35:54 +00:00
Marek Roszko 82a1175d72 Fix cli gerbers output path and add job file 2023-01-08 23:03:30 -05:00
Jeff Young 6ed90134c7 Check for collisions on common layers.
Fixes https://gitlab.com/kicad/code/kicad/issues/13438
2023-01-08 20:53:15 +00:00
Wayne Stambaugh f28ea5e784 Remove standard dialog button static line separators.
For the sake of consistency across all dialogs and window that behave
like dialogs, remove the static line that separates the main part of
the dialog from the standard buttons.  This only applies to windows
that have the standard button on the bottom of the frame.

This covers the 3D viewer, CvPcb, common, GerbView and KiCad dialogs.
2023-01-08 13:15:33 -05:00
jean-pierre charras ae8bbcad32 PadArray.py: ensure parameters used to create a VECTOR2I are ints.
Fixes #13430
https://gitlab.com/kicad/code/kicad/issues/13430
2023-01-08 09:10:13 +01:00
qu1ck a369fd6a9c Fix swig optimization flag causing incompatible codegen 2023-01-08 00:55:21 +00:00
Jeff Young 1e407e5e20 Minor dialog adjustments. 2023-01-07 23:55:01 +00:00
Jeff Young 4794956804 Minor dialog adjustments. 2023-01-07 22:26:43 +00:00
Jeff Young bc50f537ff Re-layout standard buttons after editing their names.
Fixes https://gitlab.com/kicad/code/kicad/issues/13425
2023-01-07 19:34:32 +00:00
Jeff Young e509fa0fc9 Don't depend on a pad being connected to a non-zone when filling zones.
If the pad hasn't already been owned by another zone, and the zone we're
currently filling can connect to it, then we want to try to flash it even
if it's not connected to anything else.

Fixes https://gitlab.com/kicad/code/kicad/issues/13415
2023-01-07 19:34:32 +00:00
Seth Hillbrand a93c83d2fa Don't count non-coper SMD pads for likely type
We are only concerned for connected pads, not apertures

Fixes https://gitlab.com/kicad/code/kicad/issues/13387
2023-01-07 07:14:16 -08:00
Jeff Young 94847336a1 Bug fix for dark mode switch for layers palette.
Fixes https://gitlab.com/kicad/code/kicad/issues/13154
2023-01-06 20:43:33 +00:00
Seth Hillbrand 2399759c03 Allow default sexpr libs to have '.' and no .pretty
We default to KICAD_SEXPR format.  In this case, if the library doesn't
have the .pretty extension, the full directory name including a '.' is
the correct nickname

Fixes https://gitlab.com/kicad/code/kicad/issues/13388
2023-01-06 10:08:32 -08:00
Jeff Young 2cbb66d70d Dim other pads when in pad edit mode. 2023-01-06 11:13:57 +00:00
Seth Hillbrand 25f34a14a1 Check file starting signature when opening
Opening .brd files might be legacy or eagle (probably others as well).
We check for the starting "PCBNEW" in KiCad files to differentiate

Fixes https://gitlab.com/kicad/code/kicad/issues/10201
2023-01-05 18:10:22 -08:00
Jon Evans 1ccd387c8d Exit a group when selecting a component outside it
We had this filter in place when doing mouse selection, but not when
the selection comes from another tool event.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/13398
2023-01-05 20:32:52 -05:00
Seth Hillbrand a6eb6d3228 Default to SMD if we have an SMD pad
SMD pads indicate that the footprint can be used in PnP more often  than
the presence of THT indicate that it cannot.

Fixes https://gitlab.com/kicad/code/kicad/issues/13387
2023-01-05 16:56:07 -08:00
Seth Hillbrand 126225866b Don't add footprint components to PCB group
Footprint components are only group-able inside of the footprint editor

Fixes https://gitlab.com/kicad/code/kicad/issues/13396
2023-01-05 15:38:07 -08:00
qu1ck 7dfa100ff0 Correctly refresh the board after action plugin run and maintain
selection
2023-01-05 14:05:15 -08:00