Commit Graph

11264 Commits

Author SHA1 Message Date
Michael Kavanagh d933a0a863 Use the pencil for Properties in Pcbnew 2021-01-25 14:21:23 +00:00
Michael Kavanagh eba09a59e9 Remove inappropriate icon 2021-01-25 14:21:22 +00:00
Jeff Young 09eb4b35c6 Make sure footprint edges get checked.
Fixes https://gitlab.com/kicad/code/kicad/issues/7267
2021-01-25 13:20:16 +00:00
Jeff Young d40fe127aa Update pad locked status when adding footprints from schematic.
Also fixes some latent bugs with not updating the local ratsnest
visibility in other places, and the netcode in update PCB from schematic.

Fixes https://gitlab.com/kicad/code/kicad/issues/7202
2021-01-25 01:20:36 +00:00
Seth Hillbrand 5a9c0a9b5a Quiet a few coverity warnings 2021-01-24 14:53:18 -08:00
Seth Hillbrand 47d5900600 Fix build warnings 2021-01-24 11:37:48 -08:00
Mikolaj Wielgus 04cc64c008 Restore the old reference after rotation or flip instead of clearing
After a rotation or flip the reference point has to be restored to the
previous value to prevent the dragged item from warping to the cursor.
Before this change, the reference point was only cleared, causing odd
behavior when a rotation or flip was performed.

Fixes https://gitlab.com/kicad/code/kicad/issues/7112
2021-01-24 18:56:46 +00:00
Roberto Fernandez Bautista f353fc448b Fix edge cases in EDIT_TOOL::DragArcTrack 2021-01-24 16:41:11 +00:00
Roberto Fernandez Bautista 99d203feae Clarify CIRCLE::ConstructFromTanTanPt
Remove unused bool aAlternateSolution and add doxygen comments
2021-01-24 16:41:11 +00:00
Roberto Fernandez Bautista 48823c0723 Formatting fixes and fix qa_kimath following rebase 2021-01-24 16:41:10 +00:00
Roberto Fernandez Bautista 6e7ae93cc8 EDIT_TOOL::DragArcTrack Fix incorrect undo history when items are deleted
Need to make sure we only apply one COMMIT operation per object before calling COMMIT::Push() or COMMIT::Revert()
2021-01-24 16:41:10 +00:00
Roberto Fernandez Bautista 2b5c1bae97 CHANGED: Dragging a curved track starts an interactive resizing of it, keeping start an end points tangent 2021-01-24 16:41:10 +00:00
Jeff Young 25956152c6 Scan actual nets; not assumed nets.
Specctra exporter should not assume that PCB nets are numbered
sequentially without any holes.

Fixes https://gitlab.com/kicad/code/kicad/issues/7249
2021-01-23 22:55:03 +00:00
Jeff Young d5d9372839 Don't cancel dialog when esc-ing out of autocomplete. 2021-01-23 22:55:03 +00:00
jean-pierre charras 15cc368918 Gerber plotter: prepare optimization of aperture macros type free polygons.
They are used for chamfered round rect pads, and can be used for custom shaped pads.
No actual change currently, but the shape rotation of custom pads and chamfered rr pads
can be now used in gerber plots.
2021-01-23 21:15:27 +01:00
Jeff Young d8c7c8f700 Evaluate rules when fetching zone edge clearance. 2021-01-23 17:04:44 +00:00
Jeff Young 2d8cac658e Allow negative clearances to signal supression of DRC test. 2021-01-23 00:10:01 +00:00
Jeff Young 0ba0160da9 Add a PT_NIC pin electrical type and a netlist token for SCH_NO_CONNECT.
ADDED a new pin electrical type "free" for internally unconnected pins.

CHANGED the "unconnected" pin electrical type is now represented by
"no_connect" in files and netlists.  (The legacy syntax is also accepted
in files.)
2021-01-23 00:10:01 +00:00
Jeff Young f5e35af1a5 Transmit pin electrical types through to pads. 2021-01-23 00:10:01 +00:00
Jeff Young 9ac807bdd2 Freeze implicit footprint file version at last before explicit.
We have been writing footprint versions for a while now, but we were
still interpreting the lack of a version as "current".  This changes
lack of a version to mean "last format before we started writing out
versions".

Fixes https://gitlab.com/kicad/code/kicad/issues/7143
2021-01-23 00:10:01 +00:00
jean-pierre charras cbff706916 Update the .fpb file to be able to open it with wxFormBuilder 3.9, used by Kicad 2021-01-21 20:28:05 +01:00
Jeff Young 3fcd0860c1 Make 'E' go straight to Custom Track Width dialog.
Also fixes some mouse capture issues.

Fixes https://gitlab.com/kicad/code/kicad/issues/7198
2021-01-20 18:19:55 +00:00
qu1ck 07d4a28024 Improvements to pcbnew action plugins settings panel
1. Add open plugins directory button (same as in tools menu)
2. Add show plugin errors button to help debug issues
2021-01-20 09:09:53 +00:00
Roberto Fernandez Bautista 74aa081b8a Don't add board-only footprints to the netlist (fixes back-annotation issue) 2021-01-20 00:37:38 +00:00
Jeff Young 360953ba98 "comp" -> "symbol". 2021-01-19 23:50:40 +00:00
Jeff Young 0ded846130 Go back to previous arc midpoint editing routine.
It avoids erratic behaviour near the chord or end-points.

Fixes https://gitlab.com/kicad/code/kicad/issues/7135
2021-01-19 23:50:40 +00:00
Michael Kavanagh 80dbc24326 Icons: remove superfluous icon
Remove icons where menu text gives context
2021-01-19 22:57:25 +00:00
Michael Kavanagh ef2aa8a730 FP Editor: remember to update appearance manager
Fixes https://gitlab.com/kicad/code/kicad/issues/6926
2021-01-19 20:24:16 +00:00
Seth Hillbrand 060635b14c fabmaster: Fix graphic handling in geometry section 2021-01-19 12:16:40 -08:00
Jeff Young 35978adef9 Don't run dimension updates while parsing files.
They mess up the geometry when only partial values are provided.

Fixes https://gitlab.com/kicad/code/kicad/issues/7177
2021-01-19 16:09:44 +00:00
Jeff Young 25ff0fa662 Fix typo in unit label assignment and some minor layout improvements. 2021-01-19 16:09:44 +00:00
Jeff Young e9dc1824d6 Minor improvements to layout. 2021-01-19 16:09:44 +00:00
Jeff Young 06dec36625 Improve layout and terminology in PCBNew/FPEditor edit settings. 2021-01-19 13:16:26 +00:00
Jeff Young 1ac47c2ac6 Fix misleading tooltip. 2021-01-19 11:05:25 +00:00
Jeff Young 0a2a3c9903 Fix Coverity-discovered typo. 2021-01-19 10:57:07 +00:00
Jon Evans 330d717c69 Fix typo 2021-01-18 21:50:26 -05:00
Michael Kavanagh 7461b96dea Hide the selection tool submenu in the FP Editor
Fixes https://gitlab.com/kicad/code/kicad/issues/7164
2021-01-19 00:30:44 +00:00
Jeff Young 12fe44d4b3 Snap arc center *by* the grid, not *to* the grid.
Also fixes a bug with editing an arc endpoint because the cursor pos
was being forced before the arc constraints stuff had been run (in
updateItem()).
2021-01-19 00:26:31 +00:00
Seth Hillbrand b8dfcb34c4 Revert "Use less-sophisticated arc editing math."
This reverts commit 3b424d3868.  And fixes
issue with rouding causing arc errors
2021-01-18 12:44:27 -08:00
Ian McInerney 44655b98de Initialize variables properly 2021-01-18 18:35:10 +00:00
Ian McInerney d030d1667b Fix improper string creation in fabmaster importer 2021-01-18 18:35:10 +00:00
Jon Evans 1e33928b96 Fix issues with zone filling connectivity locking
Two issues found with the locking system used to prevent access to
stale connectivity data during the zone fill process:

1) a std::mutex has undefined behavior if you try to use it to guard
against access from the same thread.  Because of the use of wx event
loops (and coroutines) it is entirely possible, and in some situations
inevitable, that the same thread will try to redraw the ratsnest in the
middle of zone refilling.

2) The mutex was only guarding the ZONE_FILLER::Fill method, but the callers
of that method also do connectivity updates as part of the COMMIT::Push.
Redrawing the ratsnest after the Fill but before the Push will result in
stale connectivity pointers to zone filled areas.

Fixed (1) by switching to a trivial spinlock implementation.  Spinlocks would
generally not be desirable if the contention for the connectivity data crossed
thread boundaries, but at the moment I believe it's guaranteed that the reads
and writes to connectivity that are guarded by this lock happen from the main
UI thread.  The writes are also quite rare compared to reads, and reads are
generally fast, so I'm not really worried about the UI thread spinning for any
real amount of time.

Fixed (2) by moving the locking location up to the call sites of
ZONE_FILLER::Fill.

This issue was quite difficult to reproduce, but I found a fairly reliable way:
It only happens (for me) on Windows, MSYS2 build, with wxWidgets 3.0
It also only happens if I restrict PcbNew to use 2 CPU cores.
With those conditions, I can reproduce the issue described in #6471 by
repeatedly editing a zone properties and changing its net.  The crash is
especially easy to trigger if you press some keys (such as 'e' for edit)
while the progress dialog is displayed.  It's easiest to do this in a debug
build as the slower KiCad is running, the bigger the window is to trigger this
bug.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/6471
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7048
2021-01-18 13:22:12 -05:00
Jeff Young 26bc29808a Clean up Text Properties dialog.
It's no longer used for dimensions so doesn't need the line thickness
controls.

The spacing was a bit wonky.

Changed to disabling rather than hiding visibility checkbox.  The less
the GUI moves around the better.
2021-01-18 15:20:15 +00:00
Jeff Young 4f399d4304 One more attempt to fix flipping geometry.
Fixes https://gitlab.com/kicad/code/kicad/issues/4480
2021-01-18 15:20:15 +00:00
Michael Kavanagh 479487ceb1 Tidy up context menus a bit
Try and put the common actions in the same places
2021-01-17 22:42:03 +00:00
Jon Evans 6bb9aeab4b Position relative: store discarded pad for use as the selection anchor
Fixes https://gitlab.com/kicad/code/kicad/-/issues/6996
2021-01-17 14:25:52 -05:00
Jeff Young f1221a9ca3 Resolve text variables in title blocks for outputing to netlist.
Fixes https://gitlab.com/kicad/code/kicad/issues/7153
2021-01-17 16:24:22 +00:00
Jon Evans 1754504234 Fabmaster: fix MSVC build
std::map is not move-constructable on MSVC because
it is not declared noexcept (and is not required to be
by the standard)

This means that a struct containing graphic_element
cannot be inserted into a vector with move semantics without
compile errors.  However, wrapping it in a unique_ptr
works.
2021-01-17 10:23:31 -05:00
Jeff Young 68efdb2fff Push shared parts of GRID_HELPERs into common. 2021-01-16 23:18:10 +00:00
Seth Hillbrand 950db6ff9c pcbnew: Add Fabmaster import
Allows importing ASCII design output from OrCAD designs
2021-01-16 14:28:33 -08:00
Jeff Young 3b424d3868 Use less-sophisticated arc editing math.
While it doesn't do the tangent retention that the old version did,
this one I can at least make work.

Fixes https://gitlab.com/kicad/code/kicad/issues/7135
2021-01-16 20:46:14 +00:00
Roberto Fernandez Bautista 00918c68f5 Don't do clever snapping logic when drawing a circle
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7131
2021-01-16 08:39:20 +00:00
Jon Evans 38455c25ef Bring back consideration of world scale to PcbNew snapping
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7125
2021-01-15 12:29:47 -05:00
Jeff Young 08d595c9bf Move title block fields to global availability in PCBNew.
Fixes https://gitlab.com/kicad/code/kicad/issues/7118
2021-01-15 15:41:18 +00:00
Jeff Young 7dc2ca93cd Make sure we mark board-only-footprint nets as current.
Fixes https://gitlab.com/kicad/code/kicad/issues/6871
2021-01-15 12:46:48 +00:00
Jon Evans 6cc39d8011 Don't allow moving locked pads with Position Relative dialog
Fixes https://gitlab.com/kicad/code/kicad/-/issues/6996
2021-01-14 22:14:00 -05:00
Jon Evans 0b7fc0e2d9 Update local ratsnest state when toggling appearance control
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7035
2021-01-14 22:03:23 -05:00
Jeff Young 36508807e7 Give the pad placement tool a context menu.
ADDED: allow pad properties to be edited while placing pads.

Fixes https://gitlab.com/kicad/code/kicad/issues/6953
2021-01-15 00:52:03 +00:00
Jeff Young 965482bd7f Improve some tooltips.
Fixes https://gitlab.com/kicad/code/kicad/issues/7116
2021-01-14 22:35:32 +00:00
Thomas Pointhuber 9f24ea0bb7 altium: fix non-copper pads. Roundrect pads were not filled and SetLocalCoord() does not transform polygons into the local coordinates, which is unexpected. 2021-01-14 22:21:05 +01:00
jean-pierre charras 54cf67dad2 Pcbnew, drill map: fix incorrect position of texts for small boards.
Fixes #7111
https://gitlab.com/kicad/code/kicad/issues/7111
2021-01-14 18:52:04 +01:00
Mikolaj Wielgus 0129c7ae52 Notify appearance panel when net is (un)hidden by board inspection tool
Fixes https://gitlab.com/kicad/code/kicad/issues/7039
2021-01-14 17:22:41 +00:00
Jeff Young 02ccd5fbdb Make sure properties commands don't go to other tools during routing.
Brings up the track widths (or diff pairs) context menu instead,
which seems to be the closest parallel.

Fixes https://gitlab.com/kicad/code/kicad/issues/7099
2021-01-14 15:19:09 +00:00
Jeff Young 3e920c665f Special case via area generation.
Fixes https://gitlab.com/kicad/code/kicad/issues/7105
2021-01-14 12:48:44 +00:00
Mikolaj Wielgus f0b11896da Clip the first segment in leaders
Fixes https://gitlab.com/kicad/code/kicad/issues/6548
2021-01-14 00:10:41 +00:00
Seth Hillbrand 13a4717aed Add center handles to rectangle edits
Allows changing a single dimension at a time.  Matching the polygon edit
tool.

Fixes https://gitlab.com/kicad/code/kicad/issues/7085
2021-01-13 14:04:21 -08:00
Jeff Young ffdff21f45 Use a sloppier hittest for the collector as well as the actual hittest.
Fixes https://gitlab.com/kicad/code/kicad/issues/7079
2021-01-13 21:22:24 +00:00
Seth Hillbrand e3e9bfc1b8 Fix compile error 2021-01-13 13:21:27 -08:00
Seth Hillbrand 605dcfbedf Fix Windows script location
Windows has arbitrary installation locations, so reference relative to
the executable
2021-01-13 13:11:26 -08:00
Seth Hillbrand b57ad4b2f9 Correct SWIG path
Don't offset from executable, this is an absolute path

Fixes https://gitlab.com/kicad/code/kicad/issues/7089
2021-01-13 12:34:04 -08:00
Jeff Young da4b269783 Make sure pad local clearances get in to m_worstClearance. 2021-01-13 12:37:20 +00:00
Jeff Young 0bce280424 Make sure design rules get recompiled after netclass changes.
Fixes https://gitlab.com/kicad/code/kicad/issues/7082
2021-01-13 12:37:20 +00:00
Jon Evans d2d4ffe6d0 Dismiss infobar if it's dismissable on board save
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7071
2021-01-12 23:24:13 -05:00
Barabas Raffai 5931a39c0f Fix layer preset overwriting ratsnest settings
Fixes https://gitlab.com/kicad/code/kicad/issues/6975
2021-01-13 01:22:30 +00:00
Seth Hillbrand 6ed2a831d8 Don't override the router tool with drag actions
Before processing the select tool actions, we check if the router is
currently active and if it is, pass the event for processing in other
tools

Fixes https://gitlab.com/kicad/code/kicad/issues/7021
2021-01-12 15:44:20 -08:00
Dominik Wernberger ad97fabfd3 Add missing const to Matches 2021-01-12 20:51:32 +00:00
Dominik Wernberger dc02ec9758 Remove a few const_cast 2021-01-12 20:51:31 +00:00
Dominik Wernberger 07635d2fc7 Minor adjustments 2021-01-12 20:51:31 +00:00
Dominik Wernberger ac94d72d2d Add more const specifiers 2021-01-12 20:51:31 +00:00
Dominik Wernberger ec0af24f13 Make wxFindReplaceData argument const 2021-01-12 20:51:31 +00:00
jean-pierre charras 76cc7b98a7 Fp editor, DIALOG_PAD_PROPERTIES: do not disable posX and posY settings.
When a pad is locked,  posX and posY settings in DIALOG_PAD_PROPERTIES must
be locked only for the board editor, not in the fp editor.
2021-01-12 20:33:52 +01:00
Seth Hillbrand 2cb8dff650 Use KICAD_DATA for data path lookup in scripting
Fixes https://gitlab.com/kicad/code/kicad/issues/7036
2021-01-12 08:22:17 -08:00
Konstantin Baranovskiy cd2c46e5c9 Make "... file is read only." warnings translatable. 2021-01-12 14:33:35 +00:00
Jeff Young beab68db13 Fix bone-headed error in rules optimization. 2021-01-12 12:46:51 +00:00
jean-pierre charras d4c36230d2 Pcbnew, Graphic items: show the locked status in msg panel and dialog properties. 2021-01-12 10:00:21 +01:00
Jon Evans 01181ccb2f Make sure project is unlinked before deleting it
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7038
2021-01-11 22:17:13 -05:00
Michael Kavanagh a00b9cc821 Icons: general tweaks and pixel alignment
+ minor rename
+ fix missing bitmap in DRC panel
2021-01-11 23:31:25 +00:00
Michael Kavanagh dc83cb7a41 Icons: general tweaks and pixel alignment
+ remove some unused icons
2021-01-11 23:31:25 +00:00
Michael Kavanagh 32f7f30958 Icons: remove where they don't make sense
Also avoid icon reuse
2021-01-11 23:31:25 +00:00
Michael Kavanagh 8fba0c257b Icons: remove more inconsistencies around Select
Missed from 5d9b2d3fea
2021-01-11 23:31:24 +00:00
Seth Hillbrand 740df93808 Don't dereference board groups in fp editor
The Footprint editor group resolution should stop at the footprint level
to avoid breaking into groups that cannot be accessed.

Fixes https://gitlab.com/kicad/code/kicad/issues/7049
2021-01-11 14:58:33 -08:00
Jeff Young 63e2046eb0 Performance improvements for DRC rules. 2021-01-11 22:09:36 +00:00
Jeff Young 50889a9ed6 Promote mouse drag settings to full enums. 2021-01-11 22:09:36 +00:00
Seth Hillbrand c09dc5abdd Prevent locking items in footprint editor
Adding footprints to the board now has a preference for whether we want
pads locked or unlocked by default
2021-01-11 11:23:26 -08:00
jean-pierre charras 1b755bbc37 Fix issues in ConvertOutlineToPolygon() related to S_POLYGON PCV_SHAPE
Fixes #7046
https://gitlab.com/kicad/code/kicad/issues/7046
2021-01-11 17:05:44 +01:00
Jeff Young a4d417f5c0 Get rid of "drill" terminology when talking about finish hole size.
Fixes https://gitlab.com/kicad/code/kicad/issues/7044
2021-01-11 13:49:43 +00:00
RigoLigoRLC 493a784b62 Fix Pcbnew search "not found" prompt not displayed
Before this, "Searching..." prompt will not go away if nothing was found
in a search session. A bug I noticed while working on !611. After this
fix, "foo not found" will be displayed when Pcbnew cannot find the
given text.
2021-01-11 13:48:20 +00:00
RigoLigoRLC dd328d230b Make Pcbnew search about zone names, fixes #6951
I put zones in "other text items" category of searching as I thought it
would be the appropriate one.

Fixes https://gitlab.com/kicad/code/kicad/issues/6951
2021-01-11 13:48:20 +00:00
Wayne Stambaugh 1eee72ec65 Fix library tree behavior when duplicate project table entry is disabled.
Fixes https://gitlab.com/kicad/code/kicad/issues/5438
2021-01-11 07:46:07 -05:00
Jeff Young 6c648df4c6 Support 3 drag vs. select options, and unifiy with other drag prefs.
Fixes https://gitlab.com/kicad/code/kicad/issues/5493
2021-01-11 11:50:14 +00:00
Jeff Young 7134ff2da6 Try a different arrangement of Board Setup pages. 2021-01-11 11:50:14 +00:00
Jeff Young 9ce6c2be80 Group global editors under tools menu.
Also improves some terminology in Remove Unused Pads.
2021-01-11 11:50:14 +00:00
Seth Hillbrand 8ee324b1a9 Add bezier output to VRML 2021-01-10 11:28:15 -08:00
jean-pierre charras 067b94c410 DRC: Fix a incorrect message and marker position when testing dangling vias.
Commit 6ffb721 detects vias connected on only one layer.
But the DRC diag (marker position and error message) were not correctly initialized
for this new test.
2021-01-10 10:21:24 +01:00
Marek Roszko 828ecb76aa Remove polyline 3d check added by previous fixes
Fix #7030
2021-01-09 18:56:35 -05:00
Seth Hillbrand 4f6134b60d Check for CCW polys
Use rectangles for 4-sided polygons that are rectangular regardless if
they are CW or CCW oriented
2021-01-09 13:05:58 -08:00
Seth Hillbrand 8036303f8f Add margin to both sides to avoid drawing 0-poly
We cannot draw degenerate polygons, so we need to test for 0-size shapes
especially after scaling the mask.  The mask adjustment is from both
sides however, so it needs to be doubled.

Fixes https://gitlab.com/kicad/code/kicad/issues/7020
2021-01-09 13:05:58 -08:00
Jeff Young ed7b3373d1 Disentangle copper- and board-edge-clearances in Clearance Resolution...
Fixes https://gitlab.com/kicad/code/kicad/issues/6983
2021-01-09 16:44:03 +00:00
jean-pierre charras 08b93bd5ba FOOTPRINT::GetBoundingHull(): avoid returning a empty hull SHAPE_POLY_SET,
when a footprint contains only texts.
empty SHAPE_POLY_SET creates most of time issues (crashes for instance) when
containing no data.
Ensure the returned SHAPE_POLY_SET contains a minimal hull (a 0.04 mm square)
Fixes #7026
https://gitlab.com/kicad/code/kicad/issues/7026
2021-01-09 16:53:32 +01:00
jean-pierre charras daae68a6b8 French translation update.
Fix also a typo in 2 I18n strings.
2021-01-09 14:54:43 +01:00
Jeff Young 5ae6f93af8 A groups children may also have children.
For instance, it could be a nested group or a footprint.

Fixes https://gitlab.com/kicad/code/kicad/issues/7025
2021-01-09 13:47:24 +00:00
Jeff Young 78dcfb2392 Honour locks inside groups.
Fixes https://gitlab.com/kicad/code/kicad/issues/6841
2021-01-09 13:47:24 +00:00
Jeff Young 7716f20a5b Disentagle board edges from graphics in global delete.
Fixes https://gitlab.com/kicad/code/kicad/issues/7024
2021-01-09 13:47:24 +00:00
Jeff Young e4f29d358c Formatting. 2021-01-09 13:47:24 +00:00
Seth Hillbrand cf2dd0bd38 Fix edit_tool pad handling
Check for footprint editor
Promote pad edits to footprint edits iff
 - Pad is locked
 - Footprint is not

Otherwise, handle the pad normally and prompt for locked items if found
2021-01-08 19:46:14 -08:00
Seth Hillbrand 1c9d8a9f4c Don't warn on locked conversion 2021-01-08 16:49:47 -08:00
Seth Hillbrand 51f02ecc51 Fix alignment tool with locked footprints 2021-01-08 13:58:26 -08:00
Seth Hillbrand 721155165d Don't move locked footprint if pads are locked 2021-01-08 13:58:26 -08:00
Jon Evans d6448ce6b4 Expose settings manager to python
Fixes https://gitlab.com/kicad/code/kicad/-/issues/6989
2021-01-08 16:47:20 -05:00
Jeff Young d0af4e9f9d Save a cancel value when asked if it's not being used to cancel.
Many, many KIDIALOGs use OK/Cancel and then rename both buttons to
confirm or deny some action.  In those cases we *do* want to store
the deny actions if they check "Do Not Show Again".

Fixes https://gitlab.com/kicad/code/kicad/issues/6979
2021-01-08 21:32:19 +00:00
Jeff Young 8fffb75347 Allow custom pads with 0-sized anchor pads.
(Surprisingly we used to in 5.1, so this is a regression.)

Also had to go back to the nag dialog as on a small screen the infobar
comes up behind the dialog.  A lot of the errors have also been turned
into warnings, so the overall effect should still be to reduce nagging.

Fixes https://gitlab.com/kicad/code/kicad/issues/6992
2021-01-08 20:43:02 +00:00
Jeff Young 3467e643e5 Move pad locking from footprint to pads.
Fixes https://gitlab.com/kicad/code/kicad/issues/6997
2021-01-08 20:43:02 +00:00
Seth Hillbrand 6ffb72159a Remove vias if they only connect to single layer
A via takes up zone space on additional layers, so if we are not
connecting to those layers, then we should remove it.

Fixes https://gitlab.com/kicad/code/kicad/issues/7004
2021-01-08 09:39:43 -08:00
Seth Hillbrand 1e96374715 Consider tracks and vias together
Dangling tracks and vias affect each other and need to be considered at
the same time in order to fully remove the dangling segments
2021-01-08 09:35:58 -08:00
jean-pierre charras 93d203aef7 Fix a I18n issue: a string flagged as translatable cannot be empty. 2021-01-08 18:16:00 +01:00
Seth Hillbrand 9424d66d22 Move footprint when selecting locked pad
Prompting to unlock is obtrusive and blocks the common action of
dragging from a pad to align footprints.  The less common action of
editing pads in layout can be accomplished after unlocking the pads

Fixes https://gitlab.com/kicad/code/kicad/issues/6997
2021-01-07 19:46:06 -08:00
Jon Evans 24435df6b0 Don't update 3D view on cursor movement
Our rendering pipeline is not set up for this kind of speed,
and this is a blocking operation at the moment.

Note that we will get an update at the end of the move
because OnModify does it.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/6819
2021-01-07 20:43:14 -05:00
Jon Evans 61bddd0928 LAYER_PADS_TH is not a dependent layer
Fixes https://gitlab.com/kicad/code/kicad/-/issues/6999
2021-01-07 20:12:31 -05:00
Jon Evans 111fa99f9f PNS: Use last-segment posture optimization always
Also when auto-posture is enabled, don't flutter
until area threshold has been met.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/6935
2021-01-07 20:12:31 -05:00
Jeff Young 3fd128a75b Performance enhancements. 2021-01-08 00:46:55 +00:00
Jon Evans 5c22ffe422 Don't try to load a nonexistent layer setting
Fixes https://gitlab.com/kicad/code/kicad/-/issues/6998
2021-01-07 19:09:54 -05:00
jean-pierre charras bf332b3189 Fix minor compil warnings 2021-01-07 20:55:24 +01:00
Jeff Young 01fe3b91e9 Implement locking for graphic shapes.
Fixes https://gitlab.com/kicad/code/kicad/issues/6972
2021-01-07 17:39:18 +00:00
hoijui 6ca9a42251 Removes 3 other instances of a potential encoding problem
Signed-off-by: hoijui <hoijui.quaero@gmail.com>
2021-01-07 17:36:49 +00:00
Jeff Young 8c8516b7b1 Remove formbuild URL from hypertext links.
Also adds a tooltip.

Fixes https://gitlab.com/kicad/code/kicad/issues/6982
2021-01-07 15:12:19 +00:00
Jeff Young e41c06304b Don't show a leading ratline to a NPTH.
Fixes https://gitlab.com/kicad/code/kicad/issues/6960
2021-01-07 12:25:04 +00:00
Jeff Young f702b64b8d Minor improvements to formatting & SNR. 2021-01-07 12:25:04 +00:00
Marek Roszko 84dd78e01d Fix the install location for vcpkg built python modules 2021-01-07 00:08:11 -05:00
Seth Hillbrand 52f822dedb Remember autotrack width setting
Fixes https://gitlab.com/kicad/code/kicad/issues/6971
2021-01-06 20:11:32 -08:00
Jon Evans 0234b7278a PNS: Make DIRECTION_45 North be up everywhere
Fixes https://gitlab.com/kicad/code/kicad/-/issues/6935
2021-01-06 21:47:06 -05:00
Jeff Young ad8136541b Improve layout and terminology of Remove Unused Pads.
Also removes the limitation of removing outside layers for pads.
It's already supported in Pad Properties so it's odd to not support
it here.
2021-01-07 01:27:12 +00:00
Jeff Young f372c8025b Better sizing for some conditional dialogs.
These dialogs don't have growable features but do have conditional
features, so the size is better adjusted automatically by the code
then by the user.
2021-01-07 01:27:12 +00:00
Seth Hillbrand 43e7b1ab6e Set icons for front/back assembly layers 2021-01-06 13:49:00 -08:00
Seth Hillbrand c0f940438a Clarify Flip action
Fixes https://gitlab.com/kicad/code/kicad/issues/6954
2021-01-06 13:02:44 -08:00
Jeff Young 2a088e5c7b Add conversion of circles to zones and enable in footprint editor.
Also rule areas, of course.

Fixes https://gitlab.com/kicad/code/kicad/issues/6966
2021-01-06 17:21:49 +00:00
Jeff Young 70967bfebd Hierarchical menu parents don't get ...'s.
Also moves the Convert menu up a level.  Nested hierarchical menus
should be avoided whenever possible.
2021-01-06 17:21:49 +00:00
Jeff Young 8aeaaf99ef Disable net selector for non-free vias.
Also moves the checkbox up so this relationship is clearer.

Fixes https://gitlab.com/kicad/code/kicad/issues/6967
2021-01-06 15:49:12 +00:00
Jeff Young 366c7096b3 More double- and triple-pointer erradication. 2021-01-06 14:37:38 +00:00
Jeff Young 426536c381 Don't show empty-net synthetic net in Net Inspector.
Also fixes an assert when deleting a net inspector row with no
parent row.

Fixes https://gitlab.com/kicad/code/kicad/issues/6962
2021-01-06 14:27:02 +00:00
Jon Evans 46c4727783 Make MSVC happy again 2021-01-05 20:56:37 -05:00
Michael Kavanagh 2a24886d47 Icons: remove more duplicates 2021-01-06 00:35:20 +00:00
Michael Kavanagh 6fd718fbd8 Icons: replace old with new 2021-01-06 00:35:20 +00:00
Michael Kavanagh 5d9b2d3fea Icons: new filter icon
+ remove icons where they don't make sense.
2021-01-06 00:35:20 +00:00
Michael Kavanagh 54724096ea Icons: consistency between Eeschema and Pcbnew 2021-01-06 00:35:20 +00:00
Seth Hillbrand fd04a176a4 Remove full path from drill report
Leaves just file name in place.  Full paths are considered a security
risk for some

Fixes https://gitlab.com/kicad/code/kicad/issues/6949
2021-01-05 16:22:08 -08:00
Seth Hillbrand 71a93c71f7 Prevent footprint editor snapping to footprint
Inside the footprint editor, we only want snap points from the base
elements

Fixes https://gitlab.com/kicad/code/kicad/issues/6948
2021-01-05 16:08:30 -08:00
Jon Evans e7b047660c PNS: Correctly assemble lines with reversed arcs 2021-01-05 17:57:21 -05:00
Jon Evans feda03f69b PNS: Fix arc orientation when assembling lines with backwards arcs 2021-01-05 17:57:21 -05:00
Jon Evans 7431d5c985 PNS: First pass at updating meander placers for arcs
Fixes https://gitlab.com/kicad/code/kicad/-/issues/6464
2021-01-05 17:57:21 -05:00
Jon Evans 8619086cf2 PNS: re-enable optimization of colinear segs in lines with arcs 2021-01-05 17:57:21 -05:00
Jon Evans 8901e71fc8 PNS: Fix loop removal, make walkaround less broken for arcs 2021-01-05 17:57:21 -05:00
Zoltan Gyarmati 5676117d0b Make small drill marks size configurable via advanced config for both printing and plotting
Fixes https://gitlab.com/kicad/code/kicad/-/issues/1972
2021-01-05 22:37:34 +00:00
Jeff Young 81aa91ce2a Run insideCouryard on all matching footprints, not just the first.
Fixes https://gitlab.com/kicad/code/kicad/issues/6945
2021-01-05 22:22:25 +00:00
Seth Hillbrand 4710b709d9 Only darken, don't hide vias unless requested
Fixes https://gitlab.com/kicad/code/kicad/issues/6912
2021-01-05 14:00:15 -08:00
Jeff Young a9d4d9d7f0 Modify insideArea() to return true for zones only when fully inside.
Intersections is enough for other objects.
This is also a bit of a DRC performance improvement.

Fixes https://gitlab.com/kicad/code/kicad/issues/6934
2021-01-05 21:43:04 +00:00
Jeff Young 02cd8c99cd Better error messages when routing can't be started.
Fixes https://gitlab.com/kicad/code/kicad/issues/6541
2021-01-05 18:47:58 +00:00
Seth Hillbrand b19ccd819e Quiet compile warning 2021-01-05 09:16:38 -08:00
Jeff Young 88d42724e6 Remove diff-pair-gap handling from single-line-router.
We can't really support it until we do min/max/opt shoving and
dragging.

Fixes https://gitlab.com/kicad/code/kicad/issues/6932
2021-01-05 16:54:52 +00:00
Jeff Young d975f2f6aa Commenting and naming for clarity. 2021-01-05 16:54:52 +00:00
Jeff Young a48f0d21f7 More consistency in clearance resolution messages. 2021-01-05 16:54:52 +00:00
Jeff Young f7b20611c1 Enforce hole-to-hole min when placing diffpair vias.
Fixes https://gitlab.com/kicad/code/kicad/issues/6931
2021-01-05 00:26:49 +00:00
Jeff Young 93bd2171ab Formatting. 2021-01-05 00:26:49 +00:00
Michael Kavanagh b40e3a39f5 Minor cleanup. 2021-01-04 23:59:36 +00:00
Jeff Young d24b034cbc Cleanup (and a minor performance improvement). 2021-01-04 22:32:29 +00:00
Jeff Glass 597a74af9a Corrects text of orthogonal dimensions
The 'outisde' position is now 'outside' in all orientations

Fixes https://gitlab.com/kicad/code/kicad/-/issues/5821
2021-01-04 19:53:39 +00:00
Jeff Young 2ea6bc5529 Formatting. 2021-01-04 19:19:55 +00:00
Jeff Young 648c42f643 Show collisions preventing routing from starting.
Also introduces a callback to the infobar so that the view can be
cleaned up when the timer expires.

Fixes https://gitlab.com/kicad/code/kicad/issues/6930
2021-01-04 19:19:55 +00:00
Jeff Young 354d9b4e63 Simplify layer pair indicator icon.
It now just has top layer / bottom layer from the router's layer
pair.  The current layer is visible in the drop-down just to the
left, and the via stuff was confusing anyway.
2021-01-04 19:19:55 +00:00
Jon Evans 5c8927678a Don't link a project to a board more than once
Fixes https://gitlab.com/kicad/code/kicad/-/issues/6929
2021-01-04 13:23:19 -05:00
Michael Kavanagh 76cfd19621 Icons: fix incorrect icon in footprint browser 2021-01-04 01:44:02 +00:00
Jeff Young c09d3b765a Slight improvement to error text for when drill is same size as pad. 2021-01-04 00:03:21 +00:00
Jeff Young 33aa6edb01 Don't run clearance tests on unflashed NPTH pad layers. 2021-01-04 00:03:21 +00:00
Jeff Young d0b82ea26e Show better descriptions of through-hole pads. 2021-01-04 00:03:21 +00:00
Jeff Young 7378c2c3b3 Implement max hole size DRC checks.
Fixes https://gitlab.com/kicad/code/kicad/issues/6893
2021-01-04 00:03:21 +00:00
Jeff Young 71215bcab3 Make sure TH pads get collision layer highlighted.
Also cleans it up to centralise all the decision-making.

Fixes https://gitlab.com/kicad/code/kicad/issues/6925
2021-01-03 21:16:09 +00:00
Jeff Young 491fc2c8f2 Save DXF plot params to file and remove some dead code.
Fixes https://gitlab.com/kicad/code/kicad/issues/6720
2021-01-03 14:22:25 +00:00
jean-pierre charras a1d7a959f7 more fixes and enhancements in DIALOG_EXPORT_STEP. 2021-01-03 11:38:09 +01:00
jean-pierre charras 5db75805bd Step exporter: better values for min distance between 2 points to merge them.
- The default value is 0.01 mm (according to comments and similar to the 3D viewer
 settings that uses 0.02 mm)
- The export dialog  has now 3 values 1 micron, 0.01mm (default) and 0.1 mm
The 0.1 micron option is removed: it makes no sense for a mechanical tolerance.
2021-01-03 11:01:03 +01:00
Jon Evans f01297fedd Convert an annoying message box to an infobar 2021-01-02 22:14:10 -05:00
Michael Kavanagh 154e19b6e7 Icons: use common prefix for small 16x16 2021-01-02 23:16:33 +00:00
Michael Kavanagh 5a3f4f52df Icons: add new icon for Pcbnew 'Special Tools...' 2021-01-02 23:16:33 +00:00
Michael Kavanagh 6d3c1c7716 Icons: remove unused sources/duplicates + rename 2021-01-02 23:16:33 +00:00
Carlo Bramini a06387fafd Fix warning at compile time 2021-01-02 22:42:16 +00:00
Jeff Young f691828c8f Nullptr safety.
Fixes https://gitlab.com/kicad/code/kicad/issues/6862
2021-01-02 22:26:12 +00:00
Jon Evans 7e58f1aa9f Fix display of pads in high contrast mode
Fixes https://gitlab.com/kicad/code/kicad/-/issues/6912
2021-01-02 14:16:17 -05:00
Jeff Young 8b849b1c49 Fix several bugs in hull push-back with vias.
1) take hole plating thickness into account
2) build hulls specifically for via so pushing back to the hull doesn't
have to try and figure out how much extra to push back for the via
and/or hole
3) clear MK_HOLE flags when colliding with the pad itself so that we
don't get stuck in HOLE mode
4) move flag setting/clearing to updateNearest() so that it will keep
track of the state of the nearest collision

Fixes https://gitlab.com/kicad/code/kicad/issues/6913
2021-01-02 19:14:44 +00:00
Jeff Young 13094fdc28 Formatting. 2021-01-02 18:38:17 +00:00
Jeff Young 85e42890c4 Distinction between via and via hole probably not useful.
Fixes https://gitlab.com/kicad/code/kicad/issues/6913
2021-01-02 16:41:09 +00:00
Jeff Young 068af7d328 When routing don't give NPTH holes a copper clearance.
Fixes https://gitlab.com/kicad/code/kicad/issues/6903
2021-01-02 16:33:51 +00:00
Jeff Young b5e7611696 Don't cross-pollute CONSTRAINTs.
If you want the HOLE_CLEARANCE, then ask for it.
2021-01-02 16:33:51 +00:00
Jon Evans eba7cb222c PNS: Fix initial posture guess for pads 2021-01-02 10:32:15 -05:00
Jeff Young 6b6694f55f Fix typo.
Fixes https://gitlab.com/kicad/code/kicad/issues/6913
2021-01-02 15:04:30 +00:00
Jeff Young 42c114f6ed Record status of via dragging in Walkaround mode.
Fixes https://gitlab.com/kicad/code/kicad/issues/3967
2021-01-02 00:31:02 +00:00
Jeff Young 419d8dcd6f Minor cleanup. 2021-01-01 23:42:44 +00:00
Jeff Young 8a049cf290 Make sure bounding boxes get cached on rule areas.
Fixes https://gitlab.com/kicad/code/kicad/issues/6898
2021-01-01 23:17:49 +00:00
Jeff Young 018c17399d SNR. 2021-01-01 23:17:49 +00:00
Jeff Young 8ee72853fb Be more targetted on when we load DRC Rules for better performance. 2021-01-01 23:17:49 +00:00
Seth Hillbrand a69a4be853 Fix build error with icon names 2021-01-01 13:13:33 -08:00
Seth Hillbrand 72c27b2e33 Make expand selection stop at vias
During the first expansion, we are supposed to stop at vias and branches
(where three track ends connect).  This needs to account for the number
of vias and tracks not just tracks
2021-01-01 09:31:44 -08:00
Jeff Young fc1b0ec11f Improve feedback when routing in highlight collisions mode.
In particular, when Allow DRC violations is NOT turned on and we
bump in to an obstacle.
2021-01-01 17:25:37 +00:00
Seth Hillbrand 8de9cff4e0 Change environmental variables to human-readable
Versions specific variables that may point to objects that change
through versions, allowing multiple KiCad versions to operate correctly
(even on MSW) on the same machine.
2021-01-01 16:20:35 +00:00
jean-pierre charras 6a81113c2d Better comments in files related to my previous commit. 2021-01-01 17:09:32 +01:00
jean-pierre charras 93e186f53e SelectFootprintFromLibTree(): fix a issue similar to commit 27d47743.
Force immediate deletion of the APP_PROGRESS_DIALOG (do not use Destroy() )
because on Windows, APP_PROGRESS_DIALOG has some side effects on the event loop
manager. A side effect is the call of ShowModal() or ShowQuasiModal of a dialog
following the use of a APP_PROGRESS_DIALOG (if not deleted) has a broken behavior
(incorrect modal/quasi modal behavior).
2021-01-01 15:59:15 +01:00
Seth Hillbrand f8f34982c0 Escape PCB text
Also keep a fail-safe for unescaping strings that are not previously
escaped

Fixes https://gitlab.com/kicad/code/kicad/issues/6901
2020-12-31 17:17:27 -08:00
Jeff Young 3ba17e0a16 Formatting. 2021-01-01 01:02:06 +00:00
Jeff Young ecc0e861d3 Implement hole clearance and hole-to-hole clearance in router.
Fixes https://gitlab.com/kicad/code/kicad/issues/6882
2021-01-01 00:31:36 +00:00
Jeff Young 5d8e6020d1 Improve clarity. 2021-01-01 00:31:36 +00:00
Jeff Young 0e3c9de684 Formatting. 2021-01-01 00:31:36 +00:00
Jeff Young e060ee2a53 Factor in all clearance types when asking for worst clearance. 2021-01-01 00:31:36 +00:00
Jeff Young 1b93663627 Formatting. 2021-01-01 00:31:36 +00:00
Jon Evans 9a0f685a75 PNS: Consider arcs when searching for lines between joints 2020-12-31 13:05:43 -05:00
Jon Evans 73248ab219 PNS: correct initial segment direction for posture solver 2020-12-31 13:05:43 -05:00
jean-pierre charras 381aabdd2a PCB_TARGET: add missing GetMsgPanelInfo() virtual function. 2020-12-31 15:46:58 +01:00
jean-pierre charras a6a2dae480 Footprint editor: ensure the pad editor is closed before load a new footprint.
When editing a new footprint from the board editor, if the Footprint editor has the pad editor
open, there is a risk of crash when replacing the footprint in edit.

Fixes #6892
https://gitlab.com/kicad/code/kicad/issues/6892
2020-12-31 10:53:14 +01:00
Seth Hillbrand 82e728dbf6 Remove drawing of annular rings in high contrast
High contrast should not show the annular rings from other layers.  Once
the ring is removed, we hide the annular when not focused on a flashed
layer

Fixes https://gitlab.com/kicad/code/kicad/issues/6896
2020-12-30 17:38:30 -08:00
Jon Evans 60fd7fdbb2 Fix comment 2020-12-30 18:52:56 -05:00
Jon Evans 510db66f0e PNS: Fix rollback for arc traces
PNS: Update posture solver after rollback
2020-12-30 18:23:24 -05:00
Jon Evans 6105ac50da ADDED: Default hotkey of CTRL+/ for switch corner rounding 2020-12-30 18:23:24 -05:00
Jon Evans b5b64a55ad PNS: Only run optimization if lastNode is valid 2020-12-30 18:23:24 -05:00
Jon Evans 79502a0d88 PNS: A new approach to arc placement
Fixes https://gitlab.com/kicad/code/kicad/-/issues/6334
2020-12-30 18:23:24 -05:00
Allan Nordhøy 8d81abb57a Consistent use of spaces in strings. 2020-12-30 22:57:50 +00:00
Seth Hillbrand 5a3e5781bf Allow polygon drawing on edge cuts and courtyard
Prevents line splitting behavior needed in v5 when drawing polygons on
courtyards. Also provide property dialog with some smarts to handle
special layers

Fixes https://gitlab.com/kicad/code/kicad/issues/6900
2020-12-30 14:10:30 -08:00
Roberto Fernandez Bautista b168b74919 CADSTAR Archive Importer: Fix position of multiline text with NO_ALIGNMENT in CADSTAR 2020-12-30 18:53:43 +00:00
Roberto Fernandez Bautista ffee24be63 CADSTAR PCB Archive Importer: Rewrite loadBoardStackup routine
Uses BOARD_STACKUP::BuildDefaultStackupList instead of trying to build the stackup from scratch
Fixes several asserts / incorrect stackups in some older boards
2020-12-30 18:53:43 +00:00
Roberto Fernandez Bautista a2cbbb963e CADSTAR PCB Archive Loader: Correctly handle Dimension text
Do not parse fields in dimension text to allow splitting it into prefix and suffix
2020-12-30 18:53:43 +00:00
Roberto Fernandez Bautista f74a86b7e1 Add missing dimension objects to BOARD::Move collector
Fixes import of orthogonal dimensions
2020-12-30 18:53:43 +00:00
Roberto Fernandez Bautista 45b621a3d1 CADSTAR PCB Archive Importer: Fix Import of Linear Dimensions (Angular dimensions not supported) 2020-12-30 18:53:43 +00:00
Roberto Fernandez Bautista fbac766254 CADSTAR PCB Archive Importer: Refactor layer mapping and fix assert
An assert was being fired to due to incorrect BOARD_STACKUP_ITEM_TYPE on some boards
2020-12-30 18:53:43 +00:00
Roberto Fernandez Bautista 0a1045300b CADSTAR PCB Archive Importer: Fix loading of net class settings 2020-12-30 18:53:43 +00:00
Roberto Fernandez Bautista cde433c82e CADSTAR PCB Archive Importer: Transfer Project to allow importing of Text Variables 2020-12-30 18:53:43 +00:00
Roberto Fernandez Bautista 03a23db4f7 CADSTAR PCB Archive Importer: Load PCB Text Variables to KiCad project 2020-12-30 18:53:42 +00:00
Roberto Fernandez Bautista 9ed4780fec CADSTAR Archive Importer: Change architecture to Parse CADSTAR fields and store them in a static map
Architecture of the parser changed to have a shared PARSER_CONTEXT between all the individual parsers.
Parses CADSTAR fields such as <@DESIGN_TITLE@> or <@SHEET_NUMBER@> and replaces with an equivalent KiCad Text Variable.
2020-12-30 18:53:42 +00:00
Jon Evans bf9501e1d4 PNS: Fix auto-posture when placing via 2020-12-29 21:14:36 -05:00
Jon Evans 689da3794d PNS: Merge co-linear segments during placement 2020-12-29 21:14:36 -05:00
Jon Evans 4c0aa6db1a PNS: Disable smart pads optimization for vias
There is not much point with the current algorithm and it
breaks auto-posture.
2020-12-29 21:14:36 -05:00
PJM 94bf88d820 Pcbnew: Prevent selections jumping when dragged after flip or rotate
CHANGED: If you flip or rotate an item or selection of items, move
the mouse, press 'M' and start moving the mouse, the selection jumps
to where the mouse is.  This MR fixes that so it doesn't happen.

This bug was reported against the 5.1.x branch but also affects the
5.99 branch.  This MR is for the 5.99 branch.

Fixes https://gitlab.com/kicad/code/kicad/issues/4069
2020-12-30 01:02:04 +00:00
Jon Evans 0b0af2f545 Fix layer ordering of pad net names
Fixes https://gitlab.com/kicad/code/kicad/-/issues/6881
2020-12-29 18:31:44 -05:00
Jon Evans a637f310d0 Store zone display mode in project local settings
Fixes https://gitlab.com/kicad/code/kicad/-/issues/6886
2020-12-29 17:19:01 -05:00
Jon Evans 23f81412c3 Ensure connectivity is updated before filling zones
Fixes https://gitlab.com/kicad/code/kicad/-/issues/6844
(maybe)
2020-12-29 14:58:45 -05:00
Jon Evans 241823647b DRC: Fix a minor memory leak 2020-12-29 14:58:45 -05:00