Commit Graph

14213 Commits

Author SHA1 Message Date
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