Commit Graph

12338 Commits

Author SHA1 Message Date
Jeff Young f0a26e4be0 Attempt to fix long-click issue (possibly just a typo).
Fixes https://gitlab.com/kicad/code/kicad/issues/9124
2021-09-09 12:20:30 +01:00
Jeff Young f013dbc7c4 More uniform handling of status fonts.
Fixes https://gitlab.com/kicad/code/kicad/issues/8608
2021-09-08 21:34:22 +01:00
Wayne Stambaugh 3b16c38756 Coverity issue fixes.
Fix Coverity issues 157138, 338547, and 338716.
2021-09-08 14:51:27 -04:00
jean-pierre charras 30c001265b pcbnew, undo_redo.cpp: fix a logical bug that can hang in rare cases. 2021-09-08 13:06:55 +02:00
Seth Hillbrand c8b2e69332 Check if selection is primary tool
Previously, we were checking if the selection tool was the top of the
stack but this ignored many other "secondary" tools that might be
running such as the point editor.  These still allow the selection tool
to handle events such as clicks.  This change allows the selection tool
to handle clicks when it is the primary tool on the stack rather than
the top

Fixes https://gitlab.com/kicad/code/kicad/issues/9110
2021-09-07 10:42:01 -07:00
Wayne Stambaugh 4ee0b28ffc Coverity issue fixes.
Fix Coverity issues 338623, 338716, and 338717.
2021-09-07 13:38:56 -04:00
Seth Hillbrand c816168e42 Fix crash when drawing item
When drawing before commit, the items do not have a board and therefore
no BDS.  In these cases, take a decent default until committed
2021-09-07 09:08:44 -07:00
Jeff Young 9cf7c7800b Use same text positioning algorithm in LibEdit and Eeschema.
Also fixes some uninitialized variables in PCB painter.

Fixes https://gitlab.com/kicad/code/kicad/issues/8947
2021-09-07 12:33:06 +01:00
Jeff Young 2ac03e2cdb Change Loss Tg to Loss Tan.
We'll need Tg in the future for glass transition temp.

Fixes https://gitlab.com/kicad/code/kicad/issues/4734
2021-09-07 10:49:17 +01:00
Jeff Young 1792a985a7 Use board's maxError value when possible. 2021-09-07 00:14:18 +01:00
Michael Kavanagh 0e3c79d3b2 Remove inappropriate icons
Icons should be used sparingly to draw attention to the most used actions
2021-09-06 21:23:52 +00:00
Seth Hillbrand 0f38a35531 Be sure to stop the timer when triggering d-click
Some mice apparently trigger double-click without triggering a click, so
stop the timer when we receive this event

Fixes https://gitlab.com/kicad/code/kicad/issues/9106
2021-09-06 12:27:31 -07:00
Seth Hillbrand 343dbf0f5b Change default 45° hotkey to shift-space
This requires enabling the space key to be bound with shift, which was
disabled based on an overbroad limit of only allowing shift to be mapped
with letter keys
2021-09-06 12:18:29 -07:00
jean-pierre charras 36048fa436 OPENGL_GAL::DrawArcSegment(): use a better number of segm to approximate the arc.
Previously, the count of segments used a magic number optimized for Pcbnew.
This is not good, and does not work well on Gerbview.
The count uses now a max error acceptable is approximation (5 microns in Gerbview and Pcbnew).
Fixes #9101
https://gitlab.com/kicad/code/kicad/issues/9101
2021-09-06 16:36:47 +02:00
Seth Hillbrand 56ccaf6482 Constrain move tool when set
Move tool works slightly differently from other tools when figuring out
new locations.  This uses the global 45 enable flag to set proper item
locations when the user is requesting a 45° constraint on movement
2021-09-06 07:05:25 -07:00
Seth Hillbrand 86725db758 Ensure doInteractivePlacement enforces snap option
Fixes https://gitlab.com/kicad/code/kicad/issues/9105
2021-09-06 06:36:33 -07:00
jean-pierre charras d2bff137ee .kicad_pcb file: fix incorrect keyword stored for some (not all) PAD properties.
( a copy-paste error? )
Fixes #9102
https://gitlab.com/kicad/code/kicad/issues/9102
2021-09-06 09:15:18 +02:00
Seth Hillbrand 240c3b75c4 Move selection disambiguation to long-click
This standardizes selection tools in SELECTION_TOOL class to be able to
handle a long-click as asking for a non-heuristic disambiguation menu.

Fixes https://gitlab.com/kicad/code/kicad/issues/8490
2021-09-05 13:42:51 -07:00
Seth Hillbrand 092cdc0bb5 Move 45° limit to hotkey
This assigns the "Tab" key to a general pcbnew 45° limitation.  Limit
can be enabled/disabled using context menu as well.

Removed the user preference for 45° limitation on graphic lines as that
is overlapping with the general limitation, which is not an editing
preference so much as a temporary adjustment to tool action.

Related to https://gitlab.com/kicad/code/kicad/-/issues/8490
2021-09-05 13:42:51 -07:00
Jeff Young 69a31f41b8 Fix typo.
Last commit added the correct code, but failed to delete the buggy code.

Fixes https://gitlab.com/kicad/code/kicad/issues/9090
2021-09-05 21:23:55 +01:00
Jeff Young 921b6c826b Fix another disappearing string on Mac. 2021-09-05 21:23:55 +01:00
Marek Roszko 36bcff34f7 Label the three track and via properties for UX 2021-09-05 08:54:45 -04:00
Jeff Young 59c15842f8 Exclude formatting chars from text width approximation.
Fixes https://gitlab.com/kicad/code/kicad/issues/9080
2021-09-04 22:09:32 +01:00
Jeff Young 6818539f6d Repair is-selected logic in various global editors.
Fixes https://gitlab.com/kicad/code/kicad/issues/9090
2021-09-04 18:10:25 +01:00
Jeff Young a397e85589 Implement PTH/NPTH/courtyard collision tests.
Fixes https://gitlab.com/kicad/code/kicad/issues/9081
2021-09-04 00:16:26 +01:00
jean-pierre charras e2a1e5d4a1 DIALOG_EXPORT_STEP: fix regression: missing default filename initilization 2021-09-03 16:22:32 +02:00
Seth Hillbrand e03257b55f Allow close placement of stitching vias
When placing a stitching via for a bypass capacitor, it is common to
place it close to the relevant pad.  If the via does not have the
correct net, this will violate DRC and be prevented.

Checking for zone-based net assignments allows the workflow to proceed
2021-09-01 15:52:35 -07:00
Seth Hillbrand f14e5b61b3 Ensure newly added pads are counted
When adding a new footprint, don't delete the single-pad nets until you
check for the net being added as part of the footprint

Fixes https://gitlab.com/kicad/code/kicad/issues/9053
2021-09-01 15:12:28 -07:00
Seth Hillbrand e0011fcd93 Display a nice error message instead of asserting
When we mess up, it will be nice to not lose users' data.  This requests
a bug report if the netlist parsing breaks instead of throwing
2021-09-01 12:02:06 -07:00
Seth Hillbrand 8a305eec32 Remove broken RefDesStringCompare
This function attempted a poor-man's natural compare but it assumed
specific structure of the string.  This broke for strings with
numberings that looked like decimals.

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

Fixes https://gitlab.com/kicad/code/kicad/issues/9067
2021-09-01 11:48:01 -07:00
Jeff Young 04fa678265 Impleent persistence for no-connect pad setting.
Also moves rotation increment from a display property to and edit
property.

(Both issues were discovered while working on a 7.0 feature.)
2021-09-01 00:00:12 +01:00
Jeff Young 2cdd3c9ebf Work-around incorrect spacing (and order) of buttons on Mac. 2021-08-31 22:39:25 +01:00
jean-pierre charras 8fa04eeb75 FP_TEXT::TransformShapeWithClearanceToPolygon(): fix broken rotation of the shape.
Only the FP_TEXT shape must be rotated, not the full buffer used for storage.
Fixes #9057
https://gitlab.com/kicad/code/kicad/issues/9057
2021-08-31 17:04:03 +02:00
Jeff Young b5a3385ea9 Overhaul file locking system.
See bug report for details.

Fixes https://gitlab.com/kicad/code/kicad/issues/8919
2021-08-31 15:04:31 +01:00
jean-pierre charras 6c7c9ca50c Fix compil warnings (UNDO_REDO::GROUP renamed to UNDO_REDO::REGROUP to fix
collision name with a widows header on msys2)
2021-08-28 11:44:01 +02:00
qu1ck 0f7c0e3872 PCM implementation 2021-08-27 21:11:47 +00:00
qu1ck 78ab69027d Add 3rdparty/plugins to plugin search 2021-08-27 21:11:47 +00:00
Mike Williams 10247c268e Pcbnew: implement Find Next
Moves all of the find dialog control out of the selection tool similar
to the schematic editor. Dialog is also non-modal now to match the
schematic editor.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/8966
2021-08-27 18:15:36 +00:00
Mike Williams 0b2e66d3b7 Infobar: Don't use animations on Windows/GTK
Seems to cause issues on Windows where the animation locks the screen.
Doesn't effect Linux, possibly because wxWidgets uses a native GTK
infobar that doesn't animate anyway.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/8987
2021-08-27 17:38:16 +00:00
Jeff Young 436ad0ede7 Add missing token to DRC rule parser.
Fixes https://gitlab.com/kicad/code/kicad/issues/9041
2021-08-27 12:49:07 +01:00
Mike Williams 43194dff72 Pcbnew: don't fallback to software rendering after changing footprint
Fixes https://gitlab.com/kicad/code/kicad/-/issues/8915
2021-08-26 18:00:33 +00:00
jean-pierre charras ee5f9034f7 pcb parser: ensure the parser is reinitialized before parsing a new fp file
Because the same parser is used to read all footprint files of a library,
the parser must be reinitialized (internal variable cleared) before reading
a new file, otherwise the previous parser state is applied to the next file.
Fixes #7627
https://gitlab.com/kicad/code/kicad/issues/7627
2021-08-26 19:38:20 +02:00
Jeff Young f4905cb1ae Cherry-pick fix from 7.0 branch back to master.
Fixes https://gitlab.com/kicad/code/kicad/issues/9005
2021-08-25 20:14:11 +01:00
Jon Evans 5f2d238c93 Work around GTK issue with wxSearchCtrl
Also remove redundant icons in LIB_TREE (recent GTK
search controls have an icon built-in)

Fixes https://gitlab.com/kicad/code/kicad/-/issues/9019
2021-08-24 23:04:28 -04:00
Jeff Young 2b3477ca28 Handle RGBA conversion to hexadecimal format for wxWidgets 3.0 2021-08-25 02:40:17 +01:00
Jeff Young f926eab76d Cherry-pick Footprint Properties dialog fix from 7.0 branch.
Fixes https://gitlab.com/kicad/code/kicad/issues/9021
2021-08-25 02:40:17 +01:00
Jon Evans a7bd621419 Remove checkboxes that can't be unchecked (part 1)
The checkboxes for copper layers should probably also be removed
but leaving them for now since they direct the user to the right
place to disable copper layers.
2021-08-24 20:29:03 -04:00
Tomasz Wlostowski a03b6f6fc9 router: use tail start point when saving the FIXED_TAIL
fixes: https://gitlab.com/kicad/code/kicad/-/issues/8771
2021-08-25 00:36:34 +02:00
Roberto Fernandez Bautista 4c17b7ab46 WALKAROUND::Route Check if path is empty before stepping
singleStep expects a path with at least one point.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/9020
2021-08-24 20:17:19 +01:00
Jeff Young a02ea1609b A more robust solution to the 3D color opacity issue.
(This also fixes a typo in the previous fix that assigned the opacities
backwards.)
2021-08-24 11:24:25 +01:00
jean-pierre charras a9f092b370 Pcbnew, Printing system: fix broken print of pads on tech layers.
To print pads on tech layers, view layers LAYER_PAD_FR, LAYER_PAD_BK and
LAYER_PADS_TH must be always enabled, and items we do not want print on these layers
must be printed using a invisible color (opacity = 0.0)
2021-08-24 10:27:53 +02:00
Jeff Young e6ca9837a2 Clear numbers from non-numberable pads and don't run DRC on them.
This was also the last straw on the misnamed PAD::GetName() and
PAD::SetName(), which are now PAD::GetNumber() and PAD::SetNumber().

Fixes https://gitlab.com/kicad/code/kicad/issues/9017
2021-08-24 01:03:06 +01:00
Jeff Young baab2e6119 Attempt to fix SWIG issue. 2021-08-23 22:04:31 +01:00
Jeff Young 21f2b235ce Rework stackup colors a bit to support opacity for 3D viewer.
Fixes https://gitlab.com/kicad/code/kicad/issues/9012
2021-08-23 20:00:17 +01:00
Jeff Young fec34e8dd8 Get rid of an extraneous layer parameter.
Also adds a bit of nullptr safety.
2021-08-23 20:00:17 +01:00
Jeff Young 6f5e602df9 Fix solder mask plotting issues.
1) Don't plot all footprint texts for each footprint graphic item.

2) Correctly handle multi-layer zones.
2021-08-23 20:00:17 +01:00
Jeff Young 9770962ab4 Fix logic bug in rule processing.
Fixes https://gitlab.com/kicad/code/kicad/issues/9011
2021-08-22 20:16:58 +01:00
Jeff Young 1fa5e43597 Fix some dodgy logic in clearance overrides. 2021-08-22 03:24:51 +01:00
Jeff Young b9ffe2aca8 Don't capture stack-defined lambdas by reference. 2021-08-21 22:49:57 +01:00
Seth Hillbrand 3b3cb88ad9 Remove shadowed variable in lambda 2021-08-21 14:01:20 -07:00
Jeff Young eb85af3366 Don't capture references to local stack variables. 2021-08-21 21:40:17 +01:00
Jeff Young 1fd555ce0e Added code to map footprint lib nicknames when exporting.
This is particularly useful when you import (for instance) an
Altium board and then save the footprints out to a new library.

Fixes https://gitlab.com/kicad/code/kicad/issues/6345
2021-08-21 19:00:59 +01:00
Jon Evans 3efa391eb2 Attempt to prevent control hiding problems on GTK
Fixes https://gitlab.com/kicad/code/kicad/-/issues/8902
2021-08-21 13:37:07 -04:00
Jon Evans 09ea630d8e Don't log a potentially invalidated item
Fixes https://gitlab.com/kicad/code/kicad/-/issues/9006
2021-08-21 12:24:41 -04:00
Jon Evans 0814219513 Clean up some handling of project files in standalone
Add control of project creation to Eeschema; change defaults
to enable project creation in both programs.  Properly set
project on newly-created schematics so "Save As" doesn't
get triggered repeatedly.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/9000
2021-08-21 12:09:21 -04:00
Jeff Young 3e57700b21 Process rules in "natural" order using overrides.
(We used to process in reverse order with first-match-wins, but
that doesn't allow min, max and opt to come from different rules.)

Fixes https://gitlab.com/kicad/code/kicad/issues/9004
2021-08-21 16:43:11 +01:00
Jeff Young 048e13f423 Defer DRC rule function eval to make use of short-circuit bools.
The lemon parser doesn't lend itself to short-circuiting booleans,
but if we defer processing until we fetch the second value when
processing the TR_OP_BOOLEAN opcode then we get to piggy-back on
C++'s boolean short-circuiting.
2021-08-21 16:43:11 +01:00
Jeff Young 1e23ce1c95 Pull some fixes back from 7.0.
1) An earlier 6.0 fix to apply pad clearance overrides to NPTH pads
got broken, so this replaces it.

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

3) Fixes a bug where board minimum enforcement over a local override
didn't get the right message text.
2021-08-21 16:43:11 +01:00
jean-pierre charras 71b7816de5 DIALOG_GEN_FOOTPRINT_POSITION and dialogs print: minor enhancements:
Gen footprint: 2 options are now stored during a session.
Gerbview and Pcbnew dialogs print: avoid useless large size of right panel.
2021-08-21 11:06:00 +02:00
Seth Hillbrand 7ea4d4da85 Fix errant tabs 2021-08-20 17:24:05 -07:00
Dominik Sliwa d9c7fdc28e Pcbnew add SMD only option to component placement export
Add option to only use footprints flagged as SMD
when creating a componenet placement files.

Signed-off-by: Dominik Sliwa <dominik@sliwa.io>
2021-08-20 17:24:05 -07:00
Seth Hillbrand db5ce824af Use wildcard routine for extension matching
Move STEP export dialog wildcard to extension matching
2021-08-20 17:24:05 -07:00
Seth Hillbrand 4cd9278041 Remove most wxFilepicker wildcards from translations
This prevents translation errors from preventing user actions such as
opening the correct file
2021-08-20 12:56:47 -07:00
Jon Evans c80efb0f98 Fix save/load of appearance panel width on show/hide
Fixes https://gitlab.com/kicad/code/kicad/-/issues/8982
2021-08-19 21:15:14 -04:00
Wayne Stambaugh 46b959c3e3 Move plotter headers into include folder. 2021-08-18 16:38:31 -04:00
jean-pierre charras 5574682d44 Fp editor: minor fixes:
- do not show the paste special context menu: it has no sense in this editor
- Paste command: fix incorrect rotation of pasted FP texts
2021-08-18 17:43:10 +02:00
jean-pierre charras 82849eda42 Fp editor: fix some crashes when trying to duplicate referece or value texts.
Fixes #8990
https://gitlab.com/kicad/code/kicad/issues/8990
2021-08-18 15:34:32 +02:00
Wayne Stambaugh 6427197962 Remove duplicate headers in plot and associated code. 2021-08-17 15:41:25 -04:00
Wayne Stambaugh 9ae9301b46 Fix shadowed variable. 2021-08-17 12:54:14 -04:00
Jeff Young 8b5f393804 DRC bug fixes and debugging improvements.
1) Don't wait for UpdateUserInterface to build the (global) list of
layer names.

2) Report clearance resolution between a silk layer and a mask layer.

3) When writing DRC reports, include info about the violating rule.

4) Report "no relevant layers" if we fail to find anything to write
a clearance resolution report about.

Fixes https://gitlab.com/kicad/code/kicad/issues/8963
2021-08-17 15:41:12 +01:00
Jeff Young a133853a4f Fix typo in DRC error link. 2021-08-16 20:05:35 +01:00
jean-pierre charras ca42f31bb5 Pcbnew, update footprint: fix loss of net info in some cases.
When pads having a similar name but some were not on a copper layer
(aperture pads) the net info update from old footprint to the new footprint
was incorrectly transferred. Now, only pads on copper layers are considered.
Fixes #8979
https://gitlab.com/kicad/code/kicad/issues/8979
2021-08-16 20:52:49 +02:00
Jeff Young da3fda8dee Fix typo in non-copper zone fill pattern, and cleanup spacing.
Also makes better use of UNIT_BINDER and fixes some other naming
inconsistencies with copper zone dialog.
2021-08-16 13:24:12 +01:00
Jeff Young 1a252b4f96 Add a compile error for ill-defined rules, and more performance.
Also adds const-safety to GetBoard().
2021-08-16 12:14:17 +01:00
jean-pierre charras f0c957a2e2 Enable LAYER_MOD_TEXT_FR layer in fp editor as it should.
It also fixes a crash when changing visibility of other fp texts..
2021-08-16 09:30:54 +02:00
Jeff Young f34e280c81 Garden-variety 100X performance improvement.
Adds a compile mode for layer strings.
2021-08-15 22:24:51 +01:00
Jeff Young eaccbce48b Fix logic errors in progress reporting in a couple of DRC providers. 2021-08-15 22:24:44 +01:00
Jeff Young 1ec70d30af Cherry-pick some 7.0 Clearance Resolution improvements.
6.0 will be in the field for a long time, and the better the debugging
tools we have available the less costly it will be to maintain.

Fixes https://gitlab.com/kicad/code/kicad/issues/8961
2021-08-15 19:03:58 +01:00
Jeff Young 48521774cd Formatting. 2021-08-14 21:18:11 +01:00
Jeff Young 41619ebbe2 Decouple PROGRESS_REPORTER interface from implementations. 2021-08-14 21:05:49 +01:00
jean-pierre charras 8ac5e318fb Ugly hack to avoid crash on msys2 when running Pcbnew after running Eeschema+its Python console
The main bug still exists, but at least Kicad does not crash.
2021-08-14 21:08:56 +02:00
Jon Evans 8eba0b356b Fix issues calling SaveBoard on board loaded from PcbNew frame
KiCad cannot have more than one board/project open, so disallow
the Python APIs for loading additional boards when the frame is
present.  Inherit the SETTINGS_MANAGER from the frame when present
instead of creating a new one that won't have the loaded project.
2021-08-14 09:18:21 -04:00
Jeff Young bff247b08a Hook up 3D viewer colors to board stackup.
Fixes https://gitlab.com/kicad/code/kicad/issues/5173
2021-08-14 14:00:17 +01:00
Jeff Young 05fb582304 Expose missing annular ring properties in Track & Via Properties. 2021-08-14 10:49:42 +01:00
jean-pierre charras 3d61c8b0c4 PANEL_SETUP_BOARD_STACKUP: Do not limit the EpsilonR mantissa to 1 or 2 digits.
Fixes #8956
https://gitlab.com/kicad/code/kicad/issues/8956
2021-08-14 09:42:05 +02:00
Jon Evans 80355f04a9 Fix SHAPE_LINE_CHAIN::Replace at end of chain 2021-08-13 16:59:45 -04:00
Jeff Young e5586fb974 Accept legacy hole token as well as new hole_size. 2021-08-13 21:28:11 +01:00
Jeff Young d34e9e8946 Code safety. 2021-08-13 21:28:11 +01:00
Roberto Fernandez Bautista 35d5223825 Keep track of existing/excluded references when re-annotating the PCB
Fixes https://gitlab.com/kicad/code/kicad/-/issues/8211
2021-08-13 19:09:37 +01:00
Roberto Fernandez Bautista aa67abb681 PNS::NODE Use PointCount instead of calculating segment index manually
There is no need to manually calculate the segment index - we know
that the last point that was added is the start point of the segment.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/8945
2021-08-13 19:09:33 +01:00