Commit Graph

12986 Commits

Author SHA1 Message Date
jean-pierre charras 5d2dc0b50e Fix a few (minor) issues:
- Make DIALOG_SHIM::SetPosition working)
- rename PCB_BASE_FRAME::SelectLayer() to PCB_BASE_FRAME::SelectOneLayer()
- PCB_BASE_FRAME::SelectOneLayer(): make dismiss dialog by escape key working.
Fixes #7578
https://gitlab.com/kicad/code/kicad/issues/7578
2021-02-17 20:56:43 +01:00
Jeff Young 34c2028e7b Assign via net before running DRC checks.
Fixes https://gitlab.com/kicad/code/kicad/issues/7579
2021-02-17 19:39:56 +00:00
Jeff Young 0c2870c65f Fix missing check against DELETED_BOARD_ITEM::GetInstance().
Fixes https://gitlab.com/kicad/code/kicad/issues/7575
2021-02-17 19:39:56 +00:00
Jeff Young b6a7981e62 Write changes back to grid after using file explorer.
Fixes https://gitlab.com/kicad/code/kicad/issues/7361
2021-02-17 14:08:53 +00:00
Jeff Young d66de5bb35 Exclude footprints and groups from VIA_PLACER DRC testing.
(Their children need to get tested, but not the parent objects
themselves.)

Fixes https://gitlab.com/kicad/code/kicad/issues/7569
2021-02-17 14:08:53 +00:00
Jeff Young cc11c8d45f Fix change in preference panel name.
Fixes https://gitlab.com/kicad/code/kicad/issues/7563
2021-02-17 14:08:53 +00:00
Jeff Young 6f9ebcfdb5 Make sure a pad has a hole before running hole test on it.
Fixes https://gitlab.com/kicad/code/kicad/issues/7567
2021-02-17 14:08:53 +00:00
Marek Roszko b609c7dcd6 Kick the osx specific path helpers into PATHS 2021-02-16 23:29:26 -05:00
Jon Evans ba6aa3e034 Pcbnew: allow multiple selection of footprint text
With the selection filter and other improvements, we no longer
need to use this workaround to prevent accidental selections.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/7527
2021-02-16 22:40:23 -05:00
Jon Evans 34c2bbfe51 Don't rebuild the whole nets grid on show/hide
Besides being slow, this causes the scroll position
of the grid to be lost.
2021-02-16 22:31:09 -05:00
Jon Evans 0198d5a3bd PNS: don't lose track of pad offset when dragging footprints
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7500
2021-02-16 19:47:52 -05:00
Seth Hillbrand dbbe9cdee4 Hide infobar for save when saving 2021-02-16 15:54:43 -08:00
Jeff Young 2a7e60960a Use standard mirror icons & terminology.
Also use standard group icons.

Also put both (and rotate commands) in toolbar.

Fixes https://gitlab.com/kicad/code/kicad/issues/7504
2021-02-16 21:11:36 +00:00
James Jackson dd7030a28f Keepout and graphic selection filters in footprint editor behave as per PCB editor
Fixes #7547

Fixes https://gitlab.com/kicad/code/kicad/issues/7545
2021-02-16 20:49:14 +00:00
Seth Hillbrand fb5cd22cd0 Honor locking in cleanup ops
Assume that the user has locked tracks/vias for a reason and would very
much like them to remain in place, regardless of the operation

Fixes https://gitlab.com/kicad/code/kicad/issues/7562
2021-02-16 10:20:45 -08:00
Jeff Young 015c4d5779 Don't force disallow tests to a particular layer.
Fixes https://gitlab.com/kicad/code/kicad/issues/7552
2021-02-16 16:24:37 +00:00
Jon Evans 14cba9723f Allow selection filtering in global Pcbnew edits also 2021-02-15 22:14:28 -05:00
Seth Hillbrand 9212197c26 Grammar 2021-02-15 15:18:13 -08:00
Jeff Young 199ef61cdc A footprint isn't "inside" itself.
Fixes https://gitlab.com/kicad/code/kicad/issues/7549
2021-02-15 22:52:12 +00:00
Seth Hillbrand de7d9ef874 Fix tabs 2021-02-15 08:09:20 -08:00
Jeff Young cf42d692bf Remove some dead code. A little bit of comment cleanup as well. 2021-02-15 14:13:43 +00:00
Jeff Young b08862e445 Fix group undo/redo bugs.
1) Don't remove items from group when the group is being deleted as
well.  We need those pointers for undo/redo.
2) Flip the GROUP/UNGROUP undo status when undoing/redoing group and
ungroup actions.
3) Remove PCB_GROUP_T from the rebuild-netlists section.  Nothing
about an item's group/ungrouped status changes its netlisting.
4) Add PCB_PAD_T to the rebuild-netlists section.  It can probably
only happen in the footprint editor where we don't care about
netlisting, but it's conceptually more correct and who knows what
might change in the future....

Fixes https://gitlab.com/kicad/code/kicad/issues/7540
2021-02-15 14:13:43 +00:00
Jeff Young 6ee5476fba Remove misleading help text for now.
Fixes https://gitlab.com/kicad/code/kicad/issues/7536
2021-02-14 23:51:51 +00:00
Jeff Young b7672d3c92 Respece router Allow DRC Violations in free via placer.
Also don't check for collision on non-copper layers, but do check
for hole clearance violations.

Fixes https://gitlab.com/kicad/code/kicad/issues/7532
2021-02-14 22:32:12 +00:00
Jon Evans 1ab17dd2e7 MSVC: don't set python home when running from build dir
This allows you to specify your python home via the
environment and get a working python setup when running
in-place.
2021-02-14 09:34:25 -05:00
Jeff Young 60d4d5b846 Scale down netnames on tracks so overbars fit.
Also fixes a bug where the overbar ignored the color opacity.

Fixes https://gitlab.com/kicad/code/kicad/issues/7524
2021-02-14 12:15:26 +00:00
Mikolaj Wielgus 379c28340f Pcbnew: Do not disable grid snap in copy to clipboard operation
This simple commit makes the Pcbnew copy to clipboard operation snap the
obtained cursor position to grid before the anchors are calculated. This
is also the way the move operation has been apparently working so far.

To be clear, this will not remove all cases where the copy reference
point is not aligned to the grid (see the linked Gitlab issue for
details about the problem). This will still occur for zone outlines that
are not axis-aligned. But such behavior has been so far also present in
the moving operation, so this may be as designed.

Fixes https://gitlab.com/kicad/code/kicad/issues/7507
2021-02-14 01:44:28 +00:00
Seth Hillbrand 55db1aa5f5 Fix minor Fabmaster issue 2021-02-13 16:32:39 -08:00
Jon Evans d98daad835 Fix updating of preset MRU when overwriting presets
Also fix a few minor things about deleting presets

Fixes https://gitlab.com/kicad/code/kicad/-/issues/7473
2021-02-13 11:33:01 -05:00
Jon Evans 00ab36092c Fix margin layer being missing from draw order
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7159
2021-02-13 10:40:09 -05:00
Seth Hillbrand 8c2fe42ef0 More Undo/Redo Cleanup.
Don't need the reference point or container action type.  Clearing this
command signatures to prevent future confusion/use
2021-02-12 11:26:48 -08:00
Seth Hillbrand d244c09680 Cleanup undo/redo
Mirror/Rotate/etc were all just "Change" items in the undo/redo stack.
This removes the old calls
2021-02-12 10:25:14 -08:00
Jon Evans ab34d94f36 Add a less-intrusive validation system to board setup
For some kinds of issues, we want a way to point them out but
we don't need to keep the user from being able to close the
dialog.  A separate Validate button lets the user check for
issues if desired, but these issues are not "fatal" and can
be ignored if the user wishes.
2021-02-11 22:19:46 -05:00
Jon Evans b708fd36ae Add tooltips to netclass setup panel column headers
Change router tooltips to be more straightforward
2021-02-11 20:50:26 -05:00
Seth Hillbrand 10442b98df Unify thickness
The removal of the pcbnew general section was meant for v6 but passed
the deadline.  This removes the duplication of thickness.  We do not
allow the thickness to be different between nominal and stackup, so
keeping separate text fields is unnecesarily confusing to users
2021-02-11 11:28:00 -08:00
Marek Roszko 20ec1fa354 Clear pythonpath and pythonhome vars on msvc like msys2 does 2021-02-10 23:58:58 -05:00
Marek Roszko 39c8922ff6 Block off setting pythonhome and pythonpath wrongly on MSVC 2021-02-10 23:54:35 -05:00
Marek Roszko b21da9672f Adjust py_sethome for the new path 2021-02-10 21:44:33 -05:00
Mikolaj Wielgus 1dc0ef01b3 Fix automatic wire tool in gridless mode
The automatic wire tool was not working in the gridless mode because the
grid snapping on/off logic present in `EE_GRID_HELPER`, based on the
value of `m_enableGrid`, was not taking into account that another check,
but for the global KiCad setting, would be performed in the `Align()`
method, which is inherited from `GRID_HELPER`.

I've modified all tests of `m_enableGrid` value to also take the global
setting into account, and moved checks for it to `Align()` method, as
it's more consistent this way.

I've also removed an override of the `Align()` method in the
`PCB_GRID_HELPER` class, as it was made redundant by my changes.

Fixes https://gitlab.com/kicad/code/kicad/issues/7402
2021-02-10 22:07:49 +00:00
Jeff Young 05ff0fb658 Add flip board view to footprint editor menu.
Fixes https://gitlab.com/kicad/code/kicad/issues/7484
2021-02-10 21:55:14 +00:00
Roberto Fernandez Bautista 19d786852a CADSTAR PCB Archive Loader: Fix loading of zero sized pads
Some CADSTAR designs use zero sized pads because CADSTAR did not allow
arbitrarily assigning pad numbers: they had to be sequential. The
workaround to this was to use zero sized pads. However this causes DRC
errors in KiCad, so we load them just in a mask layer.
2021-02-10 18:49:21 +00:00
Roberto Fernandez Bautista aabe9c063f CADSTAR PCB Archive Loader: Some fixes to design rules
1. Make sure to convert to KiCad units
2. There are some KiCad rules that have no CADSTAR equivalent.
   Make a guess as to what an appropriate rule could be.
2021-02-10 18:49:21 +00:00
Roberto Fernandez Bautista 2d66abdc89 CADSTAR PCB Archive Importer: More improvements to loading of zones
Adds a new function Area() to SHAPE_POLY_SET
2021-02-10 18:49:21 +00:00
Roberto Fernandez Bautista 06c420a2a3 CADSTAR PCB Archive Importer: Improve loading of zones
Load fill state and guess zone priorities from fill state
2021-02-10 18:49:20 +00:00
Roberto Fernandez Bautista 80d8974f87 CADSTAR Archive Importer: Fix loading of non-cadstar font text sizes
Non-cadstar fonts use a width of 0.
2021-02-10 18:49:20 +00:00
Roberto Fernandez Bautista f559e94b00 Non-Kicad Project Importers: Fix the creation of project fp libraries
Adds a new function to PLUGIN GetImportedCachedLibraryFootprints() that
loads the library footprints of the board design that was imported
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7449
2021-02-10 18:49:20 +00:00
Roberto Fernandez Bautista 297ff282f1 CADSTAR Importer: Update copyright years and remove white spaces 2021-02-10 18:49:20 +00:00
Jeff Young 20338c92e8 Move Flip board view to a shared tool (for FP Editor).
Fixes https://gitlab.com/kicad/code/kicad/issues/6687
2021-02-10 17:06:19 +00:00
Jeff Young 4679682fe9 Don't treat success == true as "we got an outline".
It just means the outline wasn't malformed.  It might still be
empty.

[Edit: my fix collided with JP's, so all this really is now is a
couple of slight performance improvements.]
2021-02-10 12:38:06 +00:00
Jeff Young 05d2053ded Put MSW bug fix back in. 2021-02-10 12:37:13 +00:00
jean-pierre charras d738c91dd7 minor fix in DIALOG_SYMBOL_PROPERTIES: make m_cbPreservePads ON the default
Keep Through Hole pads on external layers should be ON by default, because
such a pad does not allow soldering/unsoldering, if this option this option is OFF
Also rename dialog_enum_pads.fbp as dialog_enum_pads_base.fbp, as usual
2021-02-10 12:47:11 +01:00
jean-pierre charras 5079881f3f BuildFootprintPolygonOutlines(): fix incorrect outlines when no pad in the footprint.
It is used in 3D viewer to build a "board" polygonal outlines.
The polygon was empty when no pad and no item on ede cuts found (i.e. logos)
Fixes #7448
https://gitlab.com/kicad/code/kicad/issues/7448
2021-02-10 08:45:17 +01:00
Marek Roszko 872184fe8b Revert "Bump minimum required CMake version to 3.10"
This reverts commit a475f45753.
2021-02-09 18:46:13 -05:00
Seth Hillbrand 09be44a352 Use Jeff's method+font for monospace 2021-02-09 12:14:17 -08:00
Seth Hillbrand 505844f68c Generalize the Ctrl-Q to all frames
Rather than adding our handler to each frame separately, we initialize
the Ctrl-Q quit action at the base frame to be consistent
2021-02-09 11:43:42 -08:00
Jeff Young 65c41cff42 Another way to set fixed-width font (that works on OSX). 2021-02-09 18:46:04 +00:00
Wayne Stambaugh 5ecef204cd Coding policy fixes.
Using "this->" violates coding policy section 2.7.
2021-02-09 11:35:43 -05:00
Jeff Young a49a6c2f52 Refresh zone layers when copper layers change opacity.
Fixes https://gitlab.com/kicad/code/kicad/issues/7468
2021-02-09 12:26:46 +00:00
Jeff Young 618e824b0f Cleanup includes and formatting. 2021-02-09 12:26:46 +00:00
Seth Hillbrand 6f0424d742 Use monospace font for textboxes
Matches the spacing of our stroke font so the tabs are correctly
displayed in WYSIWYG

Fixes https://gitlab.com/kicad/code/kicad/issues/1807
2021-02-08 15:59:58 -08:00
Jeff Young e2f8b1a4b1 Interpreting wxDialog::ShowModal()'s retval as bool is never what you want.
Fixes https://gitlab.com/kicad/code/kicad/issues/7454
2021-02-08 17:40:57 +00:00
Mikolaj Wielgus 5aaedd86ed Add "Limit graphic lines to 45 deg" to line drawing tool context menu
Fixes https://gitlab.com/kicad/code/kicad/issues/7181
2021-02-08 16:20:38 +00:00
Jeff Young 6272b48481 Make sure layer gets passed in to rules evaluation. 2021-02-08 14:53:49 +00:00
Jeff Young 7aa7e3fd43 Push undo/redo blocking down a level in LengthTuner tool.
This way it's active only while tuning a single line, rather than
while the tool is selected.

Fixes https://gitlab.com/kicad/code/kicad/issues/7462
2021-02-08 14:15:46 +00:00
Simon Richter a475f45753 Bump minimum required CMake version to 3.10
This allows us to remove even more workarounds
2021-02-08 12:23:08 +00:00
jean-pierre charras 34d7c3e31f fp shape, ARC: fix incorrect arc end position after flipping/mirroring.
Add also comments in FP_SHAPE::SetAngle() to avoid a similar issue.
2021-02-08 10:11:04 +01:00
Seth Hillbrand 81b83a8f5b Remove unused line width parameter 2021-02-07 17:11:05 -08:00
Seth Hillbrand 792904557e Remember Parent data when routing
Keeps parent information such as UUID and pad removal options for
elements that are just updated in routing rather than created fresh or
fully destroyed.

Fixes https://gitlab.com/kicad/code/kicad/issues/7460
2021-02-07 17:08:43 -08:00
Jeff Young 0ca76571ce Add footprint zones to paste routine.
Fixes https://gitlab.com/kicad/code/kicad/issues/7442
2021-02-07 11:50:59 +00:00
Thomas Pointhuber 088ff5b2bb altiium: set fill version, which allows us to do a copper pour without a line 2021-02-06 23:58:30 +01:00
Michael Kavanagh 7cc28a5a02 Shrink appearance manager bitmap buttons to 16x16
Finish off 38cc2f106b
2021-02-06 22:51:56 +00:00
Thomas Pointhuber 8ee6694c57 altium: Set smaller zone MinThickness by default to better account for missing design rules 2021-02-06 23:45:28 +01:00
Thomas Pointhuber d444ed80a5 altium: parse Regions6 to fill zone on import 2021-02-06 23:06:59 +01:00
Seth Hillbrand 624a231cc0 Remove unused line width option
You had to set the line width in the SVG export dialog in order to
change the displayed line width in the 3d viewer.  The line width did
not affect the SVG export.  Removing in favor of the Board design
settings for line widths
2021-02-06 06:44:53 -08:00
Jeff Young c2dbd28101 Simplify and harmonize symbol editor and footprint editor menus.
Some differences are due to difference between libraries being files
in symbol editor and directories in footprint editor, but this unifies
most of the rest.

It also dispenses with the save-to-library vs save-to-document distinction
in the GUI because it makes for too much variability in the GUI, was
implemented differently between the two editors, and isn't needed as much
anymore now that we have the highly visible infobar.

There was also an issue that the save-to-board icon occupies the same
location and has the same size/shape/colours as the Board Setup icon in
PCBNew.

Fixes https://gitlab.com/kicad/code/kicad/issues/7215
2021-02-06 14:33:16 +00:00
Jeff Young 49a09f4c1c Pad selectability fix.
Physical layer test needs to be board-visible-layers, not pad-layers.

Also cleans up the tests so that LOD factors in.  (When things
disappear due to zoom level they should not be selectable.)

Fixes https://gitlab.com/kicad/code/kicad/issues/7238
2021-02-06 13:57:40 +00:00
jean-pierre charras d2213708eb FOOTPRINT_WIZARD_FRAME: minor fixes.
Fixes #7435
https://gitlab.com/kicad/code/kicad/issues/7435
2021-02-06 08:10:13 +01:00
Seth Hillbrand 016bffc899 Remove some more unneeded atof() calls 2021-02-05 10:18:34 -08:00
qu1ck 5c3ee0443c Make footprint properties accessible from python
Now that footprint properties inherit custom fields from schematic
they are very useful.

Setting custom properties from python will also be handy in plugins
that need to somehow mark their own objects.
2021-02-05 02:31:48 +00:00
Seth Hillbrand 2e67cd2db8 Fix locale issue in Fabmaster import 2021-02-04 16:32:02 -08:00
Seth Hillbrand 55a6013a32 Remove errant printf 2021-02-04 15:58:59 -08:00
Seth Hillbrand aa0db969ca Caching ConvexHull routine
Stores a cache of the convex hull similar to the bounding box.  Modifies
the hull based on actions to allow  complex footprint graphics without delay

Fixes https://gitlab.com/kicad/code/kicad/issues/7341
2021-02-04 15:56:52 -08:00
Jeff Young 78ba87be8f More explicit error message for unconnected items. 2021-02-04 22:47:37 +00:00
Jeff Young 7b9700d871 Convert insideArea test for zones to be "any copper inside".
The test used to be "entire zone inside", but that didn't work when
we use it to implement "copper pour" keepout areas.

Fixes https://gitlab.com/kicad/code/kicad/issues/7420
2021-02-04 13:43:50 +00:00
jean-pierre charras 0de3d48db5 typo 2021-02-04 09:00:35 +01:00
Jon Evans 721bf82603 Handle malformed lines in dragCornerInternal
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7398
2021-02-03 20:55:22 -05:00
Jon Evans f7e21682ec Update model in APPEARANCE_CONTROLS::SetObjectVisible
Don't make the caller remember to do so
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7411
2021-02-03 20:18:13 -05:00
Jeff Young da8d0472f5 Layer must be between 0 and PCB_LAYER_ID_COUNT. 2021-02-04 01:00:20 +00:00
Jon Evans 3ac5fd6342 Get rid of wx popups when opening a read-only project 2021-02-03 19:17:32 -05:00
Jon Evans b314e0828c Don't create project files unconditionally when importing boards
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7368
2021-02-03 19:17:32 -05:00
Jeff Young 065a16b48c Careful that we don't move the wrong end of the arc.
Fixes https://gitlab.com/kicad/code/kicad/issues/7409
2021-02-03 23:53:11 +00:00
Jeff Young 90b3d0c96d Implement TransformShapeWithClearanceToPolygon for DIMENSIONs.
Fixes https://gitlab.com/kicad/code/kicad/issues/6890
2021-02-03 23:34:17 +00:00
Jeff Young e26c912b86 Don't apply electrical clearance to non-copper zones.
Also removes a very old (and somewhat confusing) comment.

Fixes https://gitlab.com/kicad/code/kicad/issues/7404
2021-02-03 11:56:43 +00:00
Jeff Young 6dee7f30fa Whack-a-mole on another case of "module". 2021-02-03 10:53:24 +00:00
Seth Hillbrand 22d78a5827 FABMASTER: Handle flipped custom pads and rounded rects
Adds error messages for more cases and fallback for custom pads to
prevent invalid pad generation
2021-02-02 19:33:18 -08:00
Roberto Fernandez Bautista c25cab0cf8 Fix typo 2021-02-03 01:55:05 +00:00
Roberto Fernandez Bautista 9aedeae5c3 Don't log error messages when using the clipboard
wxClipboard::GetData()and wxClipboard::SetData() both log a "wxLogSysError" error-level message (see for example:  https://github.com/wxWidgets/wxWidgets/blob/v3.1.4/src/msw/clipbrd.cpp#L703 ). This logged message gets displayed as a messagebox to the user.

The logging can be disabled temporarily by creating a wxLogNull object. See https://docs.wxwidgets.org/3.0/classwx_log_null.html

Fixes https://gitlab.com/kicad/code/kicad/-/issues/6956
2021-02-03 01:55:05 +00:00
Jeff Young 46658076bd Minor cleanup. 2021-02-02 22:55:18 +00:00
Jeff Young d7ddc62d7e Fix mouse warping and dialog placement for layer switcher.
Fixes https://gitlab.com/kicad/code/kicad/issues/2607
2021-02-02 17:20:01 +00:00
Jeff Young b8e97bb6b6 Only apply B&W printer fixes when printing.
Fixes https://gitlab.com/kicad/code/kicad/issues/7388
2021-02-02 15:37:30 +00:00
Jeff Young 90519c8324 Allow pads with holes to be selected when hole is visible. 2021-02-02 14:23:29 +00:00
Jeff Young d261fa3792 Make sure items are removed from groups when deleted.
Fixes https://gitlab.com/kicad/code/kicad/issues/7387
2021-02-02 14:23:29 +00:00
jean-pierre charras c98c7cf200 Fix minor wxWidgets alerts 2021-02-02 10:01:19 +01:00
jean-pierre charras e3e03e09d0 detect_file_type(): update detection to handle last change in .kicad_mod files
These files can start now by "(module" or "(footprint".
2021-02-02 09:53:30 +01:00
Marek Roszko 9695717a46 Fix assert in SwapItemData 2021-02-01 19:29:58 -05:00
Marek Roszko ee2c5bb489 Remove memory leak when importing settings for a board 2021-02-01 19:23:23 -05:00
Jeff Young 8f4d2cf33b Fix typo in footprint flip code.
Fixes https://gitlab.com/kicad/code/kicad/issues/7224
2021-02-02 00:07:29 +00:00
Jeff Young 8571687f51 Upgrade place via tool to new DRC.
Fixes https://gitlab.com/kicad/code/kicad/issues/7358
2021-02-01 23:00:13 +00:00
Seth Hillbrand 29632e8b6f Include footprint center as snap point
Only when footprint center isn't approximate the footprint origin as
well.  This can help when moving/aligning THT footprints

Fixes https://gitlab.com/kicad/code/kicad/issues/7385
2021-02-01 12:03:26 -08:00
Seth Hillbrand 54f5a47208 Remove confusing GetFirstPad() call
This no longer returns the first pad, just the first by pad sort order
in output.  The call is not used correctly in pcbnew, so removing to
prevent future misuse
2021-02-01 12:03:26 -08:00
Seth Hillbrand 23c6dbff38 Need to check track/track clearance
The misplaced else prevented non-track/track intersection clearances
from being reported

Fixes https://gitlab.com/kicad/code/kicad/issues/7376
2021-02-01 10:08:27 -08:00
Jeff Young 1f27b7e7df Don't render hole walls when no physical layers are visible.
Fixes https://gitlab.com/kicad/code/kicad/issues/7369
2021-02-01 17:14:30 +00:00
Marek Roszko dc4b73fcef Correct m_board check location in PNS_KICAD_IFACE_BASE::SyncWorld 2021-02-01 11:58:22 -05:00
Marek Roszko 9d0b16e814 bool/int type safety 2021-01-31 19:54:32 -05:00
Jeff Young 89d3b0b670 Remove breakage of corner pinning in point editor.
For some reason the post-pinned local variable references were replaced
with calls to the points themselves (which are the pre-pinned values).

Fixes https://gitlab.com/kicad/code/kicad/issues/7291
2021-02-01 00:35:45 +00:00
Seth Hillbrand 8778599c0d Apply same nettie hack to zone filler
The nettie hack is used in DRC but we also need to use it in zone filler
to allow zones to be used with netties.  We limit this to the
appropriate nets in the nettie

Fixes https://gitlab.com/kicad/code/kicad/issues/7351
2021-01-31 16:16:48 -08:00
Marek Roszko 991c8fbf8f Use the new nudge path for the footprint lib table, save global and project mru differently 2021-01-31 19:01:33 -05:00
Seth Hillbrand 1a3ab551cf Cleanup
FindLineSegmentIntersection() was refactored in 2012 but there are a few
uses that didn't get updated.  This finalizes the cleanup

Fixes https://gitlab.com/kicad/code/kicad/issues/7365
2021-01-31 15:55:52 -08:00
Seth Hillbrand 8567739a7a Remove conditions from common immediate-mode keys
The conditions prevent use in immediate mode for common actions.  While
this makes enable/disable easier in menu items, this fix is a patch
until we refactor the action framework to distinguish between immediate
mode hotkeys that should start without selections and menu items that
need a selection before running.

Fixes https://gitlab.com/kicad/code/kicad/issues/5333
2021-01-31 14:45:24 -08:00
Seth Hillbrand b54e951ed8 Fix a couple of checks in Fabmaster 2021-01-31 14:12:40 -08:00
Marek Roszko 8f21034254 Fix invalid windows macro
Missing one underscore at the end
2021-01-31 16:15:50 -05:00
Marek Roszko 051621a2ca Use M_SQRT1_2 in place of the number 2021-01-31 15:47:23 -05:00
Marek Roszko 3d45668354 Fix typo in TRACK::GetEndY 2021-01-31 15:43:12 -05:00
Marek Roszko 21fe8542df Remove shadowing of identical base m_parser member 2021-01-31 12:56:27 -05:00
Jon Evans abf0a46dce Refactor PICKER_TOOL and push up snapping disable functionality
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7348
2021-01-31 09:50:41 -05:00
Jon Evans a45b86d2ba Fix Coverity warning 2021-01-31 09:50:41 -05:00
Jeff Young a868fb97b6 Preserve Uuids when editing board footprints.
One way to do this would have been to keep the Uuids in the editor
copy.  However, this opens us up to errors if we forget a Save As or
export path and end up writing the Uuids out somewhere else.

In the end, it felt safer to store a map of the original Uuids and
restore them if we happen to save the editor footprint back to the
board.

Fixes https://gitlab.com/kicad/code/kicad/issues/7312
2021-01-31 14:09:59 +00:00
Thomas Pointhuber 70e6d0e79f altium: use those new fancy user definable layers and import the name from Altium 2021-01-31 11:15:08 +01:00
Jeff Young 56ea55ae9c Make sure that NPTH pads still get handled in copper clearance checker.
... because that's where we do hole-to-copper clearance testing.

Also augments the Clearance Resolution reporter to report on said
hole clearances.

And changes the interpretation of HOLE_CLEARANCE_CONSTRAINT to include
local pad clearance overrides.

Fixes https://gitlab.com/kicad/code/kicad/issues/7325
2021-01-31 00:33:35 +00:00
Thomas Pointhuber 6a9e1ecf9e altium: Center board after import 2021-01-30 17:43:02 +01:00
Jeff Young 41234a8373 Implement more precise annotation-required messages.
Also moves the message to an infobar so it's more noticeable.

Fixes https://gitlab.com/kicad/code/kicad/issues/7332
2021-01-30 16:31:27 +00:00
Jeff Young a235103e48 Redo pad & via painting (again).
New strategy isolates all draw/don't draw decisions to the ViewGetLOD
routines, and all dimmed/not dimmed to PCB_RENDER_SETTINGS::GetColor.
The actual drawing in PCB_PAINTER is more-or-less conditon free.

Also adds new layers for pad and via hole walls so that they can be
controlled for high-contrast mode.

Also changes the drawing paradigm so that the pads are drawn even when
not on the high contrast layer, just in low contrast.  The hole wall
is drawn in high contrast.  This actually makes things clearer to the
user (although to be honest was done to keep from having to re-render
pads when the high contrast layer changes since we have two separate
layers now that we can adjut colours on).

Fixes https://gitlab.com/kicad/code/kicad/issues/7328
2021-01-30 16:31:27 +00:00
Jeff Young 488a5b7567 Draw via holes in high contrast when they cross a high contrast layer. 2021-01-30 16:31:27 +00:00
Seth Hillbrand 6b685dfb3f Fix the knockout conditions
We need to knock out thermal clearance for same net pads but this
doesn't need to be placed in the regular clearance area (probably).

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

Fixes https://gitlab.com/kicad/code/kicad/issues/7340
2021-01-30 08:15:00 -08:00
Seth Hillbrand 73886aecb1 Ensure partially triangulated polys are not valid
Moves rule area triangulation outside of layer iterator and keeps the
triangulation_valid flag false until the triangulation has been
completed.

Fixes https://gitlab.com/kicad/code/kicad/issues/7032
2021-01-29 16:33:57 -08:00
Seth Hillbrand 386ead30c5 All circle and arc tools to select all at first
Non-layer elements can be logical centers for the circle and arc tools.
We allow the non-layer to snap for the center points and revert to only
on-layer elements after

Fixes https://gitlab.com/kicad/code/kicad/issues/7327
2021-01-29 10:14:44 -08:00
Seth Hillbrand 553166f932 Handle ARC bbox in tracks
Need to handle arcs separately to ensure we get the full bounding box

Fixes https://gitlab.com/kicad/code/kicad/issues/7318
2021-01-29 09:07:23 -08:00
Marek Roszko 30ba3aa240 Get python loading the new "user scripting" paths 2021-01-28 23:45:53 -05:00
Marek Roszko 43fd416d13 Flip the footprint new library flow to prompt global or project first 2021-01-28 20:15:44 -05:00
Jon Evans b5e9a949bc Selection: skip sloppiness pruning if invalid
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7320
2021-01-28 19:51:29 -05:00
Jeff Young 74a5db64c2 Update pad netnames (and numbers) to the new visibility architecture. 2021-01-28 23:31:38 +00:00
Jeff Young 21bec6c016 Comment. 2021-01-28 23:31:38 +00:00
Jeff Young 6983bcd55b Push addition of shape width down into computeArcBBox.
Also improves performance by calling GetBoundingBox only once (this
is not always an inexpensive routine for some items, such as
polygons).
2021-01-28 22:29:28 +00:00
Seth Hillbrand 1733a23ac7 Take width into viewBBox account
Don't let objects disappear until their full extend has been removed
from view.

Fixes https://gitlab.com/kicad/code/kicad/issues/7318
2021-01-28 14:20:13 -08:00
Seth Hillbrand 714430fefa Flash pads when connected by zone
Zone connections (even half-connections) should trigger the connected
logic in flashPads.  This removes the double-standard for painting pads
and imposes thermal standoff based on the net connection to the pad if
it shares a net, not just if connected
2021-01-28 13:21:22 -08:00
Jeff Young 1a7b7e84c6 Use consistent terminology for component placement files.
CHANGED footprint positions files -> component placement files.

Not all footprints get placed, so component is a more neutral word.
Use of "placement" instead of "positions" removes the double-plural
that makes footprint positions files such a mouth-full.

Fixes https://gitlab.com/kicad/code/kicad/issues/7097
2021-01-28 19:24:55 +00:00
Jeff Young 636ae012ed Overhaul the pad drawing special cases yet again.
New strategy is to draw the hole wall cylinder if the pad (or via)
isn't flashed on a particular layer.  This is (1) more correct,
(2) keeps pads which aren't flashed on any layer from disappearing,
and (3) allows us to remove a bunch of the other special cases.

Or at least I think it does.  The proof will be in the (lack of)
follow-on bug reports....

Also fixes a bug where via annular rings weren't highlighted in
high contrast mode.

Fixes https://gitlab.com/kicad/code/kicad/issues/7279
2021-01-28 17:02:42 +00:00
Seth Hillbrand 2ef00e9de4 Rebuild ratsnest when importing netlist
Fixes https://gitlab.com/kicad/code/kicad/issues/7287
2021-01-27 17:57:00 -08:00
Seth Hillbrand 89a72df0b1 Fix a few FABMASTER issues
- Custom pads now properly supported with offset/rotation
- Fix missing pads from alternate layers

Fixes https://gitlab.com/kicad/code/kicad/issues/7299
2021-01-27 17:50:14 -08:00
Ian McInerney beb50c529e Reorganize the CMake folder to separate build and configure steps
The BuildSteps folder now contains the CMake scripts that are
called during the build process as individual stages, while
the root CMakeModules directory contains the CMake files used
during the configuration phase.
2021-01-28 00:24:22 +00:00
Marek Roszko 2807a37fc0 Create a stock scripting path helper 2021-01-27 19:12:18 -05:00
Marek Roszko e6dd95e83a Create a default user projects folder 2021-01-27 19:12:18 -05:00
Marek Roszko 28c6967dbc Start trying to shuffle around path management 2021-01-27 19:12:18 -05:00
Wayne Stambaugh 6a39b81647 Fix the last of broken Doxygen comment specifiers. 2021-01-27 17:39:44 -05:00
Mikołaj Wielgus 3e42ba18a9 Show dragging tools in context selection menu for components
Show the dragging tools in the context selection menu when a single
component is selected. Prevent the dragging tools from appearing when
more than one object is selected, as they will not activate anyway.

Fixes https://gitlab.com/kicad/code/kicad/issues/7258
2021-01-27 19:55:42 +00:00
Jeff Young 06a0094597 Minor improvements to layer highlighting. 2021-01-27 14:52:22 +00:00
Jon Evans bb79eb0e45 Fix typo causing no netnames in SPECCTRA export
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7298
2021-01-26 22:04:45 -05:00
Jon Evans 1e030655cd Always create project when doing a Save As on a board with a project 2021-01-26 21:58:17 -05:00
Jon Evans bea310569b Fix parsing of track/via user sizes from legacy boards
Fixes https://gitlab.com/kicad/code/kicad/-/issues/6134
2021-01-26 21:51:36 -05:00
Jon Evans 30f3a7d124 Rework high contrast for pads/vias slightly
Fixes https://gitlab.com/kicad/code/kicad/-/issues/6923
2021-01-26 21:02:11 -05:00
Jon Evans 79f94c096e Rename legacy selection filter action to avoid confusion
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7290
2021-01-26 18:15:36 -05:00
Seth Hillbrand aefc107d86 Fix button sizing 2021-01-26 13:42:02 -08:00
Seth Hillbrand 9a51a75403 Confirm when cancelling a changed custom rule 2021-01-26 08:18:38 -08:00
Jeff Young 1e9639e89c Save pintype alongside pinfunction (in pads).
Fixes https://gitlab.com/kicad/code/kicad/issues/7283
2021-01-26 15:28:48 +00:00
Jeff Young 0e7c18119e Make sure pads are unlocked when editing footprint from board.
Fixes https://gitlab.com/kicad/code/kicad/issues/7274
2021-01-26 15:28:48 +00:00
jean-pierre charras 2e58826338 Minor fix: remove an unwanted font setting from panel_setup_constraints_base.fbp
that cannot be removed using wxFormBuilder due to a bug in wxFormBuilder.
2021-01-26 14:03:12 +01:00
Jeff Young 5a5f96bd9f More consistent naming. 2021-01-26 11:41:47 +00:00
Jeff Young b165ae6519 Fix note formatting issues.
Also removes the "tip" icon which doesn't work on OSX and isn't as
important as the graphics which actually convey information.  Replaced
with the more generic "Note: " string.

Fixes https://gitlab.com/kicad/code/kicad/issues/7281
2021-01-26 11:29:30 +00:00
Jeff Young 7d6c1c5ee6 Improve comments. 2021-01-26 10:56:19 +00:00
Jeff Young dca7e44455 Fix a missed Module -> Footprint. 2021-01-26 10:56:19 +00:00
Jon Evans b96bcc86b1 Don't restrict start item to same layer if snapping is enabled
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7276
2021-01-25 21:19:26 -05:00
jean-pierre charras 96af236493 Code cleanup: remove include wx.h from pcb_plot_params.h.
including wx.h is useless for this file, and include wx.h in a lot of other files.
Include wx.h must be made only when needed in a given file, because on Windows
it include some headers that frequently create collision with kicad declarations
2021-01-25 16:18:46 +01:00
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
Jon Evans bc712a7383 Remove some stray printfs 2020-12-29 14:58:45 -05:00
Jon Evans 76e8c62269 PCB_VIEW: Fix a few ASAN issues 2020-12-29 14:58:45 -05:00
Jeff Young 35a5781f68 Don't look at project layer visibilities for footprint editor.
Fixes https://gitlab.com/kicad/code/kicad/issues/6873
2020-12-29 17:03:43 +00:00
Jeff Young 97a99beef5 Fix missing ENUM_TO_WXANY decl.
Fixes https://gitlab.com/kicad/code/kicad/issues/6879
2020-12-29 14:37:03 +00:00
Jeff Young efd16dca66 Fix a bunch of issues with group selection and highlighting.
Fixes https://gitlab.com/kicad/code/kicad/issues/6686
2020-12-29 12:41:24 +00:00
Jeff Young f7a6dc26e9 Give GROUP_PROPERTIES_DIALOG its own files. 2020-12-29 12:41:24 +00:00
Jon Evans 81d4e06f00 PNS: Consider pad orientation when routing
PNS: Skip smart pads when posture was manually forced

This allows a more-correct pad breakout to be chosen when
smart pads is off.
2020-12-29 01:06:46 -05:00
Jon Evans 96d49d1473 PNS: Improved auto-posture when starting from a segment
The previous auto-posture algorithm worked great for pads
but not so great when starting routing from a segment.

Now we can optimize the posture based on the starting
segment if one exists, to maximize the "obtuseness" of the
posture.
2020-12-28 23:51:13 -05:00
Jon Evans 3adff647a7 PNS: Preserve nearest vertex when dragging in shove mode 2020-12-28 19:44:39 -05:00
Jon Evans 55394f343d Don't use snapping for a selection interaction
Fixes https://gitlab.com/kicad/code/kicad/-/issues/6856
2020-12-28 17:26:39 -05:00
Jon Evans be294dabce PNS: Snap back to last valid point when committing a drag
Fixes https://gitlab.com/kicad/code/kicad/-/issues/6651
2020-12-28 16:36:42 -05:00
Jon Evans e5b7e7d2b2 Add missing header needed for gcc builds 2020-12-28 16:02:06 -05:00
Jeff Young 3e2aa8df3a Thread safety for pad effective shape building. 2020-12-28 20:44:46 +00:00
Jeff Young cfb4e34b07 Cleanup. 2020-12-28 20:44:46 +00:00
Jan Mrázek 93466fa165
Fix crash when adding 3D Models via Python 2020-12-28 20:03:54 +01:00
Jon Evans 17cf2466aa Fix overlapping definitions warning 2020-12-27 19:42:04 -05:00
Jon Evans c4bfca251b PcbNew: show file format conversion warning in infobar
Fixes https://gitlab.com/kicad/code/kicad/-/issues/6200
2020-12-27 19:17:58 -05:00
Jon Evans 3c87e67753 PNS: Allow committing routes even when cursor moves beyond valid solution
Fixes https://gitlab.com/kicad/code/kicad/-/issues/6651
2020-12-27 17:14:38 -05:00
Jeff Young 1fc4523711 Remove pad-size-setting hack from PCB_PAINTER.
Also improves the pad warning and error messages, and moves a few
remaining nags from the setting infrastructure to the warning
infrastructure.

Fixes https://gitlab.com/kicad/code/kicad/issues/6141
2020-12-27 21:11:27 +00:00
Jon Evans 2cdf9875b9 PNS: fix off-by-one in dragCorner45
Fixes https://gitlab.com/kicad/code/kicad/-/issues/6644
2020-12-27 15:58:36 -05:00
Jon Evans c615b7a49b PNS: make initial direction behavior consistent with fix-all enabled 2020-12-27 15:21:55 -05:00
Jon Evans 132e78d2b8 Fix pcbnew collector prioritization
Fixes https://gitlab.com/kicad/code/kicad/-/issues/6307
2020-12-27 13:50:11 -05:00
Thomas Pointhuber 3b25e7344a Fix deprecation warning. PyEval_InitThreads() is not needed for Python >= 3.7
See: https://docs.python.org/3/c-api/init.html#c.PyEval_InitThreads

With Python 3.7 this function is called by Py_Initialize()
With Python 3.9 this function is deprecated and does nothing
2020-12-27 19:18:49 +01:00
Peter Montgomery 1c79e3174c Pcbnew: Prevent footprint jumping when starting to drag it
CHANGED: When dragging a footprint, if the mouse isn't directly over the
footprint anchor when 'D' is pressed, the footprint center will jump to
the mouse position when dragging begins.  This MR uses the current
mouse position instead of the footprint anchor as the inital reference
point when starting to drag.

Fixes https://gitlab.com/kicad/code/kicad/issues/6813
2020-12-27 17:43:52 +00:00
Jeff Young 1579ce9f9e Separate net updating from Edit Tracks & Vias into a second pass.
Fixes https://gitlab.com/kicad/code/kicad/issues/6858
2020-12-27 16:35:38 +00:00
Jeff Young 10e51bfea7 Don't apply "normal" locking strategy to alignment options.
It's much more useful to use the locked items as targets.

Also fixes some issues with commits getting the wrong items when
pads are promoted to footprints.

Fixes https://gitlab.com/kicad/code/kicad/issues/6859
2020-12-27 15:02:25 +00:00
Jeff Young e3d95cc2c8 Formatting. 2020-12-27 15:02:25 +00:00
jean-pierre charras a675f1f9c5 pcb_painter, draw pad clearance outlines: use the pad shape for non copper layers.
For copper layers, if the pad shape is not on the active layer, only the hole
shape clearance is shown (this is correct).
But for non copper layers using the hole shape clearance make no sense
(as long as showing the clearance makes sense for some layers).
2020-12-27 11:20:48 +01:00
jean-pierre charras 97f3c323c3 Pcbnew: fix missing escaping of texts in DIMENSION when saving the .kicad_pcb file.
Fixes #6855
https://gitlab.com/kicad/code/kicad/issues/6855
2020-12-27 10:18:23 +01:00
Jeff Young e1f76ea2ab Gracefully handle dots in the outline path.
Fixes https://gitlab.com/kicad/code/kicad/issues/6854
2020-12-27 01:01:25 +00:00
Jeff Young 3aca0e1853 Make sure we nofity of self-intersecting outlines. 2020-12-27 01:01:25 +00:00
Jeff Young 8300e17b69 Fix botched attempt to report hole violations between no-net items.
Fixes https://gitlab.com/kicad/code/kicad/issues/6851
2020-12-26 16:24:51 +00:00
Jeff Young ab97035ecb Handle closed shapes being processed after other shapes.
Fixes https://gitlab.com/kicad/code/kicad/issues/6845
2020-12-26 12:57:49 +00:00
Jeff Young af2219ba7f Finish implementation of hole clearance checking.
It appears we never did via hole testing, and pad hole testing didn't
appear to get much testing.
2020-12-25 22:32:19 +00:00
Jeff Young 0d57f90982 Make sure SCH-related frames use the schematic worksheet color.
Fixes https://gitlab.com/kicad/code/kicad/issues/6843
2020-12-25 16:59:41 +00:00
Jeff Young 7a081b7c04 Naming consistency. 2020-12-25 16:59:41 +00:00
Jeff Young 04c8d0e9d8 Comments. 2020-12-25 16:59:41 +00:00
Jon Evans 60503652a1 Kick-start appearance panel to redraw on Mac
Fixes https://gitlab.com/kicad/code/kicad/-/issues/6827
2020-12-25 10:44:18 -05:00
Jeff Young 84ce814037 Repair segment ownership logic for rects and curves.
Fixes https://gitlab.com/kicad/code/kicad/issues/6847
2020-12-25 13:21:20 +00:00
Jeff Young 9c4d3add15 Fix typo.
Fixes https://gitlab.com/kicad/code/kicad/issues/6845
2020-12-25 12:07:26 +00:00
Jon Evans 8ad89ae457 PNS: fix manual posture mode 2020-12-24 17:31:54 -05:00
Jeff Young ef25c78a04 Separate polygonization error from chaining error.
This way we can report anything that doesn't exactly chain while still
applying  a fudge factor for our own stuff.

Fixes https://gitlab.com/kicad/code/kicad/issues/1795
2020-12-24 21:02:14 +00:00
Jon Evans a9ff98bccc Allow selecting locked pads at all times
Locked pads are a bit different from other locked items
and there are sufficient reasons to need to select them
that it makes sense to introduce this inconsistency.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/6837
2020-12-24 14:35:44 -05:00
Jeff Young 38b8bc89ac Fix a pair of typos.
Fixes https://gitlab.com/kicad/code/kicad/issues/6839
2020-12-24 19:32:24 +00:00
Jon Evans d13de9c6c1 Zones: layer set must be initialized after m_isRuleArea
Fixes https://gitlab.com/kicad/code/kicad/-/issues/6814
2020-12-24 11:29:23 -05:00
Jon Evans 98c437e70f Show the read-only notification for objects, too 2020-12-24 08:42:38 -05:00
Jon Evans db0df1fdc9 Don't try to update non-existent zone layers
Fixes https://gitlab.com/kicad/code/kicad/-/issues/6803
2020-12-24 08:42:38 -05:00
Jeff Young 5fffde09d4 Improve SNR and formatting. 2020-12-24 10:36:29 +00:00
Jon Evans d0429ced8d Fix layer ordering logic for non-copper layers
Fixes https://gitlab.com/kicad/code/kicad/-/issues/6817
2020-12-23 22:09:09 -05:00
Jon Evans 8a2667c4c3 PNS: Fix all segments by default (and make optional)
Fixes https://gitlab.com/kicad/code/kicad/-/issues/5920
2020-12-23 21:55:43 -05:00
Jon Evans 8c247fc97c PNS: Add a setting to disable posture solver
PNS: Prevent autoposture flutter when trail has little area

Fixes https://gitlab.com/kicad/code/kicad/-/issues/6797
2020-12-23 21:02:17 -05:00
Michael Kavanagh eb1f07bade Icons: standardise `export_png` to match set 2020-12-24 01:02:03 +00:00
Michael Kavanagh d2018b122b Icons: unify export_svg with the rest of the set 2020-12-24 01:02:02 +00:00
Michael Kavanagh 6489781408 Icons: use correct icons for show/hide ratsnest
- Remove old icon remnants
 - Recolour show/hide_ratsnest to match KiCad style
2020-12-24 01:02:02 +00:00
Jeff Young 6b420b191a Use color theme backgrounds in page previews.
Also includes a *lot* of const fixing to make it happen.

Fixes https://gitlab.com/kicad/code/kicad/issues/6811
2020-12-23 23:18:38 +00:00
Jeff Young ffe7d2ea49 Only draw group boxes when selected.
Also ignore footprint groups when in board editor.

Fixes https://gitlab.com/kicad/code/kicad/issues/6826
2020-12-23 21:43:32 +00:00
Jeff Young 17800b926f Honour couryard_clearance rules when checking for courtyard overlaps. 2020-12-23 17:34:21 +00:00
Jeff Young f30fa60ed7 Need to start with full layer set if we want to end up with any.
Fixes https://gitlab.com/kicad/code/kicad/issues/6822
2020-12-23 15:15:09 +00:00
Jeff Young 2f087dfa1b Fix crash bug trying to delete zone from list twice.
Fixes https://gitlab.com/kicad/code/kicad/issues/6815
2020-12-23 14:24:35 +00:00
Jon Evans 912657dd23 Component dragger: make relaxed segment pickup work for PTH pads 2020-12-22 22:43:44 -05:00
Jon Evans 70c6314c67 Component dragger: be more generous about picking up tracks
We now pick up tracks that end anywhere in the pad, not just
at the pad anchor.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/5945
2020-12-22 22:28:24 -05:00
Seth Hillbrand 61ac9c8d90 Add multiple size icons for programs
In theory, the WM should now choose the closest size icon for its
purpose, making it easier to distinguish in space-constrained settings

Fixes https://gitlab.com/kicad/code/kicad/issues/6798
2020-12-22 15:37:26 -08:00
Seth Hillbrand 54ca087999 Update icon resource sets
Updates the .icns, .ico and .png files used by various distros to show
KiCad and KiCad files.
2020-12-22 15:16:33 -08:00
Jeff Young 47ea51ec34 Allow both aui-manager-based infobars and window overlay infobars. 2020-12-22 21:36:39 +00:00
Jeff Young e7f9f19469 Tie dimension properties together for better comprehension. 2020-12-22 16:03:20 +00:00
Adam Wolf 8aedc33a6b Fix typo calling directory_open_xpm on macOS.
Fixes #6809
2020-12-22 09:52:27 -06:00
Jeff Young 93dc7feea3 Remove multi-threading for footprint loading.
Also don't load the footprints up front.  The whole purpose of the
footprint-info stuff is to have enough info about the footprints to
filter them *without* loading.  After that just load individual
footprints as we need them.

Fixes https://gitlab.com/kicad/code/kicad/issues/6177
2020-12-21 22:03:24 +00:00
Jeff Young 5d4042d6b0 Don't check edge cuts visibility when getting board bbox from edges.
Fixes https://gitlab.com/kicad/code/kicad/issues/6805
2020-12-21 19:47:36 +00:00
Jeff Young 6848b1055e Make sure sorting is honoured on first display.
Fixes https://gitlab.com/kicad/code/kicad/issues/6295
2020-12-21 19:47:36 +00:00
jean-pierre charras eb7dc6ddd9 Minor fixes. In stand alone show the frame as soon as possible.
Especially when running Pcbnew to open a complex board the frame is shown faster.
Add also a busy cursor when loading files and building the data.
2020-12-21 17:44:10 +01:00
Wayne Stambaugh 090d7881e0 Revert Coverity fix that caused build issue with older versions of Boost.
The Boost entropy exception does not exist prior to version 1.67. Once
the minimum Boost version is raise to 1.67 or greater, enable catching
the exception.  We will just have to live with the possibility of an
uncaught exception until then.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/6804
2020-12-21 08:41:05 -05:00
PJM 32f1e79c28 Pcbnew: Fix ctrl-MMB double click to perform 'Zoom to Objects'
CHANGED: Ctrl-middle mouse button double click should perform
'Zoom to Objects' in Pcbnew, but a change in modifier key handling
broke it.  This MR restores the functionality.

Fixes https://gitlab.com/kicad/code/kicad/issues/6740
2020-12-20 23:20:09 +00:00
Jon Evans 70c397a9b4 Implement free vias fully
CHANGED: manually-placed (stitching) vias won't have their nets automatically updated
(unless the via is placed directly on a track segment)

CHANGED: stitching vias can be placed on footprint pads and pick up their nets

Fixes https://gitlab.com/kicad/code/kicad/-/issues/5484
2020-12-20 16:29:50 -05:00
Jeff Young cd162a8f58 Honour m_placingVia when avoiding collisions.
Fixes https://gitlab.com/kicad/code/kicad/issues/3773
2020-12-20 20:36:19 +00:00
Jon Evans e8f38e3c18 Snap to footprint origin when dragging
Fixes https://gitlab.com/kicad/code/kicad/-/issues/6633
2020-12-20 15:15:48 -05:00
Jon Evans 81ce1a07ee Fix a few issues with builtin color themes
Fixes https://gitlab.com/kicad/code/kicad/-/issues/6754
2020-12-20 14:43:41 -05:00
Jon Evans 71b446f43c Fix overlay ordering for non-copper layers
Fixes https://gitlab.com/kicad/code/kicad/-/issues/6211
2020-12-20 14:43:41 -05:00
Wayne Stambaugh f311831c27 Coverity fixes.
280252, 314742, 314745, 314747, 314755, 314756, 314757, 314758,
314935, 314936
2020-12-20 13:24:47 -05:00
Jon Evans dc1c80beb8 Allow highlighting from locked items
Fixes https://gitlab.com/kicad/code/kicad/-/issues/6758
2020-12-20 11:24:19 -05:00
Jon Evans ac793618f9 Set start item for inline dragging so that snapping works properly
Fixes https://gitlab.com/kicad/code/kicad/-/issues/6796
2020-12-20 11:13:09 -05:00
Jon Evans a6e595dbda Don't start dragging unselected zones from their filled areas
Fixes https://gitlab.com/kicad/code/kicad/-/issues/6795
2020-12-20 10:41:02 -05:00
Jeff Young 46314f6483 Only compare collision-corrected routes when looking for shortest.
Fixes https://gitlab.com/kicad/code/kicad/issues/6511
2020-12-19 23:20:27 +00:00
Jon Evans c8be87a654 Add i18n flag to appearance controls and selection filter 2020-12-19 17:39:43 -05:00
Konstantin Baranovskiy 7c2b66fc2a pcbnew: make pane labels translatable 2020-12-19 22:25:50 +00:00
Jeff Young d9bbdffd99 Don't offer point-based pad editing in PCBNew. 2020-12-19 19:51:51 +00:00
Jeff Young e840e9d997 Use themeable colours for snap helpers.
Fixes https://gitlab.com/kicad/code/kicad/issues/6664
2020-12-19 19:51:51 +00:00
Marek Roszko 247064a1ed Remove rogue file from pcbnew's cmake
This is already provided in common and isn't pcbnew conditional (anymore)
2020-12-19 10:51:00 -05:00
Marek Roszko 9b0a137d6c Stop bludgeoncompiling dialog_page_settings
Through the power of OOP!
Needs some more cleanup though
2020-12-19 10:40:37 -05:00
Marek Roszko fc272f407a Write the fp-info-cache if we close the footprint editor 2020-12-18 22:56:01 -05:00
qu1ck 4788f3ae6b Read fp-info-cache on first start of fp editor
if fp info list is not initialized
2020-12-18 18:56:36 -08:00
Seth Hillbrand e37a89cdbf Disable the zone display types if zones are hidden
This prevents user confusion (a little) when the zones are hidden

Fixes https://gitlab.com/kicad/code/kicad/issues/6783
2020-12-18 17:22:51 -08:00
Jeff Young 06d4476d7a Fix graphics snapping in Footprint Editor.
Also improves the help text for the various selection modifier
options.

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

Fixes https://gitlab.com/kicad/code/kicad/issues/4745
2020-12-19 00:21:28 +00:00
Wayne Stambaugh 06aa1506ee Add optional project parameter to PCB plugin load method.
The optional PROJECT parameter is primarily used for third party plugins
that need to store project information loaded by the plugin.
2020-12-18 10:40:51 -05:00
Jeff Young 01f6c90fac BOARD_CHANGED is only called after the previous board has been freed.
There is therefore no reason to remove the listener (and every reason
not to try).

Fixes https://gitlab.com/kicad/code/kicad/issues/6666
2020-12-18 12:49:20 +00:00
Jeff Young b68b1692ec Clean up some more user messages.
Mostly component -> symbol but also some I18N cleanup.
2020-12-18 12:49:20 +00:00
Alexis Lockwood 4bc12e7dcd Don't include plotters_specific.h where not needed
This avoids some very large rebuilds when a plotter class is changed.
2020-12-18 07:21:59 +00:00
Jeff Young 1c0d4ac02d Simplify some error messages. 2020-12-18 00:30:26 +00:00
Jeff Young bb232e6ac6 Unify LIB_IDs now that both are stored in sexpr files.
Fixes https://gitlab.com/kicad/code/kicad/issues/6764
2020-12-18 00:30:26 +00:00
Wayne Stambaugh aab3c936f0 Move headers from common folders to appropriate include folders round 2. 2020-12-17 11:44:03 -05:00
jean-pierre charras e4b60b03d1 fp editor: fix incorrect initialization of arc center when edited by the
graphic item properties dialog.
The arc center (in local coordinates) was initialized before the actual
value was calculated.
Fixes #6772
https://gitlab.com/kicad/code/kicad/issues/6772
2020-12-17 16:32:10 +01:00
Jeff Young a6085fa88d Consistency for gerbview toolbar icons and some other icon tweaks. 2020-12-17 14:02:23 +00:00
Wayne Stambaugh 08cf9a1e20 Move headers from common folders to appropriate include folders round 1. 2020-12-17 08:12:18 -05:00
jean-pierre charras dcbe2413cc Pcbnew: fix incorrect displayed value in polar coordinates.
Fixes #6771
https://gitlab.com/kicad/code/kicad/issues/6771
2020-12-17 11:21:24 +01:00
jean-pierre charras b425889a1a fp editor: fix incorrect parent for a error message box
Fixes #6773
https://gitlab.com/kicad/code/kicad/issues/6773
2020-12-17 10:47:39 +01:00
Jon Evans 3d68aa4b86 Make sure footprint editor uses the right config object
Fixes https://gitlab.com/kicad/code/kicad/-/issues/6115
2020-12-16 22:07:35 -05:00
Jon Evans 87b25936a0 Don't hide zone virtual layers in footprint editor
Fixes https://gitlab.com/kicad/code/kicad/-/issues/6642
2020-12-16 21:47:31 -05:00
Ian McInerney fc20eaa083 Fix some compiler and Coverity warnings 2020-12-17 00:30:22 +00:00
Jeff Young 1ca75c8fda Fix from code review for https://gitlab.com/kicad/code/kicad/-/merge_requests/562.
Fixes https://gitlab.com/kicad/code/kicad/issues/6747
2020-12-16 22:02:19 +00:00
Konstantin Baranovskiy 08730cf952 pcbnew: search hits counting fix
Fixes #6747
2020-12-16 18:02:24 +00:00
Jeff Young acfbcb4beb Make distinction between PCBNew-wide tools and Board-specific tools.
The old names were really hard to keep straight (even for me, who named
many of them).
2020-12-16 13:32:46 +00:00
Seth Hillbrand b7875e4d41 Setup file_* icons
Don't use the same "post_*" icon in the treeview.  The badge gives an
action that doesn't apply in the treeview.

Also renames different file blobs to the "file_*" prefix.
2020-12-15 14:48:09 -08:00
Jeff Young 5f9ed2583c Don't put up double lock confirmation dialogs.
Also removes EditToolSelectionFilter which was misused in more places
than it was used correctly.  The original point of the client filter
was to move the logic to the point of use, which the
EditToolSelectionFilter sort of obviated anyway.

Fixes https://gitlab.com/kicad/code/kicad/issues/6751
2020-12-15 22:34:24 +00:00
Michael Kavanagh 2f49623579 Tweaks to Pcbnew RHS draw toolbar icons
- Improve contrast of ratsnest icons by removing blue
- Track icon: make blue as it is a board feature
- Muwave icon: remove handles, make serpentine blue, thicken and pixel align
- New, simplified zone and rule area icons
- Simplify draw tools by removing edit handles/guidelines - improves contrast
- Reorder draw tools in toolbar/menubar to make a little more sense
- Rotate measurement icon (ruler) to match bottom left -> top right
2020-12-15 02:25:22 +00:00
Seth Hillbrand dad2e317e9 Modify edit text & graphics to use pencil 2020-12-14 17:03:35 -08:00
Jeff Young 2142ad20b1 Draw FPText umbilical lines in themeable colour.
Fixes https://gitlab.com/kicad/code/kicad/issues/6664
2020-12-15 00:15:03 +00:00
Jeff Young 4faa4931ae Fix missing gerber icon.
Fixes https://gitlab.com/kicad/code/kicad/issues/6727
2020-12-15 00:15:03 +00:00
Jeff Young 22a6b36257 Don't allow dbl-click to leak through to other tools.
This only applies if the tool doesn't handle properties (which also
handles double-click events).

Fixes https://gitlab.com/kicad/code/kicad/issues/6735
2020-12-14 22:15:43 +00:00
Jeff Young c1a74b427a Translucent magnifying glass on footprint & library browser icons.
Also renamed.
2020-12-14 22:15:43 +00:00
jean-pierre charras dd3b5512ee PANEL_SETUP_LAYERS:do not disable the button "Add User Defined Layer".
For boards having 2 or 4 layers this button was disabled, that make no sense.
2020-12-14 17:47:55 +01:00
Jeff Young 3b35bfc0a5 Don't write out synthetic severities (they're headings).
Fixes https://gitlab.com/kicad/code/kicad/issues/6726
2020-12-14 13:34:53 +00:00
Michael Kavanagh 4f5c764dde Appearance manager icons: fix which is which 2020-12-13 16:48:22 +00:00
Jon Evans 7695866a72 Fix typo 2020-12-13 11:14:09 -05:00
Michael Kavanagh cc43b66daf Icons: use correct size for open action in toolbar
Previously 16x16 was used
2020-12-13 16:10:26 +00:00
Cameron McQuinn f225e95ffc FIx BOARD class SWIG interface
Commit b1f0bf7 changed netinfo.h to use more consistent naming, but the SWIG board.i file still references the old name.
2020-12-13 11:55:10 +00:00
Jeff Young 1db7ffad5e Formatting. 2020-12-13 11:42:03 +00:00
Marek Roszko 7565f60a03 Swap wxFileInputStream/wxFileOutputStream for the buffered kind 2020-12-12 18:52:02 -05:00
Seth Hillbrand 2bf0eb1e3a Add convert icon 2020-12-12 11:14:58 -08:00
Michael Kavanagh dce4d04113 Add 24x24 size refresh icon
Previously 16x16 was being used alongside 24x24
2020-12-12 18:51:55 +00:00
Jeff Young bc484784fc Make sure zones are triangulated for DRC.
Normally this happens as a side-effect of rendering them but if done
from a script (or test case) this won't happen.

Fixes https://gitlab.com/kicad/code/kicad/issues/6635
2020-12-12 15:27:46 +00:00
Jeff Young c0a9742b3a Apply 0ef63aca47 to diff pairs.
Fixes https://gitlab.com/kicad/code/kicad/issues/6314
2020-12-12 03:43:41 +00:00
Michael Kavanagh cf6f0b9b92 Use trash icon where appropriate 2020-12-11 17:05:11 -08:00
Wayne Stambaugh dd4298bb94 Coverity fixes: 280374, 313611, 313648, 313649, and 314720. 2020-12-11 13:29:52 -05:00
Jeff Young 0ef63aca47 Don't reset tail when changing track width/via sizes.
Fixes https://gitlab.com/kicad/code/kicad/issues/6314
2020-12-11 17:58:36 +00:00
Jeff Young af841d1318 Pay attention to flashed layers when doing DRC layer switch.
Fixes https://gitlab.com/kicad/code/kicad/issues/6710
2020-12-11 17:58:36 +00:00
jean-pierre charras 224e33f8e1 DIALOG_TEXT_PROPERTIES: allows text rotation in 0.001 degree.
Fix also incorrect rotation (truncation) when displaying info in message panel
fot texts and pads.
2020-12-11 16:26:58 +01:00
Jeff Young 7cb2d19814 Honour alt-means-disable-grid-snapping in router.
Fixes https://gitlab.com/kicad/code/kicad/issues/6679
2020-12-11 13:11:47 +00:00
Jeff Young d304f12284 Formatting. 2020-12-11 12:48:04 +00:00
Jeff Young 73b7b104cd Fix some issues with Infobar sizing.
This also commits to the new strategy as it wasn't really compatible
with if-def-ing anymore.
2020-12-11 12:39:40 +00:00
Marek Roszko 525934881f Use a temp file for saving the fp-info-cache for now 2020-12-10 23:07:49 -05:00
Marek Roszko dd0ad8f3a1 Read the fp-info-cache on pcb file load rather than on frame open
Otherwise in standalone mode pcbnew will never load the cache files and also later erase them :/
2020-12-10 21:34:40 -05:00
Marek Roszko 0967995a80 Replace wxTextFile for writing fp info cache
wxTextFile uses wxFile which uses write syscalls which means its unbuffered.
This makes file IO more expensive against network shares where it will flush far too aggressively.
wxTextFile is fine for reads however.
2020-12-10 21:34:40 -05:00
Jeff Young 6898dadd1c Don't activate measure tool when it's already running.
In this case it's reactivated when the move command ends; only the
move command was ended because of activating the measure tool so it
gets activated twice.

Fixes https://gitlab.com/kicad/code/kicad/issues/6321
2020-12-10 22:14:52 +00:00
Jeff Young 98330098ac Yet another overhaul to locking.
This unifies everything under a single architecture with a "don't
show again" dialog.  Since everything now goes through the same
path it should be reasonably easy to make it do whatever we want
in the future.

Right now it presents 3 options: modify only unlocked items, override
locks and modify all items, or cancel command.
2020-12-10 17:36:19 +00:00
Roberto Fernandez Bautista 260219b0e6 CADSTAR PCB Archive Importer: Fix arc and filled shapes in footprints
- Need to call the PCB_SHAPE version of SetAngle in order to set the global coordinates for m_ThirdPoint
- Fill shapes also if in a footprint
2020-12-10 14:35:37 +00:00
Marek Roszko a4879e740a Don't request a full frame refresh when editing text properties (stop apperance flickering)
Seems like dead code, the commit should trigger just a canvas refresh.
2020-12-09 21:14:48 -05:00
Jeff Young 9113f93ebe Uniformly apply current locking strategy.
I make no claims that this is the right strategy, but at least it's
consistent now.

Fixes https://gitlab.com/kicad/code/kicad/issues/6369
2020-12-10 01:34:37 +00:00
Jeff Young 90d58c8509 Fix typo. (Thanks Graham!) 2020-12-10 00:08:05 +00:00
Marek Roszko bb4aa15736 Remove extraneous msgpanel update
OnModify right above also calls UpdateMsgPanel
2020-12-09 18:41:43 -05:00
Ian McInerney be4b6ec06a Cleanup compiler warnings 2020-12-09 23:13:33 +00:00
Jeff Young c6b17a0175 Enable lock menu for all selections.
It doesn't pay to try and be too smart as it just confuses people.
When the bugs come in that it doesn't dim I'll just be marking them
as "as designed". :)

Fixes https://gitlab.com/kicad/code/kicad/issues/6367
2020-12-09 22:19:06 +00:00
Jeff Young df4f4560be Change lock toggle to put selection in uniform state.
Fixes https://gitlab.com/kicad/code/kicad/issues/6367
2020-12-09 22:19:06 +00:00
Jeff Young 65782d5c5a Move delete-again-to-delete-locked-objects to hypertext in infobar.
Fixes https://gitlab.com/kicad/code/kicad/issues/6367
2020-12-09 22:19:06 +00:00
Wayne Stambaugh e0fb12488b Pcbnew: fix more minor text properties dialog layout issues. 2020-12-09 09:18:55 -05:00
Marek Roszko eb2472650c Filter appearance control updates on bulk changes 2020-12-09 08:01:37 -05:00
Wayne Stambaugh ad02156aea Pcbnew: fix minor text properties dialog layout issues. 2020-12-09 07:58:32 -05:00
Marek Roszko ad1aae40ec Unify the saved file strings 2020-12-08 19:49:47 -05:00
Seth Hillbrand fbc70511c7 GTK-require two-step in dataview
The before reset needs to be called in GTK prior to reseting the tree
otherwise, we will dereference items that may be cleared.

Fixes https://gitlab.com/kicad/code/kicad/issues/6672
2020-12-08 16:42:28 -08:00
Jeff Young 431c8dba3c Adjust undo when deleting members of a group.
Fixes https://gitlab.com/kicad/code/kicad/issues/6678
2020-12-09 00:18:36 +00:00
Jeff Young 5e9d9f5753 Special handling for presence of Ref or Value in groups.
Fixes https://gitlab.com/kicad/code/kicad/issues/6677
2020-12-09 00:18:36 +00:00
Seth Hillbrand 799e1efba2 Update group icons 2020-12-08 12:22:18 -08:00
Jeff Young b26a5972c5 LIB_TREE's SetFocus() override no longer getting called.
The KIPLATFORM stuff forces focus, but not through the SetFocus()
call.

Fixes https://gitlab.com/kicad/code/kicad/issues/6657
2020-12-08 17:46:10 +00:00
jean-pierre charras ac684ac7a3 Fix minor compil warnings. 2020-12-08 18:28:03 +01:00
jean-pierre charras 9c4eef2cef Fix a missing view update when loading a footprint from the fp viewer.
For some reason, a footprint loaded from the fp viewer did not have its
view parameters fully updated (view bounding box not moved to the right place).
The fix ensure these parameters are updated.
2020-12-08 17:52:30 +01:00
Jeff Young b1f0bf7334 More consistent naming. 2020-12-08 13:05:39 +00:00
Jeff Young 60ecd4698c Nets don't have properites; netclasses do. 2020-12-08 13:05:39 +00:00
Jeff Young 20ad2bee2f Naming conventions. 2020-12-08 13:05:39 +00:00
Marek Roszko 9407e6dc83 Another set of color msgpanel items stripped 2020-12-08 00:52:21 -05:00
Marek Roszko cbda1d7bf1 Remove more vestiges of old colored msg panel messages 2020-12-08 00:50:25 -05:00
Marek Roszko 97b5cff5fe Remove redundant message panel SetMsgPanel
SetMsgPanel( m_pcb ) proceeded to erase and recreate the msg panel anyway...
2020-12-08 00:35:37 -05:00
Marek Roszko b45eb56ddf Cleanup some msg panel usage using the no longer support colors
The color was being passed to the aPadding param now.....
2020-12-08 00:34:36 -05:00
Marek Roszko abb5cb8310 Fix up msg panel status on save slightly
- pcbnew should use status bar on success like eeschema
- Add a helper to clear msgpanel and set it in one go to avoid redraw delays due to doing processing in between
2020-12-08 00:28:07 -05:00
Marek Roszko d7154c4334 Skip no_connect_ nets in the appearance widget 2020-12-07 22:11:53 -05:00
Marek Roszko e88d41f764 Add bulk add/remove mode flag to the BOARD_LISTENER
This attempts to fix performance when importing large changesets from schematics.
The appearance control is a BOARD_LISTENER that would otherwise redraw per item imported which may cause lockups
2020-12-07 22:04:13 -05:00
Jeff Young 1f3cdffe6b Fix clipping of optimizer slider on OSX. 2020-12-08 00:13:29 +00:00
Jeff Young aa3e29ee7c Don't re-enter router on subsequent X key.
Fixes https://gitlab.com/kicad/code/kicad/issues/6656

Fixes https://gitlab.com/kicad/code/kicad/issues/4504
2020-12-08 00:13:29 +00:00
jean-pierre charras 588fd5e267 Better fix than 86b631b3 2020-12-07 18:28:32 +01:00
Jeff Young c7bd8fc987 A couple of missed "footprint" terminology updates. 2020-12-07 15:50:04 +00:00
Jeff Young 78129aabeb Fix another case of 413ff4525b. 2020-12-07 14:25:55 +00:00
jean-pierre charras 86b631b31e Fix incorrect use of ShowQuasiModal instead of ShowModal.
Fixes #6653
https://gitlab.com/kicad/code/kicad/issues/6653
2020-12-07 14:20:38 +01:00
Jeff Young d0f9503ee0 Add grouping for violation severities.
Fixes https://gitlab.com/kicad/code/kicad/issues/6616
2020-12-06 19:14:48 +00:00
Jeff Young 58afaeb9eb Use QuasiModal in all parents of ConfigPaths so help window works. 2020-12-06 18:44:24 +00:00
Jeff Young b10aa230f7 Remove no-longer-used DRC violation code.
Fixes https://gitlab.com/kicad/code/kicad/issues/6616
2020-12-06 15:19:33 +00:00
Jeff Young 2260597236 Fix more accidental event capturing.
Fixes https://gitlab.com/kicad/code/kicad/issues/5844
2020-12-06 13:33:23 +00:00
jean-pierre charras 16c92f4134 Fp editor: Add a tool tip in the vertical toolbar 2020-12-06 13:35:21 +01:00
Jeff Young f09ca9ceee Pass unhandled events when dragging in the router tool.
Fixes https://gitlab.com/kicad/code/kicad/issues/6630
2020-12-06 12:30:29 +00:00
Jeff Young 602476cdf2 Update SELECTION_TOOL when loading footprint editor settings.
Fixes https://gitlab.com/kicad/code/kicad/issues/6641
2020-12-06 12:13:16 +00:00
Jeff Young 68947864a1 Update zone layers along with corresponding copper layers.
Fixes https://gitlab.com/kicad/code/kicad/issues/6613
2020-12-05 23:31:12 +00:00
Jeff Young de082e9be7 Make footprints mostly covered in pads easier to select.
If all the uncovered space is at the very edge it doesn't feel like
there's anywhere to click but the disambiguation menu doesn't come
up.

Fixes https://gitlab.com/kicad/code/kicad/issues/6584
2020-12-05 23:02:45 +00:00
Jeff Young dbf273d5ec Don't leave HOLE_PROXY set; it messes subsequent tests.
Fixes https://gitlab.com/kicad/code/kicad/issues/6584
2020-12-05 19:44:02 +00:00
Jeff Young 4c5567a627 Allow colliding pads in netties as well as graphic shapes.
Fixes https://gitlab.com/kicad/code/kicad/issues/6584
2020-12-05 19:44:02 +00:00
Jeff Young d6c3c6f7fa Use footprintRect not ViewBBox for determining footprint bounds. 2020-12-05 19:44:02 +00:00
Jeff Young d43eefbad5 Formatting. 2020-12-05 19:44:01 +00:00
Seth Hillbrand 3704c1cdb7 New icons for v6
Fixes https://gitlab.com/kicad/code/kicad/issues/2542
2020-12-05 11:17:15 -08:00
jean-pierre charras f53958dd54 Pcbnew, PANEL_EDIT_OPTIONS: add helper messages to display info about LMB
click and the modifier keys actions.
2020-12-05 16:04:42 +01:00
jean-pierre charras 63088e8bdb Pcbnew: fix incorrect size of solder paste rectangular area of rect pads.
When the solder paste margin was the same for X and Y directions, the margin
was not taken in account (missing code)

Fixes #6621
https://gitlab.com/kicad/code/kicad/issues/6621
2020-12-05 11:51:08 +01:00
Jeff Young 4e100b8d03 Handle groups in clearance report, and make sure zone bboxes are cached.
Fixes https://gitlab.com/kicad/code/kicad/issues/6571
2020-12-04 20:49:14 +00:00
Jeff Young 4634802a58 Formatting. 2020-12-04 19:29:04 +00:00
Jeff Young 7b347d793b Change gears on no-connect net generation. See bug rpt.
Fixes https://gitlab.com/kicad/code/kicad/issues/6534

Fixes https://gitlab.com/kicad/code/kicad/issues/6615
2020-12-04 18:25:48 +00:00
Jeff Young f3e1ac8dbe Defensive code to prevent lookup of stale parent board.
Fixes https://gitlab.com/kicad/code/kicad/issues/6618
2020-12-04 14:01:54 +00:00
Jeff Young fd5e1fbdd4 Formatting and cleanup. 2020-12-04 14:01:54 +00:00
jean-pierre charras 2f3ca60c5e Pcbnew, modifiers for left click behavior: re-add highlight net option.
Due to last changes fixing the ALT key problems, the highlight net is
CTRL+SHIFT + left click on Windows and Linux
CTRL+ALT + left click on OSX

Fixes #6595
https://gitlab.com/kicad/code/kicad/issues/6595
2020-12-04 10:25:05 +01:00
Jeff Young 09bfb76545 Make sure dissallow constraints get added to rule.
Also improves some error reporting.

Fixes https://gitlab.com/kicad/code/kicad/issues/6566
2020-12-03 23:08:51 +00:00
Jeff Young e882753ebf Grid snapping fixes.
1) Uniformly honour the GAL grid snap settings
2) Make more uniform use of GRID_HELPERs
3) Smarten EDIT_LINE for mid-point snapping

Fixes https://gitlab.com/kicad/code/kicad/issues/6558
2020-12-03 19:55:58 +00:00
Jeff Young 43fe228367 Hook up a bit more of the EE_GRID_HELPER.
Fixes https://gitlab.com/kicad/code/kicad/issues/5985
2020-12-02 23:18:33 +00:00
Jeff Young 00edc85f4f Allow layer switching when routing from pad.
Additionally, don't process layer events from both main loop and
transitions -- it makes for a mess.

Fixes https://gitlab.com/kicad/code/kicad/issues/4832
2020-12-02 21:17:56 +00:00
Jeff Young f2ac6fcd44 Treat net 0 items as each being in their own net.
Fixes https://gitlab.com/kicad/code/kicad/issues/6534
2020-12-02 20:05:47 +00:00
Jeff Young d06d35a74d Formatting. 2020-12-02 20:05:47 +00:00
jean-pierre charras 64f555079a Code cleanup related to zoom:
- remove outdated code or comment coming from old drawing code using wxDC
- move zoom values lists to zoom_defines.h
- fix incorrect zoom max and min values (gal scaling factor limits).
2020-12-02 18:35:28 +01:00
jean-pierre charras fcce62f0a4 cleanup related to zoom definitions 2020-12-02 18:35:27 +01:00
Jeff Young 96c9680922 Separate width adjustments between single track and diff pair.
Fixes https://gitlab.com/kicad/code/kicad/issues/6572
2020-12-02 16:24:33 +00:00
jean-pierre charras 71ab42e60a Minor fixes and cleanup related to zoom definitions.
Mainly move 2 define relative to Zoom from convert_to_biu.h to zoom_defines.h.
Will make some changes/fixes in zoom code more easy.
2020-12-02 10:14:35 +01:00
Jeff Young 1cd8426bcb Fix latent dyn_cast bug. And a bunch of formatting issues. 2020-12-02 00:29:00 +00:00
Jeff Young f70153b849 Implement Group Properties in Footprint Editor.
Also fixes a pair of typos that were keeping delete of a group in the
Footprint Editor from working.

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

Fixes https://gitlab.com/kicad/code/kicad/issues/6578
2020-12-01 23:43:53 +00:00
Jeff Young df262eaa06 Make prev/next marker work reliably on all platforms.
Requires us to move from arrow-keys to our own commands (the only
way that the OSX wxWidgets impl doesn't eat the keys when the dataVIew
has focus).

While there we might as well add a command to exlucde markers.

ADDED Prev Marker, Next Marker, Exclude Marker

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

Fixes https://gitlab.com/kicad/code/kicad/issues/5501
2020-12-01 22:37:07 +00:00
Jeff Young 3c521942ed Smarten isEmpty checks to include nothing-but-whitespace.
Fixes https://gitlab.com/kicad/code/kicad/issues/6567
2020-12-01 16:39:06 +00:00
Jeff Young d50d1d84da Fix some issue with group in selection logic. 2020-12-01 14:04:01 +00:00
Jeff Young 288ab7ed6f Minor formatting cleanup. 2020-12-01 14:04:01 +00:00
Ian McInerney aa09418a14 Fixup memory lifespan of GAL options for the settings preview canvas
The canvas keeps a reference to the settings object, so we
can't pass one from the stack because it runs into lifetime
issues.

Also cleanup some loop-iterator problems.

Fixes https://gitlab.com/kicad/code/kicad/issues/6338
2020-12-01 01:12:07 +00:00
Jeff Young dadfe03804 Reinstate 5.1 net-tie hack since "real" net-ties got pushed to 7.0.
Fixes https://gitlab.com/kicad/code/kicad/issues/6556
2020-11-30 16:11:15 +00:00
jean-pierre charras 7261086779 gendrill_file_writer_base: better algo to sort holes:
Holes were correctly sorted by size, but inside the same hole size
the holes were strangely sorted.
Now holes are sorted by hole size, and (inside the same size) by position.

Fixes #6553
https://gitlab.com/kicad/code/kicad/issues/6553
2020-11-30 16:59:13 +01:00
Jeff Young c66e373119 Cleanup of PCBNew message panel routines.
Also fixes bugs where invalid netclasses were reported as "Default",
and SMD pads were reported as having "0.0000" drills.
2020-11-30 14:38:06 +00:00
Jeff Young 3a9a6e22bc Fix issues in reporting netclasses.
1) make sure we get the default netclass when we want it
2) escape for HTML (particularly important for "<invalid>", but also
for reporting user rule names, netclass names, etc.)
2020-11-30 14:38:06 +00:00
Jeff Young 3989c19c41 Don't test pad:track clearances in pad tester.
They've already been tested in the track tester.

Fixes https://gitlab.com/kicad/code/kicad/issues/6554
2020-11-30 14:38:06 +00:00
Wayne Stambaugh 1f8b7b6149 Pcbnew: change block selection and heuristic context menu modifier keys.
Do not use the alt modifier key to force the display of the heuristic
context menu.  This causes a conflict with menu selection on windows
and immediately dismisses the disambiguation context menu.

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/1873
2020-11-30 08:51:09 -05:00
Jeff Young e09271ca0e Fixes for hole clearance and hole-to-hole tests.
1) Separate out CONSTRAINT types
2) Filter both source and dest pads/vias for drilled holes when doing
   hole-to-hole checks.  We were checking the items being put into the
   DRC RTree, but not the items we were scanning.
3) Add hole clearance to Board Setup Constraints panel.

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

Fixes https://gitlab.com/kicad/code/kicad/issues/4683
2020-11-29 23:35:23 +00:00
Jeff Young 0c2cd1abb2 File left out of last commit.
Fixes https://gitlab.com/kicad/code/kicad/issues/6478
2020-11-29 21:21:20 +00:00
Jeff Young b171d381f0 Collapse Redraw3DView and Update3DView into a single routine.
Also fixes some errors about what the flag meant (model changed,
NOT redraw immediately).

Fixes https://gitlab.com/kicad/code/kicad/issues/6478
2020-11-29 21:08:30 +00:00
Jeff Young 3ca06700fc Formatting. 2020-11-29 20:00:16 +00:00
Marek Roszko 9322b3a4e1 Use the C++ isnan function 2020-11-29 11:30:45 -05:00
Jeff Young 889408c96a More improvements to new selection disambiguation.
Also a rationalization of text polygon generators, with the "standard"
version inherited from BOARD_ITEM now giving the bounding box.  This
requires callers who want the (much) more expensive stroke-based one
to call it explicitly (and brings PCB_TEXT in line with the was FP_TEXT
already was.

Fixes https://gitlab.com/kicad/code/kicad/issues/6525
2020-11-29 14:02:46 +00:00
Jeff Young 3c25abbf2f Ignore netcode when expanding track selections.
Fixes https://gitlab.com/kicad/code/kicad/issues/6529
2020-11-29 10:57:45 +00:00
Michael Kavanagh becc811775 Make path substitutions grid read only in lib table dialog
Fixes https://gitlab.com/kicad/code/kicad/issues/5624
2020-11-29 09:51:53 +00:00
Jon Evans f78d909ffb Correctly set up projects for converted boards
Fixes https://gitlab.com/kicad/code/kicad/-/issues/6209
2020-11-28 22:46:05 -05:00
Marek Roszko 5e117bfaa5 Don't allow nan values for dxf text alignment points to creep in
Literally the only place dxflib decides to default to NaN....
2020-11-28 20:13:42 -05:00
Marek Roszko cc7264c0b9 Subtract off the block's base point coordinate from the insert translation 2020-11-28 20:13:42 -05:00
Marek Roszko cac0d93dfd Implement DXF INSERT scale
This has a chance of being wrong due to how the dimensions are stored in these intermediate objects
2020-11-28 20:13:42 -05:00
Jeff Young e4d0ffd607 Retire old SKIP_STRUCT filtering.
We already added the checkedPairs stuff which deals with a:b vs b:a
better, and the SKIP_STRUCT version had side-effects between the two
tests.

Fixes https://gitlab.com/kicad/code/kicad/issues/6539
2020-11-29 00:08:23 +00:00
Roberto Fernandez Bautista 0691e942f4 CADSTAR Archive Importer: Fix duplicate KIID for loaded elements
Don't use clone to copy an EDA_ITEM. Use Duplicate().
Even if you give the clone a new KIID, all its children will still be clones.
Create Duplicate() in LIB_PART
2020-11-28 17:18:17 +00:00
Roberto Fernandez Bautista 71f9847601 CADSTAR Archive Importer: Only load the Master variant 2020-11-28 17:18:17 +00:00
Roberto Fernandez Bautista e3334cd25c Non-KiCad Project importers: Do not rebuild the netlist or reannotate after import
Fixes https://gitlab.com/kicad/code/kicad/-/issues/6383
2020-11-28 17:18:17 +00:00
Roberto Fernandez Bautista 78e3f917d9 CADSTAR PCB Archive Importer: Fix loading of old CADSTAR designs and Do Not Keep Upright
Older CADSTAR versions used 1/10 degree whereas newer versions use 1/1000 degree.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/6437
2020-11-28 17:18:17 +00:00
Roberto Fernandez Bautista f2ba9f7ac3 CADSTAR PCB Archive Importer: Correctly load the pad numbers as per the original design
To load the pad numbers correctly we need to also check the PART DEFINITION for each component
2020-11-28 17:18:17 +00:00
Roberto Fernandez Bautista 5db78a3d53 Fix typo in zone filling progress reporter. "insulated" -> "isolated" 2020-11-28 17:18:17 +00:00
Jeff Young d3c952b122 Commit pending changes from grids.
Fixes https://gitlab.com/kicad/code/kicad/issues/6527
2020-11-28 11:44:05 +00:00
Jeff Young b1adb93c16 PCB_GROUP_Ts need to be added and removed from view.
The SELECTION_TOOL's m_enteredGroup also needs to be updated when
said group is deleted via undo or redo.

Fixes https://gitlab.com/kicad/code/kicad/issues/6493
2020-11-27 23:34:58 +00:00
Jeff Young 190197794d Apply a similar fix as pads for B&W via printing.
Fixes https://gitlab.com/kicad/code/kicad/issues/6496
2020-11-27 22:31:07 +00:00
Jeff Young 896ad4a749 Rewrite PCBNew selection disambiguation based on shapes.
The new shape architecture gives us the opportunity to make text
selection much more intuitive by actually looking at the glyph
shapes.  Before text would be selected when you clicked in the
descenders area (which was usually blank given uppercase letters
and digits).

Fixes https://gitlab.com/kicad/code/kicad/issues/6525
2020-11-27 22:03:14 +00:00
Jeff Young 0293f880ec Fix a bunch of group issues with importing graphics.
Groups do not own their children; they only reference them.  That
being said, they do own *selection* and *moving* of their children.
This might address some of 6493, but in any case will be a
pre-requisite for fixing it.

Fixes https://gitlab.com/kicad/code/kicad/issues/6493
2020-11-27 22:03:14 +00:00
Jon Evans 0bbb7bdb0c Allow selecting graphic footprints in high-contrast mode
Fixes https://gitlab.com/kicad/code/kicad/-/issues/6490
2020-11-26 20:11:16 -05:00
Jeff Young 6f3b0c452f Make sure unfilled zones get an MD5 hash.
Fixes https://gitlab.com/kicad/code/kicad/issues/6515
2020-11-26 20:21:46 +00:00
Jeff Young 06b9439dbf Edge Cuts shapes have zero width.
Fixes https://gitlab.com/kicad/code/kicad/issues/6517
2020-11-26 17:42:46 +00:00
Jeff Young b3204a06fd Minor layout improvements to Router Settings dialog. 2020-11-26 17:41:09 +00:00
Jeff Young fc2bdc49de Once more into the depths of hell... er, I mean fix a focus issue.
So the new steals-focus protection stuff works well when there's a
focused control, but not as well when there's a modal dialog up which
happens not to have a focused control (or worse, a focusable control).

This adds a second mechanism for also checking to see if a modal dialog
is up (something that wxWidgets, true to form, makes very difficult).

Fixes https://gitlab.com/kicad/code/kicad/issues/6520
2020-11-26 16:47:40 +00:00
Jeff Young 2a87980d45 Remove overly verbose messaging. 2020-11-26 16:47:40 +00:00
Jeff Young 94de8ada97 Formatting and naming conventions. 2020-11-26 16:47:40 +00:00
Jeff Young 09587ef4fb Another attempt at GTK fix. 2020-11-26 00:05:57 +00:00
Jeff Young 96acb12295 Attempt to fix GTK compile issue. 2020-11-25 23:07:49 +00:00
Jeff Young b8414174af Duplicate Eeschema's select-ref-number strategy in PCBNew.
Fixes https://gitlab.com/kicad/code/kicad/issues/6504
2020-11-25 17:13:00 +00:00
Jeff Young 7a2a302117 Fix several issues with pad/hole colors when B&W printing.
Fixes https://gitlab.com/kicad/code/kicad/issues/6496
2020-11-25 17:13:00 +00:00
jean-pierre charras 5c08ad1ab9 Fix a few issues when copying a footprint from fp editor to clipboard, and paste it:
- ref and value texts were converted to user texts.
- fpid was left empty, thus creating a potential issue if pasted in the board editor.
Now:
- ref and value texts are no changed, and not copied is pasted in the footprint editor
(these texts already exist)
- a dummy fpid (clipboard:<md5 string>) is added if pasted in board editor
(Pasting a (partial) footprint from fp editor to a board editor is certainly not
a good idea but is possible)
2020-11-25 17:13:35 +01:00
jean-pierre charras 68625494f3 specctra_export: fix an issue with custom and chamfered/round rect pads.
Is some cases a created pad stack name had the same name as an other pad stack
having a slightly different shape, thus creating pads with a incorrect shape on board.

Fixes #6495
https://gitlab.com/kicad/code/kicad/issues/6495
2020-11-25 13:57:46 +01:00
Marek Roszko 5607420339 Fix polylines being skipped in DXF blocks 2020-11-25 00:06:02 -05:00
Ian McInerney d50d728d19 Cleanup compiler warnings 2020-11-25 00:08:09 +00:00
Jeff Young 1cae0b6c08 Make sure board edges have 0 width.
When we divide up a rectangle or polygon (for better RTree usage)
we need to make sure the individual segments also have their widths
zeroed out.

Fixes https://gitlab.com/kicad/code/kicad/issues/6482
2020-11-24 23:49:28 +00:00
Jeff Young 9c7c05c161 Mostly formatting cleanup but a few type-casting cleanups too. 2020-11-24 22:16:41 +00:00
Jeff Young 31a26e7d25 Add missing GetEffectiveShape(). 2020-11-24 22:16:27 +00:00
Jeff Young d1bddcf879 Implement GetEffectiveShape() for PCB_TARGET_Ts.
Fixes https://gitlab.com/kicad/code/kicad/issues/6488
2020-11-24 20:21:40 +00:00
Jeff Young 2f3f4c209e Make sure DRC reports a missing board outline.
Fixes https://gitlab.com/kicad/code/kicad/issues/6481
2020-11-24 14:22:27 +00:00
Jeff Young da0d89645f Default to updating 3D models.
Also cleans up some user strings to try and make this clearer, and to help
translators make it clearer (neither of which is easy to do).

Fixes https://gitlab.com/kicad/code/kicad/issues/6475
2020-11-24 13:48:33 +00:00
Marek Roszko 272ec53e03 Make DXF import slightly prettier by copying text style width factor
It's impossible to replicate the original cad font style but replicating width factors at least
gives you something closer.
2020-11-24 07:15:49 -05:00
jean-pierre charras f64360e915 pcbnew, diff pair config save: fix truncation due to use of int instead double
Fixes #6477
https://gitlab.com/kicad/code/kicad/issues/6477
2020-11-24 09:30:31 +01:00
Marek Roszko c07a38b91b Fix MSVC compilation error with wxString fed to strtol 2020-11-23 21:26:20 -05:00
Marek Roszko 45598f2933 Add handling of DXF arbitrary axis/extrusions
This fixes some DXFs imports where unforunately CAD tools like SolidWorks
randomly decide to mirror circle definitions across the "z" axis (resulting in x or y axis flips in 2d)
Most likely live projection from 3D to 2D drawings introduces this.
However this is DXF specification to describe it so obtusely with vectors for a 2d drawing.
2020-11-23 21:24:38 -05:00
Marek Roszko 44f4d41bba Fix member variable name 2020-11-23 21:24:38 -05:00
Jeff Young 41aa97d0d2 Make translations a bit easier. 2020-11-23 22:09:15 +00:00
Jeff Young 5f8a8c6850 Read/write "no net" (0) for pins with a no-connection marker.
Fixes https://gitlab.com/kicad/code/kicad/issues/2273

Fixes https://gitlab.com/kicad/code/kicad/issues/5587
2020-11-23 19:47:55 +00:00
Jeff Young 62e5500420 Cleanup dialog layout & punctuation. 2020-11-23 19:47:55 +00:00
Marek Roszko 32ec8fa928 Implement correct placement of DXF block contained entities
DXF blocks are virtual groups of items.
The insert entity is what actually places all the block contents at a given coordinate.
This should fix importing drawings from professional CAD tools like SolidWorks that will have a good bit of blocks.
2020-11-23 10:10:35 -05:00
Marek Roszko bf59b422bc Record blocks being received during the import 2020-11-23 10:07:30 -05:00
jean-pierre charras 976c6262f4 French translation update (fix also trailing spaces in a few sentences) 2020-11-23 11:42:25 +01:00
qu1ck b32c2a6c90 Refactor EDA_TEXT::TransformToSegmentList() to return a vector of points
This allows reading text object as it is rendered through python API.
2020-11-23 07:50:54 +00:00
Marek Roszko 51fcbe47a6 Remove colons from the import gfx dialog fields 2020-11-22 22:15:58 -05:00
Marek Roszko 90db12df2e Rename the dxf units option to Default Units
The reality is the DXF file can still override the selected unit option which is totally fine.
In fact, per specification, there is a way to change units mid-file with block records :/
2020-11-22 22:15:58 -05:00
Marek Roszko f5e9a2a6da Use "microns" as the name to be consistent with DXF specification 2020-11-22 15:44:57 -05:00
Marek Roszko 88bee5e32f Use the last used dxf units selection on dialog open 2020-11-22 15:44:36 -05:00
Marek Roszko 39fe89096e Allow specifying the DXF file units on import
There is no guarantee DXF contains $INSUNIT to specify the units of the file as its optional.
This allows the user to specify the expected units via dropdown.
SolidWorks can definitely generate such unit lacking files as an example
2020-11-22 15:39:37 -05:00
Jeff Young c9524e707e Don't load preferences from disk when init'ing PANEL_COLOR_SETTINGS.
It wipes out any changes that have been made in the SETTIGNS_MANAGER.

Fixes https://gitlab.com/kicad/code/kicad/issues/6339
2020-11-22 14:24:55 +00:00
Jeff Young 2932fe1e64 Fix rotation of dimension objects.
Fixes https://gitlab.com/kicad/code/kicad/issues/6424
2020-11-21 23:53:06 +00:00
Jeff Young 1391774f64 Re-factor boundary/courtyard checker error handling.
ADDED Footprint Checker dialog to display the results in.

Fixes https://gitlab.com/kicad/code/kicad/issues/6446
2020-11-21 20:57:35 +00:00
jean-pierre charras 22bbe9618e French translation update 2020-11-21 19:58:13 +01:00
Marek Roszko f130970469 Handle lineweight in dxf import more properly
lineweights can be set to inherit from the layer or block.
2020-11-21 09:22:11 -05:00
Jeff Young ff3bd7e72a Fix a crash bug in DRC, and equate Margin to Edge.Cuts. 2020-11-20 21:22:27 +00:00
Jeff Young b123318cf6 Encourage use of full DRC for board & footprint malformed outlines.
It shows much more detail.  Removes some nag dialogs and places
hypertext links in others.

Also fixes the auto-layer-showing to correctly show Edge.Cuts or
F.CrtYd or B.CrtYd for errors relating to them.

Fixes https://gitlab.com/kicad/code/kicad/issues/6446
2020-11-20 17:24:52 +00:00
Graham Keeth 4bf79f2b90 Remove ddr3_length_match.py
The script is designed to be used with a particular board that does not
exist in the repository.
2020-11-20 08:10:53 +00:00
Marek Roszko d59053b775 Fix dxf import making all circles filled
Filled objects in dxf is actually not handled at all, they are implemented as "hatched" objects
2020-11-19 21:00:53 -05:00
Marek Roszko d7e10c22c6 dxflib_qcad: match rename of DimAngularData to DimAngularData2L
upstream 1655be6c7d58609397e9f04cfaff08336d69b20e
2020-11-19 19:19:59 -05:00
Jeff Young 533d344e3f Honour pad falshing when colliding with DRC RTree.
Fixes https://gitlab.com/kicad/code/kicad/issues/6443
2020-11-19 23:55:14 +00:00
Jeff Young 0d850f98cd Cleanup. 2020-11-19 22:48:18 +00:00
Jeff Young 6e0c58adec Include local clearances even if no implicit rule was found.
The real test should be to apply it any time an explicit rule is
*not* found.

Fixes https://gitlab.com/kicad/code/kicad/issues/6426
2020-11-19 22:48:18 +00:00
Jeff Young 0517f783e1 Ease i18n of zone descriptions. 2020-11-19 22:48:18 +00:00
Seth Hillbrand 4e36036435 Avoid calculating on-endpoint hits
When hitting on a start/end point the arc may incorrectly be assigned as
not-connected when the angle does not wrap around from 0-360

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

Fixes https://gitlab.com/kicad/code/kicad/issues/6380
2020-11-19 14:46:21 -08:00
Jeff Young 9e9946628a Go back to arrow cursor on a cancel (or finish).
Fixes https://gitlab.com/kicad/code/kicad/issues/6421
2020-11-19 20:09:28 +00:00
Jeff Young 203c860f01 Ensure better smoothing for zones clipped by board edges. 2020-11-19 18:34:30 +00:00
Jeff Young 876b87b64e Minor performance fixes for PCBNew selections. 2020-11-19 17:23:02 +00:00
Jeff Young 04c84fa842 Remove some expensive trace calls. 2020-11-19 15:47:32 +00:00
Jeff Young 18ad58cf4c Replace legacy copper edge heuristics.
Fixes https://gitlab.com/kicad/code/kicad/issues/6435
2020-11-19 13:35:26 +00:00
Dominik Wernberger 99da663e82 Remove unused variables plus some more fixes from CppCheck
Remove unused variables plus a few more fixes from CppCheck

Remove unused variables plus a few more fixes from CppCheck
2020-11-19 02:28:47 +00:00
Werni 0e44f5128c Add const specifiers 2020-11-18 19:50:36 +00:00
Jeff Young c1d1c12b41 Simplify message panel code.
We've had the colours turned off for two releases now without any
screaming or gnashing of teeth, so it's time to clean up the code.
2020-11-18 17:32:40 +00:00
jean-pierre charras d3a72f73e3 Kicad: fix environment variable changes after running Pcbnew in some cases.
When pcbnew is built with python support, the env vars defined inside Kicad
(and used mainly in paths) are rewritten for the python environment.
Unfortunately, the values are rewritten as UTF8 string, but in Kicad they are
just expected in utf32 unicode values.

This is now fixed by rewriting the initial values in Kicad env, after the
python environment is initialized.
2020-11-18 17:33:58 +01:00
Marek Roszko 16e3e59495 Split out arrayDim and MIRROR templates from macros.h
These were not macros
2020-11-17 20:21:04 -05:00
Jeff Young 024812e5dd Resolve legacy netclass definitions read from PCB file.
Fixes https://gitlab.com/kicad/code/kicad/issues/6415
2020-11-18 00:17:07 +00:00
Jeff Young bb3cbe3fa4 Pretty-up report a bit. 2020-11-18 00:17:07 +00:00
Jeff Young 54427fd594 Make sure deleted text items are removed from view and selection.
Fixes https://gitlab.com/kicad/code/kicad/issues/6407
2020-11-17 20:48:15 +00:00
Jeff Young bfc4afc506 Restore the 5.1 NetTie hack.
We really need to do first-class net ties....

Fixes https://gitlab.com/kicad/code/kicad/issues/6416
2020-11-17 20:07:21 +00:00
Jeff Young 795e45836d Fix assert in DRC. 2020-11-17 17:41:57 +00:00
Jeff Young b2d86ec7c9 Don't double-check DRC clearances (a:b and b:a).
Fixes https://gitlab.com/kicad/code/kicad/issues/6417
2020-11-17 16:58:39 +00:00
Jeff Young a207bd97bb Naming conventions. 2020-11-17 16:05:49 +00:00
Jeff Young dff5173baf Exorcise some instances of "modedit". 2020-11-17 16:05:48 +00:00
jean-pierre charras a431fd99ca Fix crash when converting a Eagle board to a Kicad board.
During conversion a illegal layer number was used without filtering
2020-11-17 10:23:44 +01:00
Ian McInerney 7d1a4a4224 Add version information to footprint sexpr files and clipboard
This allows the parser to properly interpret the sexpr version
of the footprint so that it can throw future format errors or
do version specific parsing properly.
2020-11-16 23:19:09 +00:00
Jeff Young 7933935b4a Naming conventions. 2020-11-16 00:04:55 +00:00
Jeff Young f21e308830 Tweak fill logic to also catch filled primitives in custom pad shapes. 2020-11-15 23:14:46 +00:00
Ian McInerney ceb51bb103 pcbnew: Only write fill flag for circles, rectangles and polygons
The other shapes don't have the same concept of being filled
(their fill is only a viewing mode, not an actual saved property).
2020-11-15 22:03:59 +00:00
Ian McInerney 8c08b861ab Cleanup some compiler and Coverity warnings 2020-11-15 21:41:38 +00:00
Ian McInerney b31e97cfed Fix FP/PCB_SHAPE fill sexpr syntax to be backwards compatible
Previously the fill for shapes inside a footprint was not being
properly imported from older versions becase the default of no
flag changed from representing filled to representing no fill.

Introduce explicit filling information, and continue to treat no
flag on a polygon as meaning it is filled (which is the legacy
behavior).

Fixes https://gitlab.com/kicad/code/kicad/-/issues/6393
Fixes https://gitlab.com/kicad/code/kicad/-/issues/6390
2020-11-15 21:28:27 +00:00
Jeff Young 114621eb2c Move footprint shape offset/rotation stuff to the right place.
Most shapes are already offset/rotated (with thier non-offset/rotated
points in start0, etc.).
2020-11-15 21:04:12 +00:00
Jeff Young 1ce1e493d6 A rule zone is not really a BOARD_CONNECTED_ITEM.
Or at least it shouldn't always be treated as one.

Fixes https://gitlab.com/kicad/code/kicad/issues/6382
2020-11-15 20:23:15 +00:00
Jeff Young b227d2b910 More component -> symbol. 2020-11-15 20:23:15 +00:00
Jeff Young 42687a33ff Terminology and layout cleanup in PCBNew Edit Options 2020-11-15 20:23:15 +00:00
Jeff Young 61821f3ee4 GUI guidelines in PCBNew origin setup. 2020-11-15 20:23:15 +00:00
Jeff Young 3f1a58bd06 Replace "module" with "footprint" in PCB sexpr. 2020-11-15 20:23:15 +00:00
jean-pierre charras 9aa6e40b79 Eeschema, fields_grid_table.cpp: fix a crash when the eeschema settings are not available.
It happens if the svhematic is not open when opening the symbol editor.
Fix also a compil warning.

Fixes #6384
https://gitlab.com/kicad/code/kicad/issues/6384
2020-11-15 13:50:10 +01:00
Jeff Young e97faa6afd No need for LAST if the compiler still barks anyway. 2020-11-14 22:02:22 +00:00
Jeff Young d094f86b1a Finish module cleanup (except for xpms). 2020-11-14 22:00:12 +00:00
Jeff Young 6e6f6a2d72 Use legacy boardThickness for via length when we don't have a stackup 2020-11-14 21:22:35 +00:00
Jeff Young 61bca4aaa4 A bit of "module" erradication, nameing conventions, and formatting. 2020-11-14 21:21:54 +00:00
Jeff Young d2a88234b6 Fix issue deleting footprint libraries from table.
wxWidgets pageChanged handler is evidently buggy.  Who would have
guessed?
2020-11-14 20:12:49 +00:00
Jeff Young 666c11965a Clean up some more MODULE terms. 2020-11-14 19:56:06 +00:00
Jeff Young 7bd31d5237 Naming conventions. 2020-11-14 18:26:03 +00:00
Jeff Young 2d001796a3 Take into account footprint rotation too. 2020-11-14 17:24:27 +00:00
Jeff Young 2eb71447e4 DRC RTree fixes.
1) Don't collide against hidden text
2) Don't collide in both directions (a:b & b:a)
2020-11-14 16:59:34 +00:00
Jeff Young 8bae52d1c3 Correct naming conventions. 2020-11-14 14:29:11 +00:00
Jeff Young 74ad1562d9 Make FP_SHAPE GetEffectiveShape() relative to board, not footprint. 2020-11-14 14:15:02 +00:00
Jeff Young aa06de2db4 Legacy polygons on non-Edge_Cuts layers were always filled. 2020-11-14 14:15:02 +00:00
Jeff Young 774a671b54 Fix footprint-relative coordinates when drawing polygons. 2020-11-14 14:15:02 +00:00
jean-pierre charras 103dbb9fbd Some fixes in python footprint wizards 2020-11-14 13:38:44 +01:00
Dominik Wernberger 28991ddf58 Rename D_PAD to PAD 2020-11-14 09:37:45 +00:00
Dominik Wernberger 54878b04a5 Rename MODULE to FOOTPRINT 2020-11-14 09:37:45 +00:00
Dominik Wernberger a4650e7269 Rename GetModules to GetFootprints 2020-11-14 09:37:45 +00:00
jean-pierre charras dfddd19b17 French translation update.
Fix also a typo.
2020-11-14 09:02:36 +01:00
jean-pierre charras c58b3fe8a4 Fix a compil issue. 2020-11-14 08:51:21 +01:00
jean-pierre charras 7265f84358 fix PAD::TransformShapeWithClearanceToPolygon() incorrect calculation in some cases.
For round rect pads, when the arc error was OUTSIDE, the shape was too big and creates
bad shape for chamfered round rect pads.
For chamfered pads, when the clearance value was not 0, the chamfer was not at the
right place.
2020-11-14 08:50:58 +01:00
Marek Roszko b996c0d2f5 Fix typo in last commit 2020-11-13 22:16:23 -05:00
Marek Roszko 7fc19b7592 Turn off live resize in pcbnew on Windows
The performance of live resizing isn't great. Windows can send mouse moves at 1000 Hz which is faster than the complex appearance panel + canvas can paint properly.
2020-11-13 22:15:32 -05:00
Jeff Young ec020dd19f First-class support for filled shapes. 2020-11-14 01:40:32 +00:00
Jeff Young 86b6afd14b More cleanup of MODULE to see if it fixes SWIG error. 2020-11-13 21:07:36 +00:00
Jeff Young 47e86d76fb Cleanup prior to adding filled flag. 2020-11-13 21:07:36 +00:00
Wayne Stambaugh 18fac23c35 Fix python module build error. 2020-11-13 14:37:52 -05:00
Jeff Young 34b13e66bf Fix typo in SWIG stuff. 2020-11-13 17:55:54 +00:00
Jeff Young 49402fe760 Keep track of COMPONENT -> FOOTPRINT map.
Changed footprints will still only be found in the COMMIT, so
searching for them in the board won't work.

Fixes https://gitlab.com/kicad/code/kicad/issues/6363
2020-11-13 17:55:54 +00:00
Roberto Fernandez Bautista b29cd8e3a1 Rewrite EDIT_TOOL::FilletTracks to only carry out the operation when one item is connected to the anchors
Fixes https://gitlab.com/kicad/code/kicad/-/issues/6103
2020-11-13 17:43:21 +00:00
Roberto Fernandez Bautista 498c4121b3 Fix and rename CONNECTIVITY_DATA::GetConnectedItems(aItem, aAnchor, aTypes[] ) to GetConnectedItemsAtAnchor
- Fix the function so it actually returns the connected items (previously it was returning aItem every time)
- Make the function const
- Rename the function so that it is not confused with the other function of the same name
- Add doxygen comments for the function
2020-11-13 17:43:21 +00:00
Roberto Fernandez Bautista bdc89df333 EDIT_TOOL::FilletTrack Change STATUS_TEXT_POPUP messages to an infobar instead 2020-11-13 17:43:21 +00:00
Jeff Young bdbb68f813 MODULE -> FOOTPRINT. 2020-11-13 16:04:03 +00:00
Jeff Young 3451ac3088 PCB_MODULE_T -> PCB_FOOTPRINT_T 2020-11-13 15:16:24 +00:00
Jeff Young 63a54d003e More module -> footprint. 2020-11-13 15:16:24 +00:00
Jeff Young 522d64968e Yet more module -> footprint. 2020-11-13 15:16:24 +00:00
Jeff Young 9106cc19bf Yet another tranche of module -> footprint. 2020-11-13 15:16:24 +00:00
Jeff Young 2cc9dad4ff More module -> footprint. 2020-11-13 15:16:24 +00:00
Jeff Young 8c947b69b0 More module -> footprint. 2020-11-13 15:16:24 +00:00
Jeff Young fc9cf1d827 More module -> footprint. 2020-11-13 15:16:24 +00:00
Jeff Young 52a46341db More module -> footprint. 2020-11-13 15:16:24 +00:00
Jeff Young a3a9ef4f32 Naming conventions. 2020-11-13 15:16:24 +00:00
Jeff Young f5443de7f9 D_PAD -> PAD. 2020-11-13 15:16:24 +00:00
Jeff Young 2bc004eb0b Prepare for D_PAD -> PAD. 2020-11-13 15:16:23 +00:00
Jeff Young 84dd5108ba Remove some "class_" prefixes from files. 2020-11-13 15:16:23 +00:00
jean-pierre charras 72beaf1538 Pcbnew, DIALOG_BOARD_REANNOTATE: fix some cosmetic issues.
Fixes #6370
https://gitlab.com/kicad/code/kicad/issues/6370
2020-11-13 08:59:23 +01:00
jean-pierre charras 4d7aa2f9c9 Pcbnew, Pad properties dialogs: fix some issues related to chamfered rect shapes. 2020-11-12 20:13:28 +01:00
Wayne Stambaugh 43a4cf7957 Coverity fixes.
CIDs 309391, 310711, 310712, and 313055.
2020-11-12 08:15:49 -05:00
Simon Richter 1faee7fdce Fix SWIG includes 2020-11-12 12:25:11 +01:00
Jan Mrázek fc8bf6f0fe
Allow a user to remap layers in Eagle import
ADDED Allow for user mapping of layers in Eagle import
ADDED Support required and optional layers in the layer mapping dialog
ADDED Add base class for plugins supporting remappable layers
2020-11-12 11:37:04 +01:00
Jeff Young f7333ad64a Update some classnames including archaic zone names. 2020-11-12 10:31:25 +00:00
jean-pierre charras fb218e3c9b Pcbnew: allows filled option ( 0 outlines width ) for graphic items rect and circle.
It was allowed inside editors, dialog properties and when saving the board file.
However it was not allowed when reading the file. It is now allowed.

Fixes #6355
https://gitlab.com/kicad/code/kicad/issues/6355
2020-11-12 09:01:08 +01:00
Jeff Young 1e44172d40 Redraw all objects after Preferences in case colours changed.
Fixes https://gitlab.com/kicad/code/kicad/issues/6341
2020-11-11 17:52:15 +00:00
Jeff Young da5cfb5df1 Improve commenting. 2020-11-11 17:52:15 +00:00
jean-pierre charras c78c8aadcf Pcbnew: fix incorrect tool tip.
Fixes #6356
https://gitlab.com/kicad/code/kicad/issues/6356
2020-11-11 18:39:28 +01:00
Wayne Stambaugh 7a7719bf97 Pcbnew: layer stack up dialog layout fixes. 2020-11-11 12:02:11 -05:00
Wayne Stambaugh 87da9271a4 Minor Pcbnew dialog layout fixes. 2020-11-11 11:08:54 -05:00
Jeff Young 5e569e81e7 Performance enhancements for PNS. 2020-11-11 15:32:30 +00:00
Jeff Young 43001cae38 Simplify Net Inspector. (Remove via length and group sorting ctrls.)
Also renames files & classes to fit dialog title and updates method
names to match coding guidelines.
2020-11-11 14:41:17 +00:00
Jeff Young e4870ee87e Better nullptr safety for m_netinfo.
Fixes https://gitlab.com/kicad/code/kicad/issues/6347
2020-11-11 11:25:46 +00:00
Ian McInerney d88eaaf477 Fix various compiler and Coverity warnings 2020-11-11 00:41:02 +00:00
Jeff Young ce3b2921bd Sort potential start candidates by distance from cursor.
Fixes https://gitlab.com/kicad/code/kicad/issues/1926
2020-11-10 23:50:57 +00:00
Jeff Young 3a35a5d5f8 Make use of polymorphism for locking/unlocking.
Fixes https://gitlab.com/kicad/code/kicad/issues/6350
2020-11-10 22:12:48 +00:00
Jeff Young 13e939ffa0 More Module -> Footprint. 2020-11-10 21:20:03 +00:00
Jeff Young 812b714ccd More Module -> Footprint and a bit of formatting cleanup. 2020-11-10 20:53:12 +00:00
Wayne Stambaugh 48ab3a2819 Pcbnew: minor pad properties dialog layout fixes. 2020-11-10 15:44:23 -05:00
Wayne Stambaugh 010e147700 Pcbnew: minor geographical annotation dialog layout fixes. 2020-11-10 15:23:11 -05:00
Jeff Young 6e0a40e32e Cleanup. Push more editing functions to toolset.
Also cleans up some more Module -> Footprint items.
2020-11-10 20:14:26 +00:00
Wayne Stambaugh bc0dcdd5ce Pcbnew: minor P&S router dialog layout fixes. 2020-11-10 14:56:29 -05:00
Wayne Stambaugh 3589efd759 Pcbnew: minor plot dialog layout fixes. 2020-11-10 14:40:45 -05:00
Michael Kavanagh 3f01c5fae0 Cleanup: move remnants of LAYER_WIDGET to gerbview
These are no longer used in Pcbnew.
2020-11-10 18:55:33 +00:00
Salvador E. Tropea 61fb271957 Rename the `plot.one_page_per_layer` option to avoid cconfusion.
Now named `plot.all_layers_on_one_page` as @craftyjon suggested.
In this way a `1` means that all layers will be printed to the same page.
Fixes #5633
2020-11-10 18:21:22 +00:00
Jeff Young 5bffc852ee Formatting. 2020-11-10 18:08:25 +00:00
Wayne Stambaugh 4ea3914d4e Coverity fixes.
CIDs: 312996, 305508, 305509, 305510, 312992, 312997, 312994, 312995,
312968, and 306650.
2020-11-10 08:50:16 -05:00
Jeff Young 5c309f0fef KeepUpright should enforce 0..90, not -90..90.
Fixes https://gitlab.com/kicad/code/kicad/issues/5537
2020-11-09 22:50:29 +00:00
Jeff Young 67095af043 Handle dimensions in Edit Text and Graphics Properties.
Fixes https://gitlab.com/kicad/code/kicad/issues/6340
2020-11-09 20:32:37 +00:00
Jeff Young bd63c018c9 Don't snap synthetic priming event.
We need to let the consumer of the event do snapping (so that, for
instance, it can also snap to tracks, pads, etc.)

Fixes https://gitlab.com/kicad/code/kicad/issues/4365
2020-11-09 17:21:47 +00:00
Jeff Young 6417015b8a Harvest -> Export 2020-11-09 17:21:47 +00:00
Jeff Young 4dc877d0e9 Module -> Footprint. 2020-11-08 21:43:19 +00:00
Jeff Young 64876a2761 PNS_DRAGGER should report its layers.
Also, don't use ViewGetLayers() for visibility checking.  For some
things (like vias) it deals with synthetic layers, not board layers.

Fixes https://gitlab.com/kicad/code/kicad/issues/6328
2020-11-08 17:19:37 +00:00
Jeff Young f33e44e630 Drop selection when creating new text item.
Fixes https://gitlab.com/kicad/code/kicad/issues/6310
2020-11-08 00:14:43 +00:00
Jeff Young 0ebea4be53 Cleanup and naming conventions. 2020-11-07 18:50:30 +00:00
Jeff Young 7c60c2e404 Module -> footprint. 2020-11-07 18:50:30 +00:00
Jeff Young bfd8a62852 Formatting and naming conventions. 2020-11-07 18:50:30 +00:00
Jeff Young 0a0a51471c More commenting and simpification of zone filler code. 2020-11-07 18:50:30 +00:00
Jeff Young 81ea71fb80 More safety when fetching via sizes. 2020-11-07 18:50:30 +00:00
Jeff Young 23d6cde0b0 Don't swally properties command when tool has no current item.
Fixes https://gitlab.com/kicad/code/kicad/issues/6311
2020-11-06 13:21:29 +00:00
Marek Roszko 08ca80a2d8 Smooth out redrawing of toolbars by not letting wx pointlessly calculate both orientations
Monkey patch

Fix #5705
2020-11-05 20:56:14 -05:00
Jeff Young 8b295a3bd7 Handle properties dialog while creating an arc.
Fixes https://gitlab.com/kicad/code/kicad/issues/6215
2020-11-05 20:21:06 +00:00
Jeff Young 2b5f7d594b Auto-zoom means auto-zoom. Other zoom settings do not.
Fixes https://gitlab.com/kicad/code/kicad/issues/6257
2020-11-05 20:21:06 +00:00
jean-pierre charras 37fb422516 Pcbnew: make DIALOG_FIND translatable.
Fixes #6306
https://gitlab.com/kicad/code/kicad/issues/6306
2020-11-05 19:44:09 +01:00
Jeff Young a6552f14f1 Improve SNR (code, status bar and user messages).
Fixes https://gitlab.com/kicad/code/kicad/issues/6304
2020-11-05 16:38:04 +00:00
Jeff Young 82e495d202 Be more explicit about pad types to reduce fragility.
Fixes https://gitlab.com/kicad/code/kicad/issues/6300
2020-11-05 11:56:50 +00:00
Jeff Young cff1e0ab0a If not setting modified on a commit, at least update 3D viewer.
Fixes https://gitlab.com/kicad/code/kicad/issues/6296
2020-11-05 11:49:59 +00:00
jean-pierre charras 2b438cc909 French translation update and very minor I18n fixes. 2020-11-05 11:27:58 +01:00
Jeff Young 317ae50d5f More protection for array bounds access. 2020-11-05 00:22:15 +00:00
Jeff Young daa0c3aaa1 Switch pad preview canvas to that of parent.
Fixes https://gitlab.com/kicad/code/kicad/issues/6228
2020-11-04 21:06:46 +00:00
Jeff Young 1c30d36d73 Fix errant use of SetPosition().
Fixes https://gitlab.com/kicad/code/kicad/issues/6292
2020-11-04 19:24:09 +00:00
Jeff Young 16674b2d0d Make Fill-Zones-Before-DRC default to on for new users. 2020-11-04 19:05:46 +00:00
Jeff Young 3216256b49 Turn off zone fill up-to-date checker in DRC.
The individual DRC errors will catch it, and the user can always
choose to fill zones first.
2020-11-04 18:32:27 +00:00
Jeff Young 8c782506b9 Appy units updating more consistently to editing assistants.
Fixes https://gitlab.com/kicad/code/kicad/issues/6283
2020-11-04 14:11:25 +00:00
Jeff Young dd428b3d5a Small fix to comment. 2020-11-04 13:29:49 +00:00
Jeff Young 70b87f8529 Fix missing parameter to colour fetching.
Fixes https://gitlab.com/kicad/code/kicad/issues/6279
2020-11-04 13:29:49 +00:00
jean-pierre charras 2ffa88d076 DIALOG_PAD_PROPERTIES: fix a few issues and a crash when no copper layers selected.
Fixes #6280
https://gitlab.com/kicad/code/kicad/issues/620
2020-11-04 13:13:08 +01:00
Jeff Young 4ff3b22118 Simpler active layer checking.
Also fixes an array index bounds issue.
2020-11-04 11:53:51 +00:00
Marek Roszko 19deb7051a Fix C++17 form of static_assert added by a238209f3 (why does GCC allow it?) 2020-11-04 00:17:17 -05:00
Jon Evans 5579500bfa Code style fixes 2020-11-03 22:31:43 -05:00
Jon Evans 63059611f0 Minimize distinct translated strings 2020-11-03 21:53:06 -05:00
Oleg Endo a238209f3f Add group-by-suffix display option in net inspector
Fixes https://gitlab.com/kicad/code/kicad/-/issues/2469
2020-11-04 02:49:19 +00:00
Jeff Young fb8ec84db0 Cleanup hole and netname layer processing for high-contrast mode.
Fixes https://gitlab.com/kicad/code/kicad/issues/6237
2020-11-04 02:23:44 +00:00
Ian McInerney 3d47eb0d49 Fix localization of the menu strings with accelerator strings
The accelerator strings really shouldn't be part of the translation,
and some translations have cause the accelerator keys to be incorrectly
handled. It is simpler to make it separate and just join them to the
translated string.

Make all accelerator modifiers use lowercased Ctrl instead of CTRL
to be the same as the other modifiers.

Fixes https://gitlab.com/kicad/code/kicad/issues/5992
2020-11-04 01:31:52 +00:00
Ian McInerney dd84ec1b51 Hide the convert submenu when there are no conversion tools available
Fixes https://gitlab.com/kicad/code/kicad/issues/6092
2020-11-04 01:31:52 +00:00
Ian McInerney d5f83d2685 Ensure dimension units are updated when being placed
* Fix the display of dimension units in the properties dialog. It was
  previously not showing automatic units in the dialog.
* When placing dimension items (e.g. from paste or append), update the
  units to the board units when the dimension uses automatic units.

Fixes https://gitlab.com/kicad/code/kicad/issues/6267
2020-11-04 01:31:52 +00:00
Jeff Young 5ede4061e3 Bug fixes and enhancements for dimensions.
1) Make them easier to select.
2) Mirror text when flipping to other side of board.
3) Flip around a more "known" point (the text position isn't really
here nor there).

Fixes https://gitlab.com/kicad/code/kicad/issues/6219
2020-11-03 22:48:57 +00:00
Jeff Young 0f6a9b59a6 Re-implement via painting to coexist with appearances better.
Fixes https://gitlab.com/kicad/code/kicad/issues/6237
2020-11-03 18:17:59 +00:00
Jeff Young cd89951b64 Repair breakage from earlier Drill Mark fixes.
Fixes https://gitlab.com/kicad/code/kicad/issues/6237
2020-11-02 23:27:54 +00:00
Jeff Young 56c57c4cca Update marker view when setting excluded.
Fixes https://gitlab.com/kicad/code/kicad/issues/6254
2020-11-02 20:30:30 +00:00
jean-pierre charras 89e21d28f0 French translation update, and minor I18n fixes 2020-11-02 20:23:01 +01:00
Jeff Young 55c25f3cc4 Work around a round-off bug in Clipper.
Fixes https://gitlab.com/kicad/code/kicad/issues/6260
2020-11-02 17:43:13 +00:00
Jeff Young ae9afdd169 SNR. (Mostly for progammers, but a little for user messages.) 2020-11-02 16:20:00 +00:00
Jeff Young 3b10d15835 Don't run hole offset check for pad with no copper.
Fixes https://gitlab.com/kicad/code/kicad/issues/6255
2020-11-02 12:53:02 +00:00
Jeff Young 76ac8b5acf Preflight routing so we can give a warning if it's not going to work.
Fixes https://gitlab.com/kicad/code/kicad/issues/4975
2020-11-02 00:10:21 +00:00
Jeff Young 8bfb255c96 Put a warning when routing can't start due to DRC violation.
Fixes https://gitlab.com/kicad/code/kicad/issues/4975
2020-11-01 23:46:42 +00:00
Jeff Young 409cd9d4ee Formatting. 2020-11-01 20:25:36 +00:00
Jeff Young f6c92ab1ea DRAGGER needs to report it's nets.
Otherwise things like snapping don't work.

Fixes https://gitlab.com/kicad/code/kicad/issues/4147
2020-11-01 19:57:42 +00:00
Jeff Young a95e2184da A more generic error message when route start pt violates DRC.
Fixes https://gitlab.com/kicad/code/kicad/issues/1812
2020-11-01 18:23:07 +00:00
Jeff Young 4e5dd6952e Fix arc flipping behaviour.
Also fixes flipping of a dragged selection to be around the anchor
point.

Fixes https://gitlab.com/kicad/code/kicad/issues/6217
2020-11-01 15:26:55 +00:00
Wayne Stambaugh 042e5956c2 Fix library table dialog tab labels. 2020-11-01 09:13:55 -05:00
Jeff Young c351b3c31f Naming conventions. 2020-11-01 14:12:35 +00:00
Jeff Young f600450ee6 DRC_TEST_PROVIDER_COPPER_CLEARANCES is for copper only.
Fixes https://gitlab.com/kicad/code/kicad/issues/6248
2020-11-01 14:12:35 +00:00
Jeff Young d2befca5af Clear subshapes before using again on a different layer.
Fixes https://gitlab.com/kicad/code/kicad/issues/6248
2020-11-01 14:12:35 +00:00
Jeff Young 7676ba6f5d Coverity warning. 2020-11-01 14:12:35 +00:00
Wayne Stambaugh cf59468de2 Fix library table dialog tab appearance in dark mode.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/6236
2020-11-01 08:30:27 -05:00
Jeff Young 2c1b6e42e0 Repair ARC copy constructor.
Fixes https://gitlab.com/kicad/code/kicad/issues/6176
2020-11-01 00:10:08 +00:00
Jeff Young fab87fb97b Handle proxy items for the second PNS_ITEM as well.
Fixes https://gitlab.com/kicad/code/kicad/issues/6193
2020-10-31 23:23:54 +00:00
Jeff Young f720b8aa2a Don't allow selecting of invisible zones.
Fixes https://gitlab.com/kicad/code/kicad/issues/6225
2020-10-31 22:49:48 +00:00
Jeff Young 8bfde9db6c Fix typo in recent group commit fix.
Fixes https://gitlab.com/kicad/code/kicad/issues/6247
2020-10-31 22:24:20 +00:00
Jeff Young a0060086b0 Simplify shape building logic.
Fixes https://gitlab.com/kicad/code/kicad/issues/6244
2020-10-31 22:02:50 +00:00
Marek Roszko 3b2b8ec229 Centralize/fix duplicated canvas type resolution between gerbview and pcbnew 2020-10-31 16:42:24 -04:00
Jon Evans 52cb410952 Cannot use two layers of temporary in range-for (yet)
Fixes https://gitlab.com/kicad/code/kicad/-/issues/6244
2020-10-31 15:13:30 -04:00
Jeff Young 33e54f136b Proper commit handling for group children. 2020-10-31 17:25:22 +00:00
Jeff Young 6bf29deb7f Improve formatting. 2020-10-31 17:25:08 +00:00
Jeff Young 843974b0bf Cleanup and formtting. 2020-10-31 15:50:06 +00:00
Jeff Young ba4d711356 I should have known better than to use a global....
When the board is closed and reopened the dummy items belong to a
freed board.
2020-10-31 15:50:06 +00:00
Jeff Young a9bf4bc6a6 Fix freed-memory crasher.
While the DRC_ENGINE is not long-lived, it's test providers are,
and must be cleared for each use.
2020-10-31 15:45:41 +00:00
Jeff Young 115fd1d7f3 Move track-to-zone testing to RTrees.
Also implemente pad-to-zone testing and removes the control in the
GUI (now that it's fast).
2020-10-31 15:45:41 +00:00
Jeff Young f1e9ecad41 Display full count in tab headers (even if actual list is truncated). 2020-10-31 15:45:41 +00:00
Jeff Young 1a1aef756e Reporting "actual" incompatible with exiting after first hit.
But we're currently using this only as a rough collision check
anyway as it doesn't know the specific item-to-item clearance.
2020-10-31 15:45:41 +00:00
Jeff Young 788a1e3bce Handle footprint zones in zone collision checks.
Also fixes issue with progress reporter.
2020-10-31 15:45:41 +00:00
Jeff Young cd93dbd324 Naming cleanup. 2020-10-31 15:45:41 +00:00
Jeff Young 8d4c9aeaac Fix Mac-style include. 2020-10-31 15:45:41 +00:00
Jeff Young d5addb692c Move a bunch of DRC tests to RTrees. 2020-10-31 15:45:41 +00:00
Jeff Young bddc97df30 LibEdit -> SymbolEditor 2020-10-31 10:28:21 +00:00
Seth Hillbrand 7e7ef82f55 Footprints not Modules 2020-10-30 16:52:17 -07:00
Jeff Young c17ceb5875 Make sure proxy items at least get the right net for clearance lines.
Fixes https://gitlab.com/kicad/code/kicad/issues/5980
2020-10-30 23:37:35 +00:00
Seth Hillbrand a551a500bb Fix crash when pasting to view-only frames
Fixes https://gitlab.com/kicad/code/kicad/issues/6233
2020-10-30 16:33:57 -07:00
jean-pierre charras 4314e4dc93 Update French translation and fixes minor I18n issues. 2020-10-30 21:01:15 +01:00
Seth Hillbrand 238b3562d4 Don't translate HTML 2020-10-30 12:51:24 -07:00
Seth Hillbrand 7c94983758 Fix translation issue
We cannot use verb-based substitution in translated strings
2020-10-30 12:48:22 -07:00
Jeff Young 203c8df909 Respect locked flag when inline dragging.
Fixes https://gitlab.com/kicad/code/kicad/issues/6117
2020-10-30 17:58:37 +00:00
jean-pierre charras 536bba294b Do not round a rotation angle to 0.1 degree.
Also ensure the rotation angle is not truncated when displaying
info for Footprints and Pads

Fixes #6058
https://gitlab.com/kicad/code/kicad/issues/6058
2020-10-30 17:59:04 +01:00
Jeff Young 45618327cf Fix crash bug closing schematic with sheet selected. 2020-10-30 15:26:07 +00:00
Seth Hillbrand 9ed6cdd943 Remove GITHUB plugins
KiCad github downloads are no longer supported

Fixes https://gitlab.com/kicad/code/kicad/issues/6182
2020-10-29 16:45:04 -07:00
Jeff Young 66d2cf172d Clear point editor on undo/redo.
Fixes https://gitlab.com/kicad/code/kicad/issues/6224
2020-10-29 22:55:33 +00:00
Jeff Young fc6fc88219 Zone fill fixes for divots and hatching + more debug layers.
Fixes https://gitlab.com/kicad/code/kicad/issues/6203
2020-10-29 21:20:34 +00:00
jean-pierre charras 0ef480dc84 DIALOG_FOOTPRINT_PROPERTIES: fix an issue when selecting 0.0 orientation.
Allows also entering a rotation angle in 0.001 degrees
(The limitation to 0.1 degree is outdated since years)
2020-10-29 18:33:28 +01:00
Jeff Young 5a644aa3fb QuasiModal needs to be used for any dialog hosting a help window.
Fixes https://gitlab.com/kicad/code/kicad/issues/5897
2020-10-28 23:07:15 +00:00
Jeff Young bc23fd0530 Mark footprint tests as run even if netlist is empty.
Fixes https://gitlab.com/kicad/code/kicad/issues/6125
2020-10-28 19:56:58 +00:00
jean-pierre charras 95811f9f22 Replace Module by Footprint in UI sentences. 2020-10-28 08:06:16 +01:00
Jeff Young 776ea35040 Fix copy/paste error and some formatting issues. 2020-10-27 22:46:19 +00:00
Jeff Young c44855a647 More performance enhancements for Cleanup Tracks and Vias. 2020-10-27 22:46:19 +00:00
jean-pierre charras a7ba5ea9c8 DIALOG_PAD_PROPERTIES: fix a few issues found for flipped pads after edition:
Incorrect y offset.
Incorrect rounded/chamfered corner positions
2020-10-27 15:32:29 +01:00
jean-pierre charras 2cb23277f3 Fix bounding box update after rotation. 2020-10-27 14:18:29 +01:00
Roberto Fernandez Bautista 4ea8f29a43 Fix typo causing custom shaped pads to be flipped when opening the pad properties dialog
Fixes https://gitlab.com/kicad/code/kicad/-/issues/6180
2020-10-27 11:33:35 +00:00
Roberto Fernandez Bautista d75151a847 Replace some errors with warnings in pad properties dialog 2020-10-27 11:33:35 +00:00
Roberto Fernandez Bautista 3d49f6d6f8 CADSTAR PCB Archive Importer: Import missing layer subtypes LAYERSUBTYPE_CLEARANCE and LAYERSUBTYPE_ROUT 2020-10-27 11:33:35 +00:00
Roberto Fernandez Bautista 7532428c46 CADSTAR PCB Archive Importer: Fix loading of angled slotted holes 2020-10-27 11:33:35 +00:00
Roberto Fernandez Bautista 5e7d4ca6e8 CADSTAR PCB Archive Importer: Fix Position and orientation of non-symmetrical pads
Previously they were not loaded at the correct positions
There is still a problem with angled slotted holes, but now we display a warning to the user.
2020-10-27 11:33:35 +00:00
Roberto Fernandez Bautista 0dc153fe58 CADSTAR PCB Archive Importer: Load correct pad information for pads with PADEXCEPTION
Overwrites pad definitions for pads that have PADEXCEPTION
2020-10-27 11:33:35 +00:00
Roberto Fernandez Bautista 7a1777e9b9 CADSTAR PCB Archive Importer: Parse EXITS node in PADEXCEPTION 2020-10-27 11:33:35 +00:00
Werni a7d5d1f091 Add more consts all over the place 2020-10-27 11:03:35 +00:00
Ian McInerney 0948d67e56 Break wait loops on null TOOL_EVENT
The Wait() function will return a null TOOL_EVENT when the tool
stack is shutting down, so we can't just always pass the event,
instead we must check for null and end the looping if a null
event appears.
2020-10-27 00:32:41 +00:00
Ian McInerney dc542be91d Fix parentage of groups
In the footprint editor, we must parent the group to the module
not the board.

Fixes https://gitlab.com/kicad/code/kicad/issues/6181
2020-10-26 23:53:38 +00:00
Ian McInerney 31e626f279 Cleanup creation of all our smart pointers 2020-10-26 23:52:44 +00:00
Jeff Young 2e94be0855 Move geometric parts of Cleanup Tracks and Vias to RTree.
Removes two separate O(n^2) traverses over the tracks.

Fixes https://gitlab.com/kicad/code/kicad/issues/6077
2020-10-26 18:37:59 +00:00
Jeff Young d7ee5fe97f Apply wxWidgets hack to get saved component tree widths restored.
Fixes https://gitlab.com/kicad/code/kicad/issues/6036
2020-10-26 15:36:07 +00:00
Jeff Young 41c6de45e4 Use our Refresh() call, not wxWidgets'.
Fixes https://gitlab.com/kicad/code/kicad/issues/6071
2020-10-26 15:36:07 +00:00
Jeff Young ce5fbb0c58 Small performance boost and fix a bug between tracks and arcs. 2020-10-26 15:36:07 +00:00
Jeff Young 9b79272111 Fix firstRun special case so we don't continue to check zones.
Also don't leave up zone checking progress reporter after it has
been cancelled.

Fixes https://gitlab.com/kicad/code/kicad/issues/6077
2020-10-26 15:36:07 +00:00
Jeff Young 397f3d07db Be more responsive to cancel when filling zones.
Fixes https://gitlab.com/kicad/code/kicad/issues/6077
2020-10-26 15:36:07 +00:00
Jeff Young 09af6c78bb Consistency. 2020-10-26 15:36:07 +00:00
Jeff Young 5fba0973ab Update formatting. 2020-10-26 15:36:07 +00:00
Thomas Pointhuber c060fc9591 altium: use CENTER_DIMENSION instead of line interpolation 2020-10-26 14:11:24 +01:00
Thomas Pointhuber 7ec27c2a18 altium: no idea what Region Kind=2 means, but at least the existence is noted 2020-10-26 13:50:11 +01:00
jean-pierre charras f74ffc5623 Pcbnew: Fix incorrect position of the graphic crosshairs cursor in H,V,45deg
forced mode, when the graphic polygon tool is active, but a graphic item is not started.
(The code was using the last created point, but it does not exist before starting
a line)

Fixes #6079
https://gitlab.com/kicad/code/kicad/issues/6079
2020-10-26 11:56:09 +01:00
jean-pierre charras c092e3f8b7 Fix a few minor Coverity warnings 2020-10-26 10:46:08 +01:00
Marek Roszko 1984581c46 Remove common.h from more headers 2020-10-25 22:29:53 -04:00
Marek Roszko 9de0ff22c1 Rename Mirror template to MIRRORVAL to avoid shadowing
I am bad at naming creativity here, but hey, it's unique
2020-10-25 20:44:22 -04:00
Marek Roszko b043b5b5c6 Nip 3 no longer needed common includes 2020-10-25 20:01:13 -04:00
Marek Roszko 1167862c86 Split wx_filename out of common 2020-10-25 20:01:13 -04:00
Marek Roszko 14c18b7e64 Move ui functions out of common and into ui_common 2020-10-25 20:01:12 -04:00
Marek Roszko 91e5611341 Move dialog_configure_paths.h and dialog_edit_library_tables.h to dialogs folder 2020-10-25 20:01:12 -04:00
Marek Roszko e49ac45b84 HTML_MESSAGE_BOX is a dialog 2020-10-25 20:01:12 -04:00
Marek Roszko a785f70ea1 msgpanel is a widget, shove it to the right folder. 2020-10-25 20:01:12 -04:00
Jeff Young d1c73cb1d5 Clean up MODULE effective shape memory handling. 2020-10-25 23:38:21 +00:00
Jeff Young 45113f983b Fix test case.
Silk tests were processing MODULE_Ts when they shouldn't have been.
2020-10-25 23:19:39 +00:00
Jeff Young 2ee61f52ca Implement correct layer handling for keepout constraints. 2020-10-25 22:47:47 +00:00
Jon Evans e490b8eda4 Bring back Copy with Reference as a new action
Fixes https://gitlab.com/kicad/code/kicad/-/issues/5916
2020-10-25 17:09:58 -04:00
Jeff Young 8c93fc76ae Don't require keepout zones to be named.
insideArea() now takes A, B, a UUID or a zone name.  (Only the UUID
is new.)
2020-10-25 21:08:09 +00:00
Jon Evans be0de8d151 Improve visibility controls of PTH pads
Fixes https://gitlab.com/kicad/code/kicad/-/issues/5095
2020-10-25 16:32:15 -04:00
Jeff Young 5b1e1075a9 Allow an easy way for DRC tests to specify compound objects or not. 2020-10-25 20:24:47 +00:00
Jeff Young ccfa0f5189 fixup! Implement MODULE::GetEffectiveShape() 2020-10-25 20:18:33 +00:00
Jeff Young 0e686d377b Implement MODULE::GetEffectiveShape() 2020-10-25 19:51:03 +00:00
Jeff Young 386cefbe84 Do footprint keepouts by courtyard.
Fixes https://gitlab.com/kicad/code/kicad/issues/6162
2020-10-25 18:17:58 +00:00
Jeff Young 07b8a03432 Improve translatability and add keepout inspection. 2020-10-25 18:17:58 +00:00
Jon Evans 09ade9fe51 Inhibit point editor while drag-selecting
Fixes https://gitlab.com/kicad/code/kicad/-/issues/6155
2020-10-25 12:13:25 -04:00
jean-pierre charras 13baea4900 Fp editor: fix crash when converting a rect to lines
Avoid adding menuitems in convert context menus having no meaning in fp editor

Fixes #6158
https://gitlab.com/kicad/code/kicad/issues/6158
2020-10-25 14:51:08 +01:00
jean-pierre charras 34179cd039 Add missing icon in menu, and fix them in other menus 2020-10-25 14:51:08 +01:00
Jeff Young b2ad9b5b83 Treat P-CAD copper polygons as very-high-priority zones.
In P-CAD they don't avoid other copper pours, so this should more
accurately reflect that in Kicad.  (Note that only the very-high-
priority part is new; we've always coverted them to zones.)

Fixes https://gitlab.com/kicad/code/kicad/issues/3997
2020-10-25 13:38:15 +00:00
jean-pierre charras d6f91c810f Fix a few compil and Coverity warnings. 2020-10-25 10:02:07 +01:00
Marek Roszko e928b2d8fd Split EDA_UNITS out from common. 2020-10-25 00:02:52 -04:00
Jeff Young 7674d2ba91 Free allocated DRC structures when re-initializing.
Fixes https://gitlab.com/kicad/code/kicad/issues/6147
2020-10-24 22:39:53 +01:00
Jeff Young 050cfd34dd Move same-net higher-priority knockout to after smoothing.
Fixes https://gitlab.com/kicad/code/kicad/issues/6145
2020-10-24 17:48:30 +01:00
Jeff Young 317bdc58a8 Add a couple more layers to zone debugging. 2020-10-24 17:48:30 +01:00
Jeff Young d2eca81b8b Fix deadlock when filling single zone. 2020-10-24 17:48:30 +01:00
David Shah 66bcfb3ffc drc_engine: Fix via type names
There was a mismatch between the via type names used in the DRC engine
and the via type names defined in the class_track.cpp ENUM_MAP for
VIATYPE.

This fixes the discrepancy; which was breaking microvias altogether as
the route tool also uses the DRC code to determine the correct
diameter/drill (without this patch it was incorrectly using regular
dimensions for microvias.)
2020-10-24 15:46:47 +00:00
Marek Roszko 81a7afc76e Use kicad_algo directly rather than common.h 2020-10-24 08:53:11 -04:00
Marek Roszko 68484e9b38 Nix some global richio.h 2020-10-24 08:44:03 -04:00
Marek Roszko 8d7feb3d72 Nip some common.h from headers 2020-10-24 08:28:03 -04:00
Marek Roszko 77ece552f7 Remove macros.h from files that don't need it 2020-10-24 08:28:02 -04:00
jean-pierre charras 442f40fa66 ConvertOutlineToPolygon() fix another issue for arcs found inside a outline 2020-10-24 10:04:15 +02:00
Marek Roszko 64484f5fc4 Split KIID out of common.h 2020-10-24 00:17:08 -04:00
Marek Roszko 304e5faf36 Move wxStringSplit to kicad_string 2020-10-24 00:17:07 -04:00
Marek Roszko 1d559108c8 Move LOCALE_IO out of common.h 2020-10-23 21:49:42 -04:00
Jeff Young 59f3fefd17 When polygonizing arcs don't use synthesized center and angle.
Start, mid and end are the "real" properties and come with less
error.

Also collapses two arc polygonization routines into one.

Also fixes DRC checks to be cognizant of arc approximation error.

Fixes https://gitlab.com/kicad/code/kicad/issues/6039
2020-10-23 23:55:45 +01:00
Jeff Young b683871d93 Commit file missing from earlier commit. 2020-10-23 23:55:45 +01:00
Seth Hillbrand 19bf594aa0 Remove unused point in polygon test
There can be only one.
2020-10-23 12:13:09 -07:00
jean-pierre charras fdf6547f5f Pcbnew: Select/Expand connection (U) does not propagate with fillet tracks
Fixes #6136
https://gitlab.com/kicad/code/kicad/issues/6136
2020-10-23 18:51:05 +02:00
Jeff Young 01ce881340 Honour NOT_IN_SCHEMATIC setting.
Fixes https://gitlab.com/kicad/code/kicad/issues/6137
2020-10-23 17:27:18 +01:00
Jeff Young 1cdb8b5584 Make sure local zone clearances are factored into worstClearance.
Fixes https://gitlab.com/kicad/code/kicad/issues/6128
2020-10-23 14:27:36 +01:00
Jeff Young 58c006bc45 Register properties for ARC elements so we can get their netclass.
Also improves GAL arc drawing and polygonization.

Fixes https://gitlab.com/kicad/code/kicad/issues/6039
2020-10-23 14:27:36 +01:00
Thomas Pointhuber 47786fa976 altium: Correctly handle symbol names containing invalid chars
Fix: https://gitlab.com/kicad/code/kicad/-/issues/6082
2020-10-23 14:30:29 +02:00
jean-pierre charras 51be98428d fix a few issues in ConvertOutlineToPolygon().
Fixes #6130
https://gitlab.com/kicad/code/kicad/issues/6130
Fixes #6129
https://gitlab.com/kicad/code/kicad/issues/6129
2020-10-23 11:23:45 +02:00
jean-pierre charras 15369915cc Minor code cleanup: move "extern" declarations to convert_drawsegment_list_to_polygon.h 2020-10-23 08:48:52 +02:00
Wayne Stambaugh d8ffea881e Improve dialog static sizer box consistency.
Remove colons from the end of static sizer box labels from a few dialogs so
they are consistent with all dialogs.
2020-10-22 22:00:04 -04:00
Jeff Young 82ede1d767 Fix a couple more instances of "auxilary origin".
Fixes https://gitlab.com/kicad/code/kicad/issues/5394
2020-10-22 22:31:07 +01:00
Jeff Young d75f97161f Focus on center of board for board-related DRC markers.
Fixes https://gitlab.com/kicad/code/kicad/issues/6119
2020-10-22 21:50:46 +01:00
Jeff Young 27e156917e Fix tooltip. 2020-10-22 21:47:23 +01:00
Jeff Young cce557b9ad Redo the board-edge-building logic to return better error reports.
Fixes https://gitlab.com/kicad/code/kicad/issues/6119
2020-10-22 21:29:04 +01:00
Jeff Young 41fd8293e8 Don't apply clearance to keepout zones.
Also improves the clearance and keepout reporting.

Fixes https://gitlab.com/kicad/code/kicad/issues/6118
2020-10-22 21:29:04 +01:00
Thomas Pointhuber 412bc2ba8a altium: detect polygons with less than 2 unique points 2020-10-22 17:23:12 +02:00
Wayne Stambaugh 8185a416b9 Fix broken build on Linux with gcc. 2020-10-22 08:36:28 -04:00
Thomas Pointhuber 06e9a21791 altium: fix coding style, remove useless check 2020-10-22 13:44:55 +02:00
Thomas Pointhuber a6f6d44026 altium: correctly handle arcs in polygon and zone outlines 2020-10-22 13:37:29 +02:00
Jeff Young 883c9e14f3 Don't draw 0-clearance clearance lines.
Fixes https://gitlab.com/kicad/code/kicad/issues/6108
2020-10-22 11:56:47 +01:00
Jeff Young af184e58b5 Make sure newly-added footprint's pads get Default net.
Fixes https://gitlab.com/kicad/code/kicad/issues/6108
2020-10-22 11:49:15 +01:00
Jeff Young 9ff49277e1 Add implicit rule generation for keepout areas.
Also implements collision detection for SHAPE_POLY_SET.

Fixes https://gitlab.com/kicad/code/kicad/issues/6105
2020-10-22 10:41:21 +01:00
Jon Evans 2153a7655b Try harder not to give a read-only path to save dialog
Fixes https://gitlab.com/kicad/code/kicad/-/issues/5937
2020-10-21 20:55:43 -04:00
jean-pierre charras 4326e99b08 Pcbnew: "Select all tracks in net" must select track segments and track arcs.
Fixes #6101
https://gitlab.com/kicad/code/kicad/issues/6101
2020-10-21 20:32:52 +02:00
Jeff Young 916a4d51a1 Use REF** for all harvested footprints.
Fixes https://gitlab.com/kicad/code/kicad/issues/4518
2020-10-21 18:51:47 +01:00
jean-pierre charras 36f68dd39f Pcbnew: make option Tracks filled/sketch working for track arc shaped.
Fixes #6096
https://gitlab.com/kicad/code/kicad/issues/6096
2020-10-21 19:43:14 +02:00
jean-pierre charras c87faad344 Python compatibility: move DXF_PLOTTER::DXF_UNITS to DXF_UNITS in pcb_plot_params.h
Fixes #6034
https://gitlab.com/kicad/code/kicad/issues/6034
2020-10-21 18:29:53 +02:00
Jeff Young adfc9f1288 Move File > Archive Footprints to Tools > Harvest Footprints.
CHANGED.

Also corrects references so they fit the generic pattern.

Fixes https://gitlab.com/kicad/code/kicad/issues/4518
2020-10-21 12:41:37 +01:00
Seth Hillbrand f8a4edb1c9 First pass renaming module to footprint
This is mostly in comments and the few remainin text strings that
reference module
2020-10-20 20:49:11 -07:00
Ian McInerney 06bf7943b7 Minor warning fixes 2020-10-21 00:30:50 +01:00
Jeff Young f6f4768b64 Add some escaping to syntax help. 2020-10-20 22:26:47 +01:00
Jeff Young 3d1ab10eb5 String consistency.
Fixes https://gitlab.com/kicad/code/kicad/issues/5394
2020-10-20 22:26:47 +01:00
Roberto Fernandez Bautista 006c462d8f ADDED: Fillet Tracks tool in pcbnew
Select two or more track segments and run the "Fillet Tracks" tool.
2020-10-20 21:23:05 +00:00
Seth Hillbrand 661e85d705 Standardize "Key words" to "Keywords" 2020-10-20 13:18:48 -07:00
Seth Hillbrand 2a43b88115 Standardize PostScript capitalizaiton 2020-10-20 13:09:13 -07:00
Seth Hillbrand 4085757aeb Remove beginning/ending spaces in translations
Adding space padding makes translations more difficult by increasing
string counts
2020-10-20 12:08:04 -07:00
Jeff Young 6cbe2131ab Simplify string processing and ease translation. 2020-10-20 19:42:37 +01:00
Jeff Young 229a505b11 Only suppress all-green (0) error counts when DRC hasn't been run. 2020-10-20 16:57:56 +01:00
Jeff Young f772e49d25 Adjust DRC badge spacing on OSX.
Also added dynamic badge sizing based on number of digits.
2020-10-20 16:57:56 +01:00
Jeff Young 07f5428951 Fix issues pasting groups into ModEdit. 2020-10-20 13:38:09 +01:00
Jeff Young 28ee667080 When copying groups we must do a deep copy. 2020-10-20 13:38:09 +01:00
Jeff Young 68ec151f28 Clear group info before parsing.
PCB_PARSER is a long-lived object.  Doing it in init() is not
sufficient.

Fixes https://gitlab.com/kicad/code/kicad/issues/6074
2020-10-20 13:38:09 +01:00
Jeff Young 3045dbd6e8 Minor code clean-up. 2020-10-20 13:38:09 +01:00
Jeff Young 18f9f3cf0b Add curved track support to track-to-zone DRC.
Fixes https://gitlab.com/kicad/code/kicad/issues/6039
2020-10-20 13:38:09 +01:00
Thomas Pointhuber d142075417 altium: fix netclass parsing 2020-10-20 11:48:27 +02:00
Thomas Pointhuber f06f4e7a13 altium: handle keepout tracks/arcs on multiple layers 2020-10-20 10:35:58 +02:00
Thomas Pointhuber 7642bbc090 altium: Via record can have size=74, which was not supported by us
Fix: https://gitlab.com/kicad/code/kicad/-/issues/5543
2020-10-20 10:22:24 +02:00
Ian McInerney 7c9acc605d Introduce a new number badge UI element for DRC and ERC reporting
This new badge allows for proper UI scaling and will not cut off
the number being displayed.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/5734
Fixes https://gitlab.com/kicad/code/kicad/-/issues/6011
2020-10-20 02:35:48 +01:00
Jon Evans 0d5b5bf8c3 Don't assume we have a MODULE parent
Fixes https://gitlab.com/kicad/code/kicad/-/issues/6063
2020-10-19 20:55:34 -04:00
Roberto Fernandez Bautista e7ab924a86 CADSTAR PCB Archive Importer: Resolve comments in MR
- Change wxASSERT(false) to wxFAIL_MSG
- Fix double negative
- Add small comment to TXT_HEIGHT_RATIO
2020-10-20 00:00:05 +00:00
Roberto Fernandez Bautista 6fb338d136 CADSTAR PCB Archive Importer: Fix imported Text Angle when mirrored
Angle needs to be negated in KiCad
2020-10-20 00:00:05 +00:00
Roberto Fernandez Bautista 7839a508b3 CADSTAR PCB Archive Importer: Fix imported text height
Apply a scaling factor derived from CADSTAR's default font
2020-10-20 00:00:05 +00:00
Roberto Fernandez Bautista a514817c57 CADSTAR PCB Archive Importer: Fix component mirroring
Need to invert mirror angle before calling MODULE::Flip
2020-10-20 00:00:05 +00:00
Roberto Fernandez Bautista dcf69d53f0 CADSTAR PCB Archive Importer: Fix unhandled case statements
Note: UNITS::DESIGN refer to the units defined in Assignments.Technology.Units
Fixes https://gitlab.com/kicad/code/kicad/-/issues/5725
2020-10-20 00:00:05 +00:00
Roberto Fernandez Bautista d780cb7e7c CADSTAR PCB Archive Importer: Load CADSTAR routing areas as a KiCad rule area 2020-10-20 00:00:05 +00:00
Roberto Fernandez Bautista 5273c77fbf CADSTAR PCB Archive Importer: Parse TRUNK and TRUNKREF, display error if present (no KiCad equivalent) 2020-10-20 00:00:05 +00:00
Roberto Fernandez Bautista 7a624d8d44 CADSTAR PCB Archive Importer: Fix warning.
Need to std::erase after std::remove!
2020-10-20 00:00:05 +00:00
Jeff Young 4233886a05 Repair drill mark printing.
1) Make sure that layer dependencies don't prevent us from drawing
drill marks.
2) Don't draw pad shapes when their particular layer isn't enabled
(a side effect from the above)
3) Allow the printout painter to set a different hole colour (the
special case for through-hole pads was handled twice anyway -- once
in LoadColors() and once in draw( D_PAD ).
4) Replace the call to getDrillSize() which handles swapping in the
small mark size if set.

Fixes https://gitlab.com/kicad/code/kicad/issues/4847
2020-10-19 23:58:07 +01:00
Seth Hillbrand c9d14700a7 Restore missing MW shape icon 2020-10-19 14:28:27 -07:00
Wayne Stambaugh 8ff51d8899 Eeschema: add schematic sheet page number.
The groundwork has now been laid for per sheet instance data.  Initially
this only supports sheet page numbers but could be expanded to include
other per sheet instance information.

ADDED: Support for user defined schematic page numbers.
2020-10-19 14:05:45 -04:00
Jeff Young 725082786e Move ERC dialog to DRC architecture.
This is mainly to remove the annotation nag dialogs in favour of the
HTML links.  But it also allows you to see more than a few messages,
and implements a progress reporter architecture if the ERC checks ever
get slow enough to benefit from it.
2020-10-19 15:17:49 +01:00
Jeff Young b12937af65 Accurately reflect disabled router settings.
Fixes https://gitlab.com/kicad/code/kicad/issues/5999
2020-10-19 12:49:33 +01:00
Jeff Young ede8499e65 Fix negative length reporting for arc track segments.
Fixes https://gitlab.com/kicad/code/kicad/issues/6039
2020-10-19 12:07:43 +01:00
Michael Kavanagh e826a4494a Auto-select first item in layer mapping dialog
Fixes https://gitlab.com/kicad/code/kicad/issues/5942
2020-10-18 23:50:07 +00:00
Jeff Young d7ea70ba02 Don't assume a valid constraint.
Fixes https://gitlab.com/kicad/code/kicad/issues/6059
2020-10-18 20:58:53 +01:00
Jon Evans 2e50723781 Ensure preview pad has access to parent board design settings
Fixes https://gitlab.com/kicad/code/kicad/-/issues/6057
2020-10-18 15:27:30 -04:00
Jon Evans e735d21824 Maximize main editors by default if config is missing
Also set default size for other windows to something slightly
larger than it was before
2020-10-18 14:38:55 -04:00
Jon Evans c388bf0f92 Update default color theme
Blue is the new green :)

ADDED: built-in read-only color themes support
Classic theme is still available for those who love it

Fixes https://gitlab.com/kicad/code/kicad/-/issues/1991
Fixes https://gitlab.com/kicad/code/kicad/-/issues/4259
2020-10-18 14:12:54 -04:00
jean-pierre charras f6b4b66a86 Avoid include wx/wx.h in many files that do not actually use this include.
Including wx.h includes the full set of wxWidgets include files, that is not good,
and can create some conflicts with some Windows headers on msys2.
2020-10-18 18:21:34 +02:00
Jeff Young 8c68857f02 Add immediate mode to WX_HTML_REPORT_BOX for use as progress messages.
Fixes https://gitlab.com/kicad/code/kicad/issues/6052
2020-10-18 14:20:36 +01:00
Jeff Young 02cbcb99df Fix broken logic in ImportSizes().
Fixes https://gitlab.com/kicad/code/kicad/issues/6049
2020-10-18 12:08:16 +01:00
Jon Evans e832a94a9c Turn on zone visibility when you start drawing a zone
It's disconcerting to have the zone turn invisible when
you finish drawing and drop the selection.
2020-10-17 15:53:02 -04:00
Jeff Young c5d45f8a78 Move DRC dialog to same DRC rule reporting mechanism as inspectors. 2020-10-17 20:40:05 +01:00
Jeff Young 4355e91a41 Make sure rectangles are "right-side-up".
Fixes https://gitlab.com/kicad/code/kicad/issues/6023
2020-10-17 14:48:08 +01:00
Jeff Young 827699bed2 Just because we have a startItem doesn't mean it can find a width.
For instance, a pad with no other tracks attached will return 0.

Fixes https://gitlab.com/kicad/code/kicad/issues/6019
2020-10-17 13:57:07 +01:00
Jeff Young 23d9e2e74a New rules engine needs non-connected items as well. 2020-10-17 13:52:18 +01:00
Jeff Young 6e54856e67 Don't halt other tests when one test's max is reached.
Fixes https://gitlab.com/kicad/code/kicad/issues/6035
2020-10-17 12:13:04 +01:00
Jeff Young 51ab639ce4 Implement a better interface between inspectors and DRC rule editor. 2020-10-17 10:58:08 +01:00
Jeff Young 948036372e Ban unitless numbers in DRC rules.
Fixes https://gitlab.com/kicad/code/kicad/issues/6029
2020-10-17 10:58:08 +01:00
Jeff Young c67770e6b6 Add some missing pad properties. 2020-10-17 10:58:08 +01:00
Jeff Young 1ee3df61c9 Improve robustness of infobar button handling. 2020-10-16 17:07:59 +01:00
Jeff Young ebc8e2c921 Move property manager tokens to HKI macro.
This leaves them untranslated internally but makes sure their
translation strings exist so they can be dynamically translated
at the GUI level.

Fixes https://gitlab.com/kicad/code/kicad/issues/6020
2020-10-16 16:59:52 +01:00
Jeff Young 1b2168af1e Don't throw implicit rules out after failing to compile user rules. 2020-10-16 12:44:20 +01:00
Jeff Young eea7957e16 Inform user of bad DRC rules when filling zones.
ADDED: facility for hypertext links in infobar.

Also made use of this for via constraint errors when routing.

Fixes https://gitlab.com/kicad/code/kicad/issues/5800
2020-10-16 12:44:20 +01:00
Jeff Young 834c7bbe05 Report lexer issues through error reporter. 2020-10-16 12:44:20 +01:00
Jon Evans 4b436fa573 PcbNew: Improved DRC marker display
Add shadows and slightly reduce size

Fixes https://gitlab.com/kicad/code/kicad/-/issues/5936
2020-10-15 22:39:13 -04:00
Marek Roszko a1c75748a0 Remove GetChars(), a wxWidgets 2.9 compatibility hack 2020-10-15 20:53:25 -04:00
Marek Roszko b9f1601418 Rename PLOT_MODE to OUTLINE_MODE 2020-10-15 19:33:18 -04:00
Marek Roszko eb33c33f15 Rename EDA_DRAW_MODE_T to PLOT_MODE 2020-10-15 19:30:07 -04:00
Marek Roszko 52a12c6ccd Remove kicad_string.h from footprint_info.h 2020-10-15 18:39:43 -04:00
Jeff Young fad0916f0b Make sure inspection dialogs get raised. 2020-10-15 21:21:34 +01:00
Jeff Young 6b7749658e Report all implicit rules for resolution reports. 2020-10-15 20:53:27 +01:00
Jeff Young ebd5dc81cc Fix some more cases of malformed syntax crashing the compiler.
Fixes https://gitlab.com/kicad/code/kicad/issues/6016
2020-10-15 18:32:52 +01:00
jean-pierre charras b6d2b2e49f Pcbnew, aux toolbar, combobox via selector: do not show the via with size 0.
this line must be skipped as it is a placeholder.
2020-10-15 15:31:23 +02:00
Jeff Young 5ac17288a9 Work around missing copy constructor for PCB_SHAPE.
Also introduces performance enhancements so that single closed shapes
for board edges don't eliminate the effectiveness of the RTree.

Fixes https://gitlab.com/kicad/code/kicad/issues/5990
2020-10-15 11:38:18 +01:00
Ian McInerney 5f4b0eb0fb Fix formatting and overzealous renaming for FILL_TYPE 2020-10-15 11:24:49 +01:00
Marek Roszko afa9344444 Relocate AccumulateDescription to kicad_string.h 2020-10-14 22:13:01 -04:00
Marek Roszko 1538d737e7 Split out FILL_T to its own header to avoid spreading eda_item everywhere 2020-10-14 21:51:23 -04:00
Marek Roszko 84fbb0e382 Remove some includes in random pcbnew files 2020-10-14 20:47:48 -04:00
Jeff Young 92d84b0d67 Naming updates. 2020-10-15 01:35:16 +01:00
Jon Evans 0a8d67c45c Make footprint text meta-control behavior more obvious 2020-10-14 20:16:49 -04:00
Marek Roszko 491896d497 Add missing include 2020-10-14 19:34:44 -04:00
Marek Roszko 0f823453fd Fix typo in commit 90da5fccb 2020-10-14 19:24:41 -04:00
Marek Roszko f59551d6ad Remove painter.h from eda_text.h 2020-10-14 19:18:38 -04:00
Jeff Young 90da5fccbd Disambiguate backannotation (Update Schematic from PCB) from Cvpcb. 2020-10-14 21:07:10 +01:00
Jeff Young ae8239a4f2 Don't leave hidden flag when undoing/redoing.
It was probably set because the image object was in the selection.
We're going to rebuild the selection to set all the flag right
anyway.

Fixes https://gitlab.com/kicad/code/kicad/issues/6005
2020-10-14 18:38:49 +01:00
Jeff Young bbe7573d1c Performance enhancements to roundrect pads and clearance outlines.
Aka: avoid Clipper at all costs.

Fixes https://gitlab.com/kicad/code/kicad/issues/5900
2020-10-14 15:56:43 +01:00
Jeff Young 1d93effa14 Don't build RTrees if test results will be ignored. 2020-10-14 15:56:32 +01:00
Jeff Young f220e83de6 Board edges have no width.
Fixes https://gitlab.com/kicad/code/kicad/issues/5990
2020-10-14 15:56:32 +01:00
Marek Roszko 12d21e34e2 Remove trigo.h from eda_text.h 2020-10-13 23:37:48 -04:00
Marek Roszko 9656bd310b Remove eda_item and gr_basic from eda_text.h 2020-10-13 22:46:39 -04:00
Jon Evans a0c0bda1db Fix crash when highlighting via 2020-10-13 21:45:09 -04:00
Jon Evans 19fb1a92ce Expose grid axes color control
Note: axis thickness is currently calculated from grid line
thickness.  I'm not adding a separate control for it as
requested in the original issue right now, but if we determine
that we need a separate control it can be added.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/2353
2020-10-13 21:27:09 -04:00
Marek Roszko b2e9f6987d Split base_struct into eda_item and eda_rect 2020-10-13 21:24:50 -04:00
Marek Roszko 2c86363aa0 Relocate the page_layout includes to a page_layout folder 2020-10-13 20:33:33 -04:00
Jon Evans cea73fe510 Restore net highlighting to router tool
Fixes https://gitlab.com/kicad/code/kicad/-/issues/5962
2020-10-13 20:30:38 -04:00
Jon Evans fd4b9f0efa PNS: ratlines need to not be debug graphics
Fixes https://gitlab.com/kicad/code/kicad/-/issues/5995
2020-10-13 20:04:47 -04:00
Jon Evans 6a3384e764 Properly set up new boards when creating from the command line
Fixes https://gitlab.com/kicad/code/kicad/-/issues/5913
2020-10-13 19:16:48 -04:00
Jeff Young 505d764f25 Set board modify bit only when necessary after Board Setup.
Fixes https://gitlab.com/kicad/code/kicad/issues/5685
2020-10-13 23:11:29 +01:00
Jon Evans cb1d416e5a Use settings keys, not error codes, for ERC/DRC reports
Error codes can shift around if the enum ordering is
not maintained, which is more fragile than the settings
key which should never be changed after a new code is
created.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/6001
2020-10-13 18:03:07 -04:00
Jeff Young ef3b7052e0 Remove layer nag dialogs and just ignore non-shapes on Edge_Cuts.
Fixes https://gitlab.com/kicad/code/kicad/issues/5812
2020-10-13 20:22:31 +01:00
Tomasz Wlostowski ac8b072284 router: fix assertion failure when starting a route on an empty board 2020-10-13 19:36:36 +02:00
Jeff Young 04f61fb1f2 Rebuild groups as a separate pass (required for nested groups).
Fixes https://gitlab.com/kicad/code/kicad/issues/5858
2020-10-13 17:58:24 +01:00
Jeff Young e789ad9fb2 Don't use clone to copy an EDA_ITEM. Use Duplicate().
Even if you give the clone a new KIID, all its children will still
be clones.

Fixes https://gitlab.com/kicad/code/kicad/issues/5982
2020-10-13 16:54:26 +01:00
jean-pierre charras 0cf57c7b1f Fix minor compil warnings (shadowed vars) 2020-10-13 17:35:54 +02:00
jean-pierre charras a7173e8ab0 Fix incorrect rendering of Vias when displaying the net name. 2020-10-13 17:35:54 +02:00
Jeff Young 3fc1a0c314 Fix faulty copper-checking logic.
Fixes https://gitlab.com/kicad/code/kicad/issues/5978
2020-10-13 16:32:54 +01:00
Jeff Young 1703729269 Require explicit decl of maxError and errorLocations.
This should reduce both performance issues and clearance issues.
2020-10-13 13:49:07 +01:00
Jeff Young 58ba5a5cc1 Add some more syntax examples.
Fixes https://gitlab.com/kicad/code/kicad/issues/5963
2020-10-13 10:18:34 +01:00
Jon Evans cb4ef5a619 Fix various rendering issues with non-through vias
Correctly hide netnames in high contrast mode
Correct highlighting for blind/buried/micro via drills
Repaint vias when needed to support stacked microvias

Fixes https://gitlab.com/kicad/code/kicad/-/issues/2593
2020-10-12 22:47:31 -04:00
Jon Evans 2abce40553 Better selection heuristics for highlight tool
Fixes https://gitlab.com/kicad/code/kicad/-/issues/4011
2020-10-12 22:47:31 -04:00
Jon Evans f9cff177a2 Don't dim selected items in high contrast mode
Fixes https://gitlab.com/kicad/code/kicad/-/issues/5259
2020-10-12 22:47:31 -04:00
Jeff Young 2e6968e7eb Board edges tester also needs to check silk text for visibility.
Fixes https://gitlab.com/kicad/code/kicad/issues/5989
2020-10-13 00:58:38 +01:00
Marek Roszko 83d231cd49 Fix test under msvc 2020-10-12 19:47:36 -04:00
Jeff Young 8c4197db2a Netclass track widths and via sizes are opts, not mins. 2020-10-13 00:34:10 +01:00
Jeff Young cd1a5ed6fb Implement progress reporting for DRC RTree.
Also fixes a bug in silk-to-mask checking which wasn't checking
zones on the mask layer.

Also a perfomance fix for the DRC RTree to use a hash table (std::map)
instead of a std::set for keeping track of known collisions.

Fixes https://gitlab.com/kicad/code/kicad/issues/5851
2020-10-13 00:03:58 +01:00
Jeff Young 5afae757ff Remove silk_clearance == 0 hack now that we have implied rules.
Fixes https://gitlab.com/kicad/code/kicad/issues/5977
2020-10-12 21:13:26 +01:00
Jeff Young 3759c71558 Allow copy-track-width to co-exist with current-track-width. 2020-10-12 21:00:13 +01:00
Jeff Young 44dbe3577b Create proxy items for PNS when needing to query clearances.
Fixes https://gitlab.com/kicad/code/kicad/issues/5929
2020-10-12 20:59:19 +01:00
Jeff Young 1024584cac Don't show netclass placeholders in track & via props dialog.
We have a separate checkbox for that.

Fixes https://gitlab.com/kicad/code/kicad/issues/5951
2020-10-12 18:57:00 +01:00
Jeff Young 70c3c5c514 Retire the two-item version of BOARD_CONNECTED_ITEM::GetClearance(). 2020-10-12 18:40:03 +01:00
Jeff Young af90642440 Hook board edge clearance constraints up to zone filling.
Also hooks them up to the clearance resolution reporter, and makes
some general improvements to reporting.

Fixes https://gitlab.com/kicad/code/kicad/issues/5947
2020-10-12 18:31:00 +01:00
Jeff Young 32dffd27ab Add silk clearance to board setup constraints. 2020-10-12 18:31:00 +01:00
qu1ck e784743284 Fix pcbnew drawings api
Add some basic tests
2020-10-12 16:38:32 +00:00
Michael Kavanagh c40483d18a Cleanup: Move KiCad files into plugins folder 2020-10-12 16:36:08 +00:00
Michael Kavanagh 70fcc139ec Cleanup: Move P-CAD files into plugins folder 2020-10-12 16:36:08 +00:00
Michael Kavanagh f45ca7179b Cleanup: Move GEDA PCB files into plugins folder 2020-10-12 16:36:08 +00:00
Jeff Glass d40faf836e pcbnew: Fixing misleading "Rescue Layer" message
Change wording of Undefined Layers dialog to indicate that
rescued layers will be denoted 'User.Comments' rather than
the deprecated 'Cmts.User'

Fixes https://gitlab.com/kicad/code/kicad/-/issues/5967
2020-10-12 10:39:08 -05:00
Jeff Young 1bcefe420a Move compound graphics tests back out to the shared path. 2020-10-12 11:46:08 +01:00
jean-pierre charras 380534807b Plotters: better support of filled circles having a thickness set to 0.
Setting a line thickness = 0 for graphic objects (circle, rect, line) is
allowed but creates issues for circles that were plotted a non filled shapes
but having a outline thickness = 0.
2020-10-12 11:30:43 +02:00
Jeff Young b92cb5c930 Hook up PNS via command to new rule system.
Fixes https://gitlab.com/kicad/code/kicad/issues/5951
2020-10-12 00:14:32 +01:00
Jeff Young 72f6127e53 Clean up terminology so it matches the user message better. 2020-10-12 00:14:32 +01:00
Seth Hillbrand 5fac21161c Revert "Remove footprint browser from pcbnew."
The footprint browser loads much faster than the add a footprint dialog,
so should remain until/unless we fix the loading speed.

This reverts commit 4d8ee4685d.
2020-10-11 12:17:47 -07:00
Jeff Young 37568d10ec Min width is smallest width it *can* be, not largest it *can't*.
Fixes https://gitlab.com/kicad/code/kicad/issues/5966
2020-10-11 19:17:19 +01:00
Marek Roszko 03074ae6ed Kick the selection tool to activate (and thus update cursors) on exiting some picker tools 2020-10-11 13:12:29 -04:00
jean-pierre charras 57da733f56 Avoid loss of data when saving a board having duplicate UUID
Some  (old) boards used for panelisation can have duplicate UUID
(timestamp). duplicate timestamps create loss of data when saving these boards.

Fixes #5969
https://gitlab.com/kicad/code/kicad/issues/5969
2020-10-11 19:07:28 +02:00
Jeff Young 7fb767653c Performance enhancements.
Don't redraw all pads when active layer is set unless it has
really changed.
2020-10-11 17:17:21 +01:00
Jeff Young 8e70381be3 Don't try and infer optimum widths for board minimums.
It doesn't work well with sorting the implicit rules by clearance.

Fixes https://gitlab.com/kicad/code/kicad/issues/5951
2020-10-11 17:17:21 +01:00
Seth Hillbrand 8fcb6c6f05 Exit fix loop in cleanup tracks
Fixes https://gitlab.com/kicad/code/kicad/issues/5968
2020-10-11 08:00:51 -07:00
Jeff Young af28ef9d56 Add silk clearance checking to Resolve Clearances...
Also fixes a bug in order of RTrees in silk collision checker.
2020-10-11 14:18:11 +01:00
Jeff Young 42eecdfd3a Collapse silk constraints down to one.
Also updates the rule syntax help and code-completion with a bunch
of diff-pair and other stuff that hadn't been updated yet.
2020-10-11 13:19:23 +01:00
Jeff Young bcebb19665 Add implied diffpair netclass rules. 2020-10-11 13:19:23 +01:00
Marek Roszko 558f4b4b51 Add new place cursor, fix cursor hotpoints again 2020-10-10 23:45:21 -04:00
Jeff Young 79f91481f3 Fix missing break stmt. 2020-10-11 01:11:55 +01:00
Jeff Young 614d452f12 Resolve trackwidth[0]/viasize[0] to be the netclass values.
If we don't have a netclass use the default netclass.

Fixes https://gitlab.com/kicad/code/kicad/issues/5957
2020-10-11 00:54:49 +01:00
Jeff Young f680ff17d6 Need an item to pick a netclass value. 2020-10-11 00:14:42 +01:00
Jeff Young 22cde88ba9 Allow chamfering/filleting of zone/board edge intersections.
Fixes https://gitlab.com/kicad/code/kicad/issues/5947
2020-10-10 23:09:43 +01:00
Mark Roszko a8bd0a9b84 Handle Windows manifests ourselves and add dpi awareness option 2020-10-10 19:08:23 +00:00
Jon Evans 6c6a3ff465 Remove API removed in 04c4012e from Python helpers 2020-10-10 15:05:38 -04:00
Jon Evans c1a724377f Fix AUI pane caption colors for dark mode 2020-10-10 14:55:32 -04:00
Jeff Young 04c4012ee6 Make track/via sizes UI more predictable and compatible with DRC.
Two main changes: netclass values need to go through the DRC engine
so they can interact with other rules.  They're also now dependent
on the layer being routed as well as the start object.

Also make the controls adjust to each other better.  For instance,
copy-track-width needs to turn off when you select a particular
track width, and a particular track width needs to zero out when
you choose copy-track-width.

Fixes https://gitlab.com/kicad/code/kicad/issues/5951
2020-10-10 19:32:30 +01:00
Jeff Young fdeb340d21 Defensive code against missing nets.
Also adds net re-parenting code to Repair Board.

Fixes https://gitlab.com/kicad/code/kicad/issues/5935
2020-10-10 16:54:19 +01:00
Jeff Young 527d5f1290 Disallow external fillets on self, not just interacting zones.
Fixes https://gitlab.com/kicad/code/kicad/issues/5947
2020-10-10 16:54:19 +01:00
Michael Kavanagh b2124a34dc Add grid properties context menu to grid toolbar
Fixes https://gitlab.com/kicad/code/kicad/issues/5663
2020-10-10 14:44:03 +00:00
jean-pierre charras 213a74cbe6 Gerber, Dialog plot: add option to disable Aperture Macro use.
Some broken Gerber readers cannot handle Aperture Macros without errors
although this feature exists since the beginning of RS274X format.
2020-10-10 16:42:21 +02:00
Ian McInerney 1df13ce32b Dismiss the layer selector grid combobox when it loses focus
Fixes https://gitlab.com/kicad/code/kicad/issues/5943
2020-10-10 15:24:35 +01:00
Ian McInerney 5aa796b5fe Cleanup compiler warnings 2020-10-10 15:24:35 +01:00
Jeff Young 90baed7e82 Fix typo of transposed semi-colon and comma.
Also eases translation of strings while we're here.

Fixes https://gitlab.com/kicad/code/kicad/issues/5933
2020-10-10 12:25:22 +01:00
jean-pierre charras c5f01501c1 PnS, router/router_preview_item: fix incorrect size of SH_RECT shape when drawing it.
The width of the rectangle was used instead of the width of outline (usualy 0) to
draw the shape (when dragging the pad for instance)

Fixes #5944
https://gitlab.com/kicad/code/kicad/issues/5944
2020-10-10 10:03:23 +02:00
Jeff Young 7f3ed1479e Back out fromOtherCommand handling.
It's only needed in PlaceModule() and creates problems here.  Also
adds a comment regarding the encapsulation leak that makes all this
hard to maintain.

Fixes https://gitlab.com/kicad/code/kicad/issues/5932
2020-10-09 23:41:30 +01:00
jean-pierre charras 411914dffb Fix python footprint wizards after recent changes in code 2020-10-09 20:48:13 +02:00
Seth Hillbrand 4d8ee4685d Remove footprint browser from pcbnew.
This is still used to choose footprint in eeschema, so the frame remains
2020-10-09 08:46:08 -07:00
jean-pierre charras dd929c7b2e Gen drill map file: ensure plot works when the edge cut layer is not visible
Fixes #5912
https://gitlab.com/kicad/code/kicad/issues/5912
2020-10-09 17:33:43 +02:00
jean-pierre charras f60954c232 Gerber export: add support for flashed chamfered rect (with no rounded corner) pads 2020-10-09 16:47:34 +02:00
Jeff Young b31470012a Previous check didn't account for router dragging. 2020-10-09 14:30:55 +01:00
Jeff Young 2ca819a627 Don't assume a DRC_CONSTRAINT has a parent rule.
It will still have a name, though.
2020-10-09 14:26:09 +01:00
Jeff Young 1cb0cbff2e Fix crash when router gets notifed but has no current m_placer.
Fixes https://gitlab.com/kicad/code/kicad/issues/5935
2020-10-09 14:26:04 +01:00
Jeff Young 1fc94c7a2d Fix printf arg mismatch.
Fixes https://gitlab.com/kicad/code/kicad/issues/5933
2020-10-09 13:57:49 +01:00
Jeff Young afe5d9ae05 Don't flip group name when flipping board view.
Fixes https://gitlab.com/kicad/code/kicad/issues/5915
2020-10-09 13:45:05 +01:00
Jeff Young e1eabac5e2 Fix name-change in DRC rules syntax help. 2020-10-09 11:31:30 +01:00
jean-pierre charras 7f1c376128 Fix a minor wxWidgets alert 2020-10-09 08:40:47 +02:00
Marek Roszko bd30a4a406 Add selection lasso and window cursors 2020-10-08 21:25:21 -04:00
Jon Evans 966730710e Partial fix for routing with no start item 2020-10-08 20:38:08 -04:00
Jeff Young 0c7630f8b4 Get rid of wxWidgets assert. 2020-10-09 00:31:29 +01:00
Jeff Young 298d5b6a11 Report units in clearance/width/etc. resolution reports. 2020-10-09 00:16:30 +01:00
Jeff Young 4f2e574f4b Move IsADiffPair to drc_engine.cpp for now.
Otherwise we have to include drc_test_provider_diff_pair_coupling.cpp
in CVPCB, which isn't ideal either.

I'll let Tom figure out the best plan going forward, but this should
at least get things compiling/linking again.
2020-10-09 00:05:22 +01:00
Jeff Young ce7794d9b6 Refresh after a Select All (without having to wait for mouse move). 2020-10-08 23:59:07 +01:00
Jeff Young 6550e01318 Sort synthetic netclass rules by min clearance.
This way when 'A' and 'B' have different netclasses the largest will
fire (rather than just a random one of the two).

Fixes https://gitlab.com/kicad/code/kicad/issues/5926
2020-10-08 23:41:27 +01:00
Tomasz Wlostowski 38cef95da9 router: initial support for V6 Design Rules (width/clearance/diff pair width/diff pair gap). Still a lot of work to do! 2020-10-09 00:01:26 +02:00
Tomasz Wlostowski 9bef95418e router: wip on less intrusive dragged trace optimization 2020-10-09 00:01:26 +02:00
Tomasz Wlostowski b5fa523a11 PCB_EXPR_EVALUATOR: added isDiffPair() API method 2020-10-09 00:01:26 +02:00
Tomasz Wlostowski 5c2c66dd07 drc: sane default rules for via diameters/diff pair widths/diff pair gaps (required by the P&S) 2020-10-09 00:01:26 +02:00
Tomasz Wlostowski 5e4fb46aef MINOPTMAX: added OptThenMin() method as syntax sugar 2020-10-09 00:01:26 +02:00
Jeff Young ea387f2f28 Don't segfault after doing a cutout which removes entire zone.
Fixes https://gitlab.com/kicad/code/kicad/issues/5532
2020-10-08 20:33:54 +01:00
Jeff Young 5ee302d2dc Fix spacing issue in Plot dialog. 2020-10-08 18:11:06 +01:00
Jeff Young 80ba02caf5 Fix iterator bug in group selection filtering.
Fixes https://gitlab.com/kicad/code/kicad/issues/5804
2020-10-08 14:15:10 +01:00
Jeff Young 9c6977a994 Remember mirror setting in print dialog.
Fixes https://gitlab.com/kicad/code/kicad/issues/5909
2020-10-08 14:15:10 +01:00
Jeff Young d305e9c715 Line width safety for PSLIKE plotter and some cleanup. 2020-10-08 14:15:10 +01:00
Marek Roszko f820dc990e Make the delete tool use KICURSOR 2020-10-08 07:40:14 -04:00
Jeff Young a534f24fb6 Repair deleting of groups in modedit. 2020-10-08 11:33:32 +01:00
Jeff Young 6752fdd58b Fix bug with adding items to group in modedit. 2020-10-08 11:33:32 +01:00
Jeff Young 2f49db49bf Fix fly-off arc handles and move Arc Properties to start/end/angle.
Fixes https://gitlab.com/kicad/code/kicad/issues/5791
2020-10-08 11:33:32 +01:00
Jeff Young 77aa48b825 Fix COMMIT handler for deleting PCB_GROUPs in footprint editor. 2020-10-08 11:33:32 +01:00
Marek Roszko f5e0754f65 Use the setCursor lambda pattern and fix up the initial cursor states 2020-10-07 23:26:14 -04:00
Marek Roszko 93376fa80e Use the central SetIfPresent helper 2020-10-07 22:13:46 -04:00
Roberto Fernandez Bautista 09ac5e0fdc Make GetCenter() in arcs return the center of the arc
Currently GetPosition() calculates the center of the arc
2020-10-08 01:41:37 +00:00
Mark Roszko d9485129c8 Implement more context specific cursors using both stock and custom cursors. 2020-10-08 00:50:28 +00:00
Ian McInerney 50405b558e Make the gerbview ruler tool more like the pcb ruler tool
* Allow the ruler to persist after clicking once on the canvas
2020-10-08 00:45:47 +01:00
Jeff Young 75185f6723 Don't allow negative line widths for grahpic shapes.
Fixes https://gitlab.com/kicad/code/kicad/issues/5599
2020-10-07 18:30:55 +01:00
Wayne Stambaugh cb73f43fc8 Remove duplicate SWIG include file. 2020-10-07 12:47:01 -04:00
Jeff Young 0ab583cf72 Special-case clearances of NPTH pads with no copper on layer.
These should get the hole clearance, not the copper clearance.

Fixes https://gitlab.com/kicad/code/kicad/issues/4017
2020-10-07 16:31:55 +01:00
Jeff Young 4565631728 Finish moving eeschema assigned netclasses to sheet-path-relative.
Also adds code for the case where a new label is created on a net
with an existing netclass assignment.

Fixes https://gitlab.com/kicad/code/kicad/issues/5886
2020-10-07 16:31:55 +01:00
Jeff Young cfc636d25f Minor adjustments to DRC syntax help. 2020-10-07 16:31:55 +01:00
Tomasz Wlostowski eb8287ded8 router: bring back legacy GetEffectivePolygon() for complex pad shapes (more info in comments) 2020-10-07 16:36:37 +02:00
Tomasz Wlostowski 8a7fc7e970 drc: more robust segment pair detection, still issues with approximated arc corners though... 2020-10-07 16:36:37 +02:00
Tomasz Wlostowski 719363fa4a Factor out class MINOPTMAX<> into a separate header 2020-10-07 16:36:37 +02:00
Jon Evans c3da54b741 Allow editing properties of locked pads
Fixes https://gitlab.com/kicad/code/kicad/-/issues/5861
2020-10-06 17:54:50 -04:00
Michael Kavanagh 42496a7d62 Convert DRC rules syntax help to markdown
Note, the original markdown spec specifies using 4 spaces to indent a
code block (https://daringfireball.net/projects/markdown/syntax)

Wrapping with three backticks doesn't work with this lib. Wrapping
with a single backtick for span elements works ok.
2020-10-06 17:18:35 +00:00
Jeff Young 7c46cb0a05 Make GetCenter() return the boundingbox center by default.
Leaves pads and markers returning the position.

Fixes https://gitlab.com/kicad/code/kicad/issues/1924
2020-10-06 18:00:18 +01:00
Jeff Young f620f8bdd3 Report silk/edge collisions.
Fixes https://gitlab.com/kicad/code/kicad/issues/5854
2020-10-06 13:20:52 +01:00
Jeff Young ee95d8fe2e Improve SNR in status bar (and use common code). 2020-10-06 12:08:31 +01:00
Jeff Young 305fe54971 Drawing tool needs to pass resetLocalCoords event after recording it.
Fixes https://gitlab.com/kicad/code/kicad/issues/5879
2020-10-06 12:08:31 +01:00
Benjamin Vernoux 00baaaa831 Add substrateMaterial FR408-HR
https://docs.oshpark.com/resources/four-layer-substrate-FR408HR.pdf
2020-10-06 10:31:00 +00:00
Jon Evans 728c207105 Deduplicate settings migration handling 2020-10-05 23:21:57 -04:00
Jeff Young d23d5510e7 Restore a side-effect that the router appears to depend on. 2020-10-06 00:07:34 +01:00
Jeff Young 35fa857fd8 Make sure router tool passes events it doesn't handle.
Fixes undo/redo when router tool is active but not routing.
2020-10-05 23:16:37 +01:00
Jeff Young 18a3c4c1db Fix some fairly catastrophic bugs in shape collision optimization.
I did a little too much copy & paste last time around....
2020-10-05 22:32:07 +01:00
Jeff Young 6d50c9749c Mark the colliding shape so we know which one to highlight.
Also checks the nets when checking for a pad being flashed on a particular
layer (so we don't end up thinking the currently-routing-collided track
is a connection).
2020-10-05 22:32:07 +01:00
Jeff Young 8f870e87d6 Flip default for KeepTopBottom in parser.
File only has a token if it's set to true.
2020-10-05 22:32:07 +01:00
Jeff Young bb5d393917 Respect "keep top/bottom" setting when checking pad layer. 2020-10-05 22:32:07 +01:00
Jeff Young d063c56971 Move PNS pad solids to COMPOUND_SHAPE.
Also fixes plated holes solids to include plating thickness.
2020-10-05 22:32:07 +01:00
Jeff Young 0751965b2b Be more responsive to user cancel. 2020-10-05 22:31:52 +01:00
Ian McInerney 43c14face0 Switch to showing metric/imperial units in comboboxes and menus
This will always show 1 unit from each system, with the primary unit
being the current frame unit and the secondary unit being the
most recent unit used from the other system. These are saved in
the settings, so they are saved between runs.
2020-10-05 20:26:33 +01:00
Wayne Stambaugh 27f3ac980f Fix broken Python builds. 2020-10-05 10:52:51 -04:00
Michael Kavanagh 1416280662 Cleanup: Move Eagle files into plugins folder 2020-10-05 14:19:07 +00:00
Jeff Young 5705859e9e Remove accidental debug code. 2020-10-05 12:27:21 +01:00
Jeff Young 37906511f5 Class renaming.
DRAWSEGMENT  -> PCB_SHAPE
EDGE_MODULE  -> FP_SHAPE
TEXTE_PCB    -> PCB_TEXT
TEXTE_MODULE -> FP_TEXT
2020-10-05 11:55:33 +01:00
Mark Roszko a28a0e14ba Fix conversion warnings 2020-10-05 10:41:14 +00:00
jean-pierre charras 49f0d80f14 gen_footprints_placefile: fix unit selection not stored in config.
Fixes #5884
https://gitlab.com/kicad/code/kicad/issues/5884
2020-10-05 10:50:40 +02:00
Jon Evans 0eaf7bfd1f Ensure visible layers are synchronized properly
Fixes https://gitlab.com/kicad/code/kicad/-/issues/5873
2020-10-04 16:55:22 -04:00
Ian McInerney 8b0fb9f4cf Remove units and polar settings from the preferences panels
These options are already available in menus, toolbars and hotkeys,
so having them in the preferences pane is more trouble than it is
worth.
2020-10-04 17:53:55 +01:00
Ian McInerney 3a570c27f0 Update unit handling in the preview ruler
* Make the ruler able to switch to mils after creation
* Cleanup an unused flag in Pcbnew dimensions
* Move unit changed notification into EDA_DRAW_FRAME so more
  frames to use it.
* Allow switching units when GerbView ruler tool is active
2020-10-04 17:53:55 +01:00
Ian McInerney 5828416960 Simplify area printing in the board statistics dialog
Store the board area in IU, and then convert it to the user
units on display using the common unit printing functions.
2020-10-04 17:53:55 +01:00
Ian McInerney 122bd7ca7c Make the statubar aware of mils units
Switch Eeschema to use the built-in printing routines
because its precisions are close to those and it is
cleaner.

Give mils a precision of 2 decimal places to match
the precision shown in inches.
2020-10-04 17:53:55 +01:00
Ian McInerney ad29a2f3b4 Update more places to properly display mils 2020-10-04 17:53:55 +01:00
Ian McInerney b1bd1f2a97 Introduce new action to switch to mils as a unit 2020-10-04 17:53:55 +01:00
Jeff Young 7a4900b8dc PCB_LINE_T -> PCB_SHAPE_T and PCB_MODULE_EDGE_T -> PCB_FP_SHAPE_T
Also updated footprint text and zone types for consistencey.
2020-10-04 16:49:04 +01:00
Seth Hillbrand 8e515d0069 Standardize default hotkey refresh 2020-10-04 05:48:26 -07:00
Jeff Young 85c6cebd77 Rework silk-to-pad checker to handle all solder mask clipping of silk.
Fixes https://gitlab.com/kicad/code/kicad/issues/5851
2020-10-04 13:21:01 +01:00
Jeff Young 36ceb8075e Fix logic bug in DRC RTree handler.
Return value from visitor is whether or not to keep searching, not
whether or not there was a collision.
2020-10-04 13:21:01 +01:00
Jeff Young 4702e279b9 A DRAWSEGMENT can be stroked *and* filled.
Make sure its effective shape reflects that.  Note also that the
strokes need to have the correct width.
2020-10-04 13:21:01 +01:00
jean-pierre charras ba8b8d2738 Fix incorrect vertical position of some ckeckboxes in some wxGrid used in dialogs 2020-10-04 10:34:31 +02:00
Marek Roszko 9e115a548e Add advance config variable to skip bounding box loading on footprints 2020-10-03 22:01:42 +00:00
Jeff Young bb753aaadf Clean up terminology around active & high contrast layers. 2020-10-03 22:55:34 +01:00
Jeff Young 44580acee2 Clean up some compiler warnings. 2020-10-03 22:55:34 +01:00
Mikolaj Wielgus d14761bee6 Fix inches being sometimes used instead of mils 2020-10-03 20:06:56 +00:00
Mikolaj Wielgus 400c15b8eb Add mils to units, remove useMils variables 2020-10-03 20:06:56 +00:00
Ian McInerney b69d396afc Turn the toolbar context menus into unique_ptr for easier management 2020-10-03 19:09:18 +01:00
Jeff Young 81154c9270 Back out check-for-mouse-in-selection-bbox for PCBNew.
Unlike eeschema, PCBNew has had a selection model for two major
releases so folks have gotten used to RMB acting on the selection
rather than what's under the mouse.

Plus it makes RMB after a drag-select nearly useless as your mouse
by definition ends up outside the selection bbox.

Fixes https://gitlab.com/kicad/code/kicad/issues/5857
2020-10-03 18:50:49 +01:00
jean-pierre charras 3144bab36f final cleanup about removing useless include 2020-10-03 16:40:36 +02:00
jean-pierre charras 0b23cb7dbb more cleanup about removing useless include 2020-10-03 15:26:03 +02:00
Jeff Young bea5914726 Make sure all DRC paths check for via/pad being flashed on layer.
Fixes https://gitlab.com/kicad/code/kicad/issues/5830
2020-10-03 14:20:19 +01:00
Jeff Young 8eb8d967d7 Show correct clearance lines for pads & vias not flashed on cur layer. 2020-10-03 14:19:33 +01:00
Jeff Young ba26e056ec Implement groups for modedit.
This uncovered a memory corruption bug in MODULE's move operator,
several bugs in MODULE's move and copy constructors, and a bug in
BOARD's GetItem() call.

It also bumps the file format for saving/restoring groups inside
footprints.
2020-10-03 12:19:50 +01:00
jean-pierre charras e76736b7bf Fix a few Coverity warnings 2020-10-03 12:47:41 +02:00
jean-pierre charras b38cef409b Rename CopyFile() to KiCopyFile() to avoid name colliding with a windows header.
Using CopyFile() that can collide with a windows header create hard to
understand errors, including link errors.

Renaming this function avoids these strange errors.
2020-10-03 10:08:21 +02:00
Roberto Fernandez Bautista 8c783687a9 pcbnew: Add "All supported formats" drop-down to the "Import Non Kicad Board" file dialog 2020-10-03 02:19:13 +00:00
Jon Evans 716598ac24 Layout tweaks to CADSTAR layer mapping dialog 2020-10-02 22:17:08 -04:00
Roberto Fernandez Bautista 72d9a36fd6 ADDED: Dialog to handle import of unmatched layers from CADSTAR 2020-10-03 01:21:57 +00:00
Jon Evans 45d7f2b6f5 Expose via holes to color theme properly 2020-10-02 21:12:59 -04:00
Jon Evans a25d091b6c Add Convert Shapes tool to footprint editor 2020-10-02 18:42:41 -04:00
Jeff Young 4c5db9681c Naming conventions. 2020-10-02 21:25:14 +01:00
Jeff Young cc617b715f Implement hypertext links for intersheet references. 2020-10-02 21:18:34 +01:00
Tomasz Wlostowski 5ef1dc17ad drc: ignore silk2pad/silk2silk violations for hidden text objects 2020-10-02 21:06:52 +02:00
Tomasz Wlostowski ca8aca6faa drc: implement DRC_RTREE::CheckColliding 2020-10-02 21:06:52 +02:00
jean-pierre charras 87a220b8e2 more cleanup about removing useless include 2020-10-02 14:51:11 +02:00
Jeff Young 732f588d83 Don't hit-test groups; allow only selection promotions from members.
Also fixes some bugs were the selection filters weren't getting
applied correctly on drag-selects.

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

Fixes https://gitlab.com/kicad/code/kicad/issues/5804
2020-10-02 13:50:16 +01:00
jean-pierre charras 13304d0870 more cleanup about removing useless include 2020-10-02 13:40:00 +02:00
jean-pierre charras 0cca2a0ad2 Rect, Round Rect, Oval, Trapezoid (rotated) pads now use flashed apertures.
Complex shapes are plot using regions.

The old code is still available, just in case...
2020-10-02 10:19:45 +02:00
jean-pierre charras 8285110c2a more cleanup about removing useless include 2020-10-02 08:58:19 +02:00
Peter Montgomery 60046a1bcc Dynamically scale cross-probe zooming
CHANGED: When doing cross-probe zooming, KiCad zooms the selected
component to fill the screen.  This makes it hard to understand the
part in context so users would have to always zoom out manually.  This
commit uses the default text height in Eeschema and Pcbnew as a
constant to compare the height of selected parts or components against.
This lets the code determine how big the part is and scale the zoom
wider accordingly.  Big parts get less scaling and small part get more.

NOTE: There is a little bit of debug code present.  There are #ifdefs
to let developers easily swap in the original KiCad zoom for comparison.
There is also a bool added that can force each program to always perform
the new calculated zoom since KiCad ignores zooms that are close to the
current value. This debug code can be removed later as desired.
2020-10-02 00:56:52 +00:00
Jeff Young daac95400f Make sure new DRC_ENGINE is initialized.
Fixes https://gitlab.com/kicad/code/kicad/issues/5824
2020-10-01 23:44:52 +01:00
Jon Evans b369506697 Don't test forbidden footprint layers in board editor
Fixes https://gitlab.com/kicad/code/kicad/-/issues/5847
2020-10-01 18:34:17 -04:00
Jon Evans 71ed7ee707 Revert "Drag preselected items even when "prefer selection to dragging" enabled"
This reverts commit d530e2c2cd.
2020-10-01 18:23:30 -04:00
Jeff Young 803f53d6b2 Don't reload DRC lists on activate event.
Fixes https://gitlab.com/kicad/code/kicad/issues/5701
2020-10-01 22:45:54 +01:00
Ian McInerney ff463842a8 Fix memory management with DIMENSION shapes
The previous way leaked the temporary SHAPE that was used
to construct the shared_ptr. Also, emplace_back shouldn't
be used with make_shared - since we already have the shared_ptr
and emplace_back will try to construct a new one.
2020-10-01 20:11:35 +01:00
Ian McInerney 481026e901 Move microwave tools into a group on the main drawing toolbar
ADDED: Drawing group for microwave tools on main drawing toolbar
REMVOED: Microwave toolbar no longer exists
2020-10-01 19:47:55 +01:00
Tomasz Wlostowski 8eb9d34aad drc: silk to silk clerance test should not report errors for hidden text 2020-10-01 18:55:53 +02:00
Tomasz Wlostowski aee16efe32 drc: LVS test should not throw an error if running in no-project mode 2020-10-01 18:55:53 +02:00
Tomasz Wlostowski 9b470b6c09 EDA_TEXT: Use actual draw rotation angle to generate the effective shape.
Fixes: #5814
2020-10-01 18:55:53 +02:00
jean-pierre charras 35e129ed47 Minor code cleanup, step3: remove more useless include. 2020-10-01 18:28:12 +02:00
jean-pierre charras f702da95c7 Minor code cleanup, step2: remove more useless include.
fix also a minor compil warning
2020-10-01 15:39:47 +02:00
jean-pierre charras 42350a4928 Minor code cleanup: remove useless include or useless code.
fix also a minor compil warning
2020-10-01 11:36:15 +02:00
Jon Evans d530e2c2cd Drag preselected items even when "prefer selection to dragging" enabled
Not being able to drag an already-selected item feels broken
2020-09-30 20:10:13 -07:00
Jon Evans 4dda3a1715 Don't allow editing design rules without a project
Also fix a crash initializing DRC engine on an empty board

Fixes https://gitlab.com/kicad/code/kicad/-/issues/5835
2020-09-30 19:12:26 -04:00
Jon Evans 8fad4bb34c Remove ratsnest visibility from PcbNew preferences
Ratsnest visibility is a quick toggle, not a preference

Fixes https://gitlab.com/kicad/code/kicad/-/issues/5261
2020-09-30 19:12:26 -04:00
Jon Evans 6f54a9982c Remove PCB_LAYER_WIDGET 2020-09-30 19:12:26 -04:00
Ian McInerney e7c31f5dba Fix build error due to variable renaming 2020-09-30 23:42:56 +01:00
Ian McInerney a5ed5e5675 Handle single line segments on footprint edgecuts
Also, only display an infobar message for footprints when
there is no footprint loaded (instead of if the outline
isn't closed).

Fixes https://gitlab.com/kicad/code/kicad/issues/4866
2020-09-30 23:34:04 +01:00
Ian McInerney 37eed564ab Process all drawsegments on the outline layer 2020-09-30 23:34:04 +01:00
Ian McInerney 0ac2803624 Create footprint edgecuts differently than the board edge cuts 2020-09-30 23:34:04 +01:00
Ian McInerney 78c43158f4 Annotate the board class with if it is for a footprint edit/view 2020-09-30 23:34:04 +01:00
Jeff Young 4165ae6df1 Make zero-stripping sensitive to locale separator.
Fixes https://gitlab.com/kicad/code/kicad/issues/5813
2020-09-30 23:27:03 +01:00
Jeff Young 6abe68fff0 Cleanup. No changes to execution. 2020-09-30 23:07:12 +01:00
Jon Evans 7c003f98d5 ADDED: Appearance panel for footprint editor
Fixes https://gitlab.com/kicad/code/kicad/-/issues/5643
2020-09-30 17:46:58 -04:00
jean-pierre charras 3f8c9d49f8 Revert "Code cleanup: remove useless wx/wx.h include inside a few files."
due to compil issue on Linux

This reverts commit cffccc3970.
2020-09-30 20:47:20 +02:00
jean-pierre charras cffccc3970 Code cleanup: remove useless wx/wx.h include inside a few files.
in most of files, including wx.h is not necessary, when only 2 or 3 wx files must be included.
Moreover, on windows, including wx.h sometimes create compil warnings about
shadowed vars defined in some specific windows headers.
2020-09-30 20:03:27 +02:00
Seth Hillbrand 12a30c43de Fix missing refactor 2020-09-30 08:42:58 -07:00
Seth Hillbrand bf3cb0b1d0 Standardize pad type enums 2020-09-30 08:38:35 -07:00
Jeff Young 673b52b5c4 Non-copper zones need a different trim-outside-board strategy.
The copper zones are checking for any point being outside the board
as they will have already been broken in to islands either entirely
outside or entirely inside the board.  Not so for non-copper zones.

However, non-copper zones are *already* trimmed to the board edges,
so we just need to avoid using the above faulty assumption.

Fixes https://gitlab.com/kicad/code/kicad/issues/5811
2020-09-30 11:50:51 +01:00
Jeff Young d3f8f2b81e Remove confusion between pad->IsOnLayer and pad->IsPadOnLayer 2020-09-30 11:50:51 +01:00
Jon Evans 31549cdc10 Clean up some things about pad locking
Allow selecting pads on a locked footprint (but not editing)
Don't create point editor for pads that should be locked

Fixes https://gitlab.com/kicad/code/kicad/-/issues/5829
2020-09-29 18:53:49 -04:00
Jeff Young ab033327c7 Limit checks need to be done at start, not end.
(We also use the limit checks to ignore violations.)

Fixes https://gitlab.com/kicad/code/kicad/issues/5831
2020-09-29 21:23:26 +01:00
Jeff Young 2cf303bb09 Test against pad hole cylinder when pad is not on layer. 2020-09-29 18:18:19 +01:00
Jeff Young 95f12d0826 Add some missing includes. 2020-09-29 16:32:44 +01:00
Jeff Young d0773cbe89 Be more careful with iterators when deleting.
Fixes https://gitlab.com/kicad/code/kicad/issues/5811
2020-09-29 14:11:32 +01:00
Jeff Young 66454ec895 Don't do hole-to-pad clearance testing on compound pads.
Fixes https://gitlab.com/kicad/code/kicad/issues/5822
2020-09-29 14:11:32 +01:00
Jeff Young d70f812255 Fix some initialisation issues in the Python framework.
Fixes https://gitlab.com/kicad/code/kicad/issues/5824
2020-09-29 14:11:32 +01:00
Jon Evans 4bb3e9dd98 Better handling of rounded pad shapes in GRID_HELPER 2020-09-28 23:59:44 -04:00
Jon Evans 30663c293c GRID_HELPER: allow snapping to collinear points 2020-09-28 21:38:08 -04:00
Jon Evans fe0f6b5ac7 ADDED: snapping to pad shape endpoints and midpoints
ADDED: snapping to rectangle midpoints

Fixes https://gitlab.com/kicad/code/kicad/-/issues/4749
2020-09-28 21:38:08 -04:00
Jon Evans e4ca4a2a47 REMOVED: "Delete twice to delete locked" action
Now that it is possible to disable selection of locked
items, it is better to just prevent accidental editing
of locked items

Fixes https://gitlab.com/kicad/code/kicad/-/issues/5793
2020-09-28 21:38:08 -04:00
Jon Evans 74b0e1fa47 Break apart locked items from the rest of the selection filter
Disable selection of locked items by default

See discussion in https://gitlab.com/kicad/code/kicad/-/issues/5793
2020-09-28 21:38:08 -04:00
Jeff Young 8dfb5b5640 Go back to separate intermediate and final corner strategies.
While we can *almost* get away with only chamfering/rouding acute
corners, some ugly edge cases turn up.

Fixes https://gitlab.com/kicad/code/kicad/issues/5581
2020-09-29 00:51:36 +01:00
Jeff Young bf67648562 Support optional location reporting in SHAPE collisions.
Also fixes a few bugs in the collision routines.
2020-09-28 23:28:33 +01:00
jean-pierre charras 39d2a46b30 Avoid Pcbnew crash when double clicking in DIALOG_DRC on a error item. 2020-09-28 21:07:51 +02:00
jean-pierre charras c21883c8c9 fix minor I18n issues. 2020-09-28 20:52:55 +02:00
PJM 258d1a1971 Pcb: Get proper "Break Track" location when invoked from RMB context menu
When invoking "Break Track" from the RMB context menu, Pcbnew
gets and uses the current position of the mouse to figure out where to
break the track.  The problem is that the mouse has to be moved to select
the "Break Track" menu item, and the mouse position used is wrong.  This
can result in the break in the wrong location or not happening at all.

CHANGED: This commit determines if the "Break Track" was invoked from a
context menu or a hotkey.  If a hotkey, it uses the current mosue position.
If a context menu, it uses the original postion of the mouse when the menu
was opened.
2020-09-28 16:56:02 +00:00
Mario Luzeiro 456112de03 Request redraw of 3D-Viewer when moving a footprint 2020-09-28 02:26:25 +00:00
Mario Luzeiro 5a362dfeeb Request redraw of 3D-Viewer when a selection from Schematic is made 2020-09-28 02:26:25 +00:00
Mario Luzeiro a1e94c2583 3D-Viewer: request a redraw when a footprint is selected in pcbnew 2020-09-28 02:26:25 +00:00
Roberto Fernandez Bautista 72b904a978 ADDED: CADSTAR Archive project importer 2020-09-27 23:50:20 +00:00
Roberto Fernandez Bautista 39995341d9 Compile fixes
Fix compile error
Fix string format to use %ld instead to work on clang in CADSTAR Archive importers
Add virtual destructor to CONNECTION in CADSTAR_ARCHIVE_PARSER
2020-09-27 22:05:07 +00:00
Jeff Young db1d3ea710 Update track, via and pad clearances for the current layer.
Fixes https://gitlab.com/kicad/code/kicad/issues/5797
2020-09-27 21:33:37 +01:00
Jeff Young 09ab269770 Support for 'L' in DRC expression language.
Also make layer testing work again against both canonical names and
user names.
2020-09-27 21:33:37 +01:00
Jeff Young a2d9acb647 Rename DRC rule function onLayer to existsOnLayer.
Fixes https://gitlab.com/kicad/code/kicad/issues/5647
2020-09-27 21:33:37 +01:00
Roberto Fernandez Bautista 6f5f6a0fba CADSTAR Schematic / PCB Archive Importers: Fix string formatting asserts 2020-09-27 18:14:02 +01:00
Roberto Fernandez Bautista 93242eb3ad CADSTAR Schematic / PCB Archive Importers: Add missing import warnings and fix code formatting 2020-09-27 18:14:01 +01:00
Roberto Fernandez Bautista 2d99703e28 CADSTAR Schematic Archive Importer: Load all Sheets and Hierarchical Blocks 2020-09-27 18:13:58 +01:00
Roberto Fernandez Bautista 646a733556 CADSTAR Schematic Archive Importer: Parse all elements 2020-09-27 18:13:57 +01:00
Roberto Fernandez Bautista 1b20a2910a Move all common CADSTAR Importer Parser code
Move all common code from CADSTAR_PCB_ARCHIVE_PARSER (pcbnew) to CADSTAR_ARCHIVE_PARSER (common)
2020-09-27 18:13:56 +01:00
Tomasz Wlostowski c5c6b97c8b drc: fixed warnings in length matcher 2020-09-27 17:51:16 +02:00
Tomasz Wlostowski fbb669aa75 drc: diff pair test provider reports gap & max uncoupled length violations. 2020-09-27 17:50:57 +02:00
Tomasz Wlostowski 8e9a39e17c drc: fix incorrect DRCE_LAST 2020-09-27 17:50:24 +02:00
Tomasz Wlostowski 3cca2ace44 pcbnew: fix warnings in FROM_TO_CACHE 2020-09-27 17:49:54 +02:00
Tomasz Wlostowski 5874373a0c drc: unfinished version of diff pair gap/coupled length test 2020-09-27 16:45:46 +02:00
Tomasz Wlostowski 9b4504e73f drc: report from-to paths for length matched signals 2020-09-27 16:45:46 +02:00
Tomasz Wlostowski adf7d3260d drc: parse diff pair constranits 2020-09-27 16:45:46 +02:00
Tomasz Wlostowski cb2dfcde83 drc: error codes for diff-pair related stuff 2020-09-27 16:45:46 +02:00
Tomasz Wlostowski 3654e7b795 pcbnew: add QueryFromToPath() method to FROM_TO_CACHE 2020-09-27 16:45:46 +02:00
Tomasz Wlostowski bd0bd5b84b drc: support for skew & via_count constraints. Length test now generates a length report 2020-09-27 16:45:46 +02:00
Tomasz Wlostowski f38147c201 drc: add support for via_count constraint to the parser 2020-09-27 16:45:46 +02:00
Tomasz Wlostowski 7b7c3bde88 pcb_new: CONNECTIVITY_DATA now keeps a cache of DRC from-tos 2020-09-27 16:45:46 +02:00
Tomasz Wlostowski bc7369d70c pcbnew: include silk2silk and length/skew DRC tests in the makefile 2020-09-27 16:45:46 +02:00
Tomasz Wlostowski 8d206a9ef0 PCB_EXPR_EVALUATOR: added fromTo() method 2020-09-27 16:45:46 +02:00
Tomasz Wlostowski 2258c861c9 drc: initial version of matched trace lengths test provider 2020-09-27 16:45:46 +02:00
Tomasz Wlostowski 2bacfe8202 drc: use R-Tree intersection for silk clearance tests 2020-09-27 16:45:46 +02:00
Tomasz Wlostowski b215361b30 drc: default constraints for silk2pad, silk2silk 2020-09-27 16:45:46 +02:00
Tomasz Wlostowski 26e7dc6e14 drc: added length/skew constraint types 2020-09-27 16:45:46 +02:00
Tomasz Wlostowski abe354773f drc: initial version of tree intersection (QueryCollidingPairs) 2020-09-27 16:45:46 +02:00
Tomasz Wlostowski 8405793e57 drc: add error codes for length/skew/via count violations 2020-09-27 16:45:46 +02:00
Tomasz Wlostowski 201a630740 drc: extend drc-rules file format with length and skew tokens 2020-09-27 16:45:46 +02:00
Tomasz Wlostowski 6578a76b72 drc: first R-tree based test (silk to pad clearance) 2020-09-27 16:45:46 +02:00
Tomasz Wlostowski 43404d4577 drc: be more verbose when skipping LVS due to lack of schematic netlist 2020-09-27 16:45:46 +02:00
PJM 9544c58bd7 Pcbnew: Cross-probe - Get correct zoom direction when view flipped
CHANGED: When Pcbnew has the view flipped, it causes cross-probe zooming
to go the wrong direction.  Instead of zooming in to the selected part,
it zooms very wide.  The problem is the x dimension of the screen size
becomes a negative value when the view is flipped, so "fabs()" is used
to correct it.

Fixes https://gitlab.com/kicad/code/kicad/issues/5157
2020-09-27 13:29:02 +00:00
jean-pierre charras 6b958ff4e0 Move specialized plotter classes from plotter.h to specific plotter_xx.h
plotter.h contains now only a header common to all plotters.
The code does not actually change, but it allows modifying a specific plotter
without recompiling most of kicad files.
2020-09-27 09:54:39 +02:00
Ian McInerney fc565edb33 Add a palette to the toolbars to display groups of actions
This adds a palette to toolbar items that displays groups
of actions when long-pressed on a button.
2020-09-27 01:00:44 +01:00
Jeff Young 23938356b9 Move "selection copied" to the status bar. 2020-09-27 00:26:18 +01:00
Jeff Young 4c21668940 Use high-contrast layer to inform clearance rules for outline.
Fixes https://gitlab.com/kicad/code/kicad/issues/5797
2020-09-27 00:11:51 +01:00
Jeff Young 7f33c229d8 Allow selection of nested items (ie: pads) inside an entered group.
Also moves some group-related functionality from BOARD to PCB_GROUP.
2020-09-26 20:35:52 +01:00
Jon Evans b6e4b7bf7d Fix order of initializing tools when loading board
Also add a few safeguards against invalid situations

Fixes https://gitlab.com/kicad/code/kicad/-/issues/5801
2020-09-26 14:45:16 -04:00
Jeff Young 7300640da0 Reload DRC rules on MODEL_RELOAD.
Fixes https://gitlab.com/kicad/code/kicad/issues/5794
2020-09-26 16:49:09 +01:00
Jeff Young f8875bc5a6 Move std::contains to alg::contains. 2020-09-26 14:42:40 +01:00
Jeff Young 035abe960c Fix copy/paste of groups.
We can't check for selected on parent groups because the order isn't
defined (and the parent may not yet have been selected).  Check for
inclusion instead.
2020-09-26 12:40:48 +01:00
Jeff Young d7e80f8008 Add std::contains() to simplify a lot of code. 2020-09-26 12:40:32 +01:00
Jeff Young e32c113249 A bit more syntax help for layers. 2020-09-26 10:20:10 +01:00
Jeff Young 44af3978af Re-implement undo/redo of group ops in a pointer-safe way. 2020-09-26 10:03:13 +01:00
Jon Evans 92c8ed2943 Fix non-copper zone layer ordering
Fixes https://gitlab.com/kicad/code/kicad/-/issues/5350
2020-09-25 23:10:52 -04:00
Jon Evans 597a212313 Fix saving of filled polys with custom layer names 2020-09-25 22:38:01 -04:00
Jon Evans 6df4a0cc7f Clean up asserts when running DRC from Python 2020-09-25 21:28:04 -04:00
Jon Evans bb8aa70ad0 Fix copy pasta 2020-09-25 21:28:04 -04:00
Jon Evans f4a8275f3e Allow selecting pads of locked footprints when filter allows
Before the selection filter, this heuristic made sense, but
now there is an explicit toggle to disable selection of locked
items, so we want to be able to select pads when that toggle
is enabled.
2020-09-25 21:28:04 -04:00
Jeff Young ba0bed7a45 Groups don't go in the view, but they do go in an overlay when entered. 2020-09-25 22:51:16 +01:00
Jeff Young 2ae4fecaea Paste items into group when group has been "entered". 2020-09-25 22:48:40 +01:00
Jeff Young eb97fe8386 Fix bug when entered group is immediate parent. 2020-09-25 22:14:22 +01:00
Jeff Young b4672c64ea Fix Group Properties dialog grow behaviour. 2020-09-25 21:14:08 +01:00
Jeff Young 955ba0a483 Add LAYER_ANCHORS to the always-active layer set.
Otherwise you can't see your groups in high-contrast mode.

Fixes https://gitlab.com/kicad/code/kicad/issues/5769
2020-09-25 19:42:06 +01:00
Jeff Young 6fde9ea8a5 Don't leave stale pointers in groups when exchanging modules.
Also simplifies groups so that other areas of code that have to know
about them at least don't have to know as much. One of the simplifications
is to not worry so much about empty groups until save time; others are in
the access logic to parent groups.

Also simplifies user model slightly by removing Merge and Flatten
(which are just ungroup/group and ungroup/ungroup/.../group).

Also allows multiple groups to have the same name.  This is useful when
using groups for a classification system.

Fixes https://gitlab.com/kicad/code/kicad/issues/5788
2020-09-25 18:43:19 +01:00
PJM d1322e7d1d Refactor GetDocumentExtents()
CHANGED: GetDocumentExtents() in 'eda_draw_frame.h' now has a bool
parameter "aIncludeAllVisible" with a default value "true" which makes
it behave as it did before adding parameter.  If "aIncludeAllVisible"
is false, the returned bbox ignores some items depending on which
program it is running in.

CHANGED: Made "Zoom to Objects" use only PCB edge in Pcbnew.  This
allows text, notes, etc outside the PCB edge to be excluded in the
zoom calculation.

CHANGED: Added "Zoom to Objects" to Pcbnew main menu, and to RMB context
menus for Eeschema and Pcbnew.

Fixes https://gitlab.com/kicad/code/kicad/issues/5787
2020-09-25 00:31:56 -07:00
Jon Evans 0783669633 CHANGED: Design rules files now use .kicad_dru extension
Fixes https://gitlab.com/kicad/code/kicad/-/issues/5763
Fixes https://gitlab.com/kicad/code/kicad/-/issues/5444
2020-09-24 21:26:23 -04:00
Jeff Young ae3ef90f7d Add location points to dimension message bar info.
Fixes https://gitlab.com/kicad/code/kicad/issues/5673
2020-09-25 00:43:30 +01:00
Ian McInerney bba29a1036 Always show the track and via menu in the router context menu 2020-09-25 00:17:54 +01:00
Seth Hillbrand 9937f52f06 Fix crash when not wrapping search
The iterator at the end of the search is already set the end(), so we
cannot increment it safely
2020-09-24 15:57:49 -07:00
Ian McInerney 672756a018 Move the router tools to a TOOL_MENU context menu
The previous way of displaying a context menu was being
usurped by the selection tool because it was displaying its
menu before DispatchContextMenu was called, and all other tools
explictly use the TOOL_MENU system.

Fixes https://gitlab.com/kicad/code/kicad/issues/5762
2020-09-24 23:51:34 +01:00
Jon Evans 1319885285 Wrap ZONE_FILLER to allow use without commit from Python
Fixes https://gitlab.com/kicad/code/kicad/-/issues/5646
2020-09-24 18:08:23 -04:00
Jon Evans ff652d5375 Fix saving colors modified outside of preferences 2020-09-24 17:29:40 -04:00
Jeff Young e16b7626cd Implement GetMsgPanelInfo for dimensions.
Fixes https://gitlab.com/kicad/code/kicad/issues/5673
2020-09-24 22:23:59 +01:00
jean-pierre charras dfaf0851fe Fix broken layer names used when saving a footprint from library.
This issue was also existing when copying to the clipboard.
Saving boards was not affected.

Instead of using canonical layer names, the user layers names were used.

Fixes #5779
https://gitlab.com/kicad/code/kicad/issues/5779
2020-09-24 20:01:24 +02:00
Wayne Stambaugh feeb925e61 Pcbnew: add user defined layer colors to color preferences panel. 2020-09-24 13:51:18 -04:00
Jeff Young f0739315f6 Use title-bar-style for group names.
Fixes https://gitlab.com/kicad/code/kicad/issues/5769
2020-09-24 16:35:20 +01:00
Wayne Stambaugh 564f363c57 Pcbnew: fix user defined layer bugs. 2020-09-24 10:19:10 -04:00
Jeff Young 5ad76a237e Moving checking the rules up a level so we can properly exit DRC dialog.
Fixes https://gitlab.com/kicad/code/kicad/issues/5778
2020-09-24 15:17:46 +01:00
Jeff Young 3e366a901f Expose pad type in property system.
Also corrects the spelling of some enum items so they match the
menus (otherwise folks will never be able to figure out what they
are).
2020-09-24 14:41:02 +01:00
Jeff Young dba42ebed0 ADDED Properties Dialog for groups.
ADDED memberOf() function for DRC rule expressions.

Also fixes a bug in several of the pickers where the event wasn't
being correctly passed.

Fixes https://gitlab.com/kicad/code/kicad/issues/5647
2020-09-24 14:41:02 +01:00
jean-pierre charras 446a9ca866 Round-rect pads: use a circle to draw degenerated shapes.
A degenerated shape is a round-rect pads with same X and Y size, and a
radius very near 50% of the size.

Fixes #5768
https://gitlab.com/kicad/code/kicad/issues/5768
2020-09-24 11:05:56 +02:00
jean-pierre charras aa6158a9fb fix a minor wxWidgets alert 2020-09-24 10:18:28 +02:00
Jon Evans 690575e2b6 Improve edit point legibility with a hover state 2020-09-23 21:27:23 -04:00
Seth Hillbrand 856cf51fc8 Fix typo 2020-09-23 14:00:39 -07:00
Seth Hillbrand b31eafdfa8 Restore missing layer check 2020-09-23 13:33:42 -07:00
Wayne Stambaugh 188232de6f Pcbnew: add user defined layers and allow all layers to have user names.
This changes the file format.  All previous copper layers that had a user
defined name are forced back to the canonical name and the user defined
name is stored as an optional quoted string in the layer definition and
only used for UI and plotting purposes.  All copper object layer names
are now the canonical name for internal file use.

ADDED: Nine new user definable non-copper layers that can be optionally
added to the board layer stack.

CHANGED: All board layers can now be renamed by the user.

CHANGED: User defined layer names can now contain space characters.

Fixes https://gitlab.com/kicad/code/kicad/issues/1969
2020-09-23 15:41:43 -04:00
Jeff Young 660cdcb056 More defensive coding for wxDataViewCtrl selection access.
Fixes https://gitlab.com/kicad/code/kicad/issues/5747
2020-09-23 20:31:48 +01:00
Jeff Young 4a0d469cec Back out zone layer misunderstanding and make types clearer. 2020-09-23 20:02:21 +01:00
Jeff Young 1f284111b0 Faster algorithm for zone-to-zone connectivity test. 2020-09-23 18:51:52 +01:00
Jeff Young e0ee420cb6 Add cross-reference processing to dimension prefix and suffix.
Fixes https://gitlab.com/kicad/code/kicad/issues/5752
2020-09-23 18:01:50 +01:00
Jeff Young 8b2dd76efe Update syntax help. 2020-09-23 17:52:44 +01:00
Jeff Young f5af17e1ba Fix file somehow left out of last commit. 2020-09-23 17:51:48 +01:00
Jeff Young 6dae769944 Progress reporting for connectivity tests.
Also makes via annulus terminology more consistent.
2020-09-23 16:28:00 +01:00
Jeff Young 167ae374fd Don't allow two DRC runs at the same time.
Fixes https://gitlab.com/kicad/code/kicad/issues/5745
2020-09-23 14:10:07 +01:00
Jeff Young 7d3eee8cf9 Move DebugZoneFiller to advanced config.
This will hopefully keep it from accidentally getting checked in
again.
2020-09-23 10:52:44 +01:00
Jeff Young 524603de14 Fix debug flag that shouldn't have been merged. 2020-09-23 10:24:32 +01:00
Jon Evans 8f01771138 ADDED: Python API to run DRC and write a report
Fixes https://gitlab.com/kicad/code/kicad/-/issues/2030

Note: this is a fairly basic API, you can't retrieve
individual DRC items.  This is intended to be a hold-over
until we write the new Python API that can expose full
functionality (since we do not want to wrap the entire
DRC system with SWIG)
2020-09-22 20:25:44 -04:00
Jon Evans 8ef888e115 Add a path for scripting console to work from build dir for debugging 2020-09-22 20:25:44 -04:00
Jeff Young 6d18f20093 ADDED constraints reporter for diagnosing constraints.
Also fixes an issue with via type property and makes property
comparisons in rule case-insensitive.

Fixes https://gitlab.com/kicad/code/kicad/issues/5754
2020-09-23 01:14:35 +01:00
Jeff Young fb7f98b51d Implement visual zone dumping and fix the default fill algo setting. 2020-09-23 01:14:35 +01:00
Jeff Young 7e5a6371c1 Cleanup. 2020-09-23 01:14:35 +01:00
Jeff Young 4d8537fcfa Handle multi-layer zones in connectivity. 2020-09-23 01:14:35 +01:00
Mark Roszko 610f0372d3 Initialize Py_SetPythonHome for msvc/vcpkg 2020-09-23 00:02:32 +00:00
PJM e77b7e3360 Make MMB double click perform 'Zoom to Fit'
ADDED: Make middle mouse button double click do a 'Zoom to Fit'
in Eeschema, Pcbnew, and Gerbview.  Ctrl-MMB does a 'Zoom to Objects'
in Eeschema.

Fixes https://gitlab.com/kicad/code/kicad/issues/1988
2020-09-22 23:21:44 +00:00
Jon Evans 5d78e9512f Don't check for a control that doesn't exist
Fixes https://gitlab.com/kicad/code/kicad/-/issues/5759
2020-09-22 18:00:12 -04:00
jean-pierre charras 9efc91c107 fix 2 minor compil warnings and make a sentence more easily translatable 2020-09-22 16:56:55 +02:00
Seth Hillbrand 4a86daa86d pcbnew: Restore missing pad size
After adjusting the pad size, we need to restore it when we
short-circuit the drawing routine

Fixes https://gitlab.com/kicad/code/kicad/issues/5702
2020-09-22 06:55:49 -07:00
Mark Roszko 7656663a2f Fix Python integration to build with vcpkg
* Add vcpkg support to find Oython using CMake
* Fix pid_t conflict with python
* Fix COMPILER conflict with python
2020-09-22 12:39:05 +00:00
Jon Evans acf13a1869 ADDED: Orthogonal dimension object 2020-09-21 23:55:02 -04:00
Jon Evans e345e7d17a Allow creating an empty project when saving a board standalone 2020-09-21 23:55:02 -04:00
Jon Evans 18e17abd6a Rename "Keepout" to "Rule Area"
These objects can now be used in advanced DRC rules and
not just for keeping things out.  Also remove the restriction
that at least one of the "basic" keepout rules must be set,
so that these areas can be used for more advanced rules.
2020-09-21 23:55:02 -04:00
Seth Hillbrand 408cd20294 drc: Test all zone layers for intersection
Zones can span multiple layers so we need to test each explicitly.

Fixes https://gitlab.com/kicad/code/kicad/issues/5750
2020-09-21 20:40:50 -07:00
Seth Hillbrand ffa1947056 pcbnew: Simplify copy routine
Choose a decent copy reference from the mouse position when copying.
Don't break UX standards by requiring mouse action when activating copy.
2020-09-21 13:28:21 -07:00
Jeff Young 4badcba4c2 Zone fill performance improvements
1) better load-balancing for deferred zones
2) sort zones by priority before filling
3) retire BOARD::GetZoneList() which had a horrible performance profile
4) implement a zone bounding box cache
5) better checks for IsCancelled() so long fills can be exited

Fixes https://gitlab.com/kicad/code/kicad/issues/5738
2020-09-21 21:09:58 +01:00
Ian McInerney d3dd1c45b6 Disable editing tools on the canvas when DRC is running 2020-09-21 20:39:46 +01:00
jean-pierre charras 456735f803 VIEW::ViewGetLOD() returns double now instead of int.
ViewGetLOD() returns the minimal value of a zoom to show an item.
However a zoom is a double, and using int as minimal value does not
allows setting a correct value in some cases.
2020-09-21 17:55:24 +02:00
jean-pierre charras 492a634413 Fp editor: Fix bug when moving fp anchor: pad shapes where not updated on screen. 2020-09-21 14:43:26 +02:00
Jeff Young 719e8d276f Use footprint editor display and window settings for footprint viewer.
Fixes https://gitlab.com/kicad/code/kicad/issues/5737
2020-09-21 13:13:09 +01:00
Ian McInerney b1160660d9 Check return value for zone fill in VRML exporter
If the zone fill failed, then don't add the zone to the
exported VRML because it might not be correct.

Also test that the Python command in DIALOG_SCRIPTING worked.
This dialog actually isn't used anywhere currently, so it
could in theory be removed - but it is simple enough and
it provides a decent testing dialog that it is more work to remove
it.
2020-09-21 12:32:30 +01:00
Ian McInerney 9e6a1225db Catch exception when creating app settings objects
These settings objects could be created in a constructor/destructor
so we should catch the exception since those are noexcept.

Also change the settings trace to match the other kicad traces
as KICAD_SETTINGS
2020-09-21 12:07:51 +01:00
Ian McInerney 542f447daa DRC tool: Ensure all calls to the dialog are guarded by null checks 2020-09-21 12:04:41 +01:00
Jeff Young 6020b70596 Display green badge for zero errors or zero warnings.
Fixes https://gitlab.com/kicad/code/kicad/issues/5735
2020-09-21 11:59:27 +01:00
Jeff Young c6fb799fcd Restore severity in saved DRC/ERC reports.
Fixes https://gitlab.com/kicad/code/kicad/issues/5733
2020-09-21 11:59:27 +01:00
Jeff Young 1b77c4c270 Mention rule priority system in Syntax Help and Clearance Report.
Fixes https://gitlab.com/kicad/code/kicad/issues/5647
2020-09-21 11:59:27 +01:00
Jeff Young 865249c227 Handle two panels both referencing same colour theme.
Fixes https://gitlab.com/kicad/code/kicad/issues/5185
2020-09-21 11:59:27 +01:00
jean-pierre charras 4db4a0a46f Pcbnew, PCB_PAINTER: very minor enhancement for commit 2751c677 2020-09-21 08:56:53 +02:00
Jeff Young 650cff5b39 Shorten solder mask alert and provide a link for fixing.
Fixes https://gitlab.com/kicad/code/kicad/issues/4798
2020-09-20 21:26:39 +01:00
Jeff Young b3a369bd7c Remove zone areas outside board edges.
The first attempt to address this which added back in the zones
with a 0 netcode didn't pick up those with a netcode which weren't
isolated (ie: because there were unplaced footprints outside the
board edges).

The new system gives up on trying to adjust the insulated island
list and just makes a second pass.

Fixes https://gitlab.com/kicad/code/kicad/issues/5658
2020-09-20 20:36:01 +01:00
Dominik Wernberger 884bed7e12 Fix that all file types are shown in file dialog 2020-09-20 16:04:44 +00:00
Jeff Young d9a94dc538 Don't allow selection of PCB_NETINFO_T.
Fixes https://gitlab.com/kicad/code/kicad/issues/5729
2020-09-20 16:41:39 +01:00
jean-pierre charras 2751c67746 Pcbnew, PCB_PAINTER: provides an option to show footprints bounding box.
This is only for bounding box debug purposes, and is not activated.
2020-09-20 16:30:23 +02:00
Jeff Young 1039fb1bc5 Minor refinement to Import Settings from Board dialog.
Also some defensive code to protect against an ASAN stack buffer
underflow.

Fixes https://gitlab.com/kicad/code/kicad/issues/5660
2020-09-20 13:55:59 +01:00
Jeff Young ad2407867a Disable Save Report while DRC is running.
Fixes https://gitlab.com/kicad/code/kicad/issues/5723
2020-09-20 13:55:58 +01:00
Jeff Young e27ff1dd3c Add Select All to multi-line text properties. 2020-09-20 13:55:58 +01:00
Ian McInerney 89dcc46898 Coverity cleanup and remove unused variables 2020-09-20 02:20:41 +01:00
Ian McInerney 65bd1ee9a4 Add a new BITMAP_BUTTON widget and use it in the appearances panel
This button behaves like an AUI button, so it is more suited
to being on panels without a border.
2020-09-20 01:43:27 +01:00
Ian McInerney f82ad61c90 More warning cleanup 2020-09-20 01:43:27 +01:00
Jeff Young 4558aff24b Add textVar cross-reference support to Dimensions.
Also adjusts spacing in the dialog.

Fixes https://gitlab.com/kicad/code/kicad/issues/5664
2020-09-19 20:42:30 +01:00
Jeff Young 13f1de8e73 Forgot a bunch of files from last commit. 2020-09-19 19:53:58 +01:00
Jeff Young 64fa400b19 Ease translation a bit.
Also improves the SNR and consistency of the menu item text.  For
instance, a position is rarely useful, while relative sizes can be.

Also removes some unnecessary repitition, such as "Graphic Rectangle"
when "Rectangle" communicates the necessary information.
2020-09-19 18:49:06 +01:00
Jeff Young db5de738ae Apply rules commutatively. 2020-09-19 18:48:11 +01:00
jean-pierre charras 121ccc3a10 Fix broken MODULE::HitTest()
HitTest was using a rotated bounding box, but the bounding box
is already right.
2020-09-19 19:37:58 +02:00
jean-pierre charras 55089f4732 Better strings for translation (minor fix) 2020-09-19 19:02:19 +02:00
Seth Hillbrand d227b53e1a Fix broken translation string 2020-09-19 09:13:30 -07:00
Jeff Young d402d93487 Implement shape routines for DIMENSION_Ts.
This allows them to participate in DRC and PNS.

Fixes https://gitlab.com/kicad/code/kicad/issues/5712
2020-09-19 14:16:00 +01:00
Jeff Young ece2ae9805 Don't capture commands in the router eventloop that it doesn't process.
Fixes https://gitlab.com/kicad/code/kicad/issues/5692
2020-09-19 12:08:18 +01:00
Jeff Young 0763a8962c Implement boolean not processing in expression language.
Also adds some more error catching to be more robust in the face
of malformed customer rules.

Fixes https://gitlab.com/kicad/code/kicad/issues/5694
2020-09-19 12:08:18 +01:00
Seth Hillbrand 23f7ba6ee4 Ensure that we had a pad remaining before painting
Null polygons should not be send to the painter, so we need to check to
see if our mask has removed the complete pad before painting

Fixes https://gitlab.com/kicad/code/kicad/issues/5702
2020-09-18 22:33:24 -07:00
qu1ck 5e0d79449e Fix pcbnew api for DIMENSIONs
DIMENSION is now an abstract class and we should cast to
concrete implementations instead.

Also change broken 'return none' to throwing an exception
which will give feedback about what is not supported by
the API instead of silently returning a non-object.
2020-09-18 22:52:47 +00:00
Jeff Young 2799faf52b Add syntax example using "not".
Fixes https://gitlab.com/kicad/code/kicad/issues/5694
2020-09-18 22:39:51 +01:00
Jeff Young 67b5d24995 Support ESC & Cancel for DRC.
Fixes https://gitlab.com/kicad/code/kicad/issues/5698
2020-09-18 22:14:00 +01:00
Jeff Young 73fc00ee69 Collapse VIA_TOO_SMALL and MICROVIA_TOO_SMALL into VIA_DIAMETER.
We'll also check too large in future....
2020-09-18 16:50:41 +01:00
Jeff Young f340636f70 When knocking out higher-priority zone use fill, not outline.
Also fixes a bunch of naming issues, primarily with lowercase for
protected variables, but also some for consistency with other parts
of the code.

Also changes the zone fill radio buttons in Board Setup to be more
generic referring to legacy vs. current, and to have tooltips.

Fixes https://gitlab.com/kicad/code/kicad/issues/5583
2020-09-18 16:45:41 +01:00
Jeff Young 90b147a914 Add DRC_ITEM definition for DRC_VIA_DIAMETER.
Fixes https://gitlab.com/kicad/code/kicad/issues/5695
2020-09-18 13:32:44 +01:00
Jeff Young 079bc52f6d Minor cleanup. 2020-09-18 13:14:08 +01:00
Jeff Young 53297c78a6 Don't eat commands we don't need in move tool.
This also fixes the dynamic ratsnest issue.

Fixes https://gitlab.com/kicad/code/kicad/issues/5692
2020-09-18 13:14:08 +01:00
Ian McInerney 34527630d0 Small cleanup 2020-09-18 11:17:37 +01:00
Ian McInerney a53f3899d4 Initialize variables properly 2020-09-18 11:17:37 +01:00
Ian McInerney aa0b0ca7e7 Fix some warnings in the cadstar importer 2020-09-18 11:17:37 +01:00
PJM 5feb4d3a7a Pcbnew: Check if user wants to warp mouse to origin of moved object
CHANGED: When moving a footprint, Pcbnew was always warping the mouse
to the origin of the moved object regardless of the state of the "Warp
mouse to origin of moved object" checkbox.  This MR now honors the
state of the checkbox when moving footprints.

Fixes https://gitlab.com/kicad/code/kicad/issues/5279
2020-09-18 02:47:59 +00:00
Jeff Young 81b523f9a4 Make sure the board itself is in the item map.
Also makes closing the DRC dialog a bit more foolproof.

Fixes https://gitlab.com/kicad/code/kicad/issues/5665
2020-09-18 00:53:14 +01:00
Jeff Young 8dd725469f Process properties command locally within drawing tools.
Fixes https://gitlab.com/kicad/code/kicad/issues/5612

Fixes https://gitlab.com/kicad/code/kicad/issues/5615
2020-09-17 22:32:22 +01:00
Jeff Young e202dba386 Be careful not to unload current project if settings imported from it.
Fixes https://gitlab.com/kicad/code/kicad/issues/5684
2020-09-17 20:56:51 +01:00
Jeff Young 7b2a111a1c Implicit rules go first so that other rules will take priority.
Fixes https://gitlab.com/kicad/code/kicad/issues/5687
2020-09-17 20:13:39 +01:00
Jeff Young 0f3d2147aa Performance enhancements for DRC. 2020-09-17 20:13:39 +01:00
Jeff Young 8e530db633 Reporting must be kept inside the REPORT macro.
Reporting is run on a single clearance where performance doesn't
matter much.  Doing the string building during a DRC, however, kills
performance.
2020-09-17 20:13:39 +01:00
Jeff Young a3d65a2b43 Smoother progress reporting for DRC checks.
Also moves Messages tab out to an overlay, and restores the longer
messages now that messages are no longer a textbox in the upper right.
2020-09-17 20:13:39 +01:00
jean-pierre charras e8d09cd998 Pcbnew: fix incorrect creation of scripting/plugins in user directory.
Initialize Python scripting even if this directory cannot be created
It is not a mandatory dir, and not initializing python scripting can create crashes.

Fixes #5667
https://gitlab.com/kicad/code/kicad/issues/5667
2020-09-17 10:47:21 +02:00
jean-pierre charras a1439881b7 Fix a collision name with a Windows header. 2020-09-17 07:46:02 +02:00
Seth Hillbrand 45ca1709bb Unify scripting dirs and open user-based
This consolidates python scripting in two locations: the system-wide
package-based location and the user configuration location.  It also
updates the "Show Scripting Folder" action to open the user
configuration location instead of the package-based one.

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

Fixes https://gitlab.com/kicad/code/kicad/issues/5115
2020-09-16 20:09:23 -07:00
PJM f3586ccd45 Pcbnew: Make 'GetBoundingBox' return correct answer when passed false
CHANGED: 'GetBoundingBox' has a variant that accepts a boolean that
determines if invisible text is included in the Bbox calculations.  The
'IsVisible' function for the value and reference strings doesn't
factor in if the layer it's on is visible or even in the PCB stackup,
so 'GetBoundingBox' returns a bbox that factors in invisible text
regardless of what it's passed.  This MR fixes that problem.

CHANGED: Refactored the original 'GetBoundingBox' function that doesn't
take a parameter.  It now just calls the variant that does take a
parameter and passes it 'true'.  The two versions had a lot of
duplicate code and this eliminates it.

Note: Issue 5629 might be better solved at the PCB module level, but this
does fix the known problems caused by it which were discovered in
'GetBoundingBox'.

Fixes https://gitlab.com/kicad/code/kicad/issues/5629
2020-09-17 00:59:07 +00:00
Jon Evans e9b627bfd8 ADDED: Center marker dimension type 2020-09-16 20:55:11 -04:00
Jon Evans 5109857883 Disable deselect net from main context menu
Right now we can't track the intended item to deselect
when there's an active selection already.

Having this feature available just from the appearance panel
should be fine.
2020-09-16 20:55:11 -04:00
Marek Roszko a82edb60fe Rotate the bounding box for hit tests on the fly 2020-09-16 23:29:21 +00:00
Marek Roszko 721c30e464 Make SetPosition and SetOrientation simply adjust the bounding box rather than continously recalculate it.
SetPosition is called on every pixel of a move operation which could be performance impacting on some systems.
2020-09-16 23:29:21 +00:00
Jon Evans 4a25db599e ADDED: Deselect net action
You can now deselect nets and netclasses (i.e. remove them from the
active selection) via the context menus in the appearance panel
2020-09-16 19:10:12 -04:00
Jeff Young 2b43ffd12d Better error reporting; better nullptr safety.
Also clears the marker lists before running a DRC, and sets
the drcRun flags afterwards so that the notebook tab counts
get updated.

Fixes https://gitlab.com/kicad/code/kicad/issues/5659
2020-09-16 22:14:41 +01:00
Jon Evans db40e0c595 Fix dimension point editor ordering
Fixes https://gitlab.com/kicad/code/kicad/-/issues/5656
2020-09-16 12:05:30 -04:00
Jeff Young ce3819abf8 Remove redundant clearances from DRC dialog. Fold progress bar in. 2020-09-16 16:06:29 +01:00
Jeff Young c0f83b30d3 Minor reformatting and performance improvement. 2020-09-16 16:04:28 +01:00
Tomasz Wlostowski b993a29695 drc: fix heap overflow 2020-09-16 13:45:12 +02:00
jean-pierre charras e137d61b29 Fix typo 2020-09-16 11:46:16 +02:00
jean-pierre charras c4b66e7cd3 drc/drc_test_provider: Fix a crash due to code change, at least on Windows.
The new code has not a lot of change, and is a bit cleaner.
2020-09-16 11:46:16 +02:00
Jeff Young 0ca09abbd3 Don't assume colour theme preview board will have a DRCEngine.
Fixes https://gitlab.com/kicad/code/kicad/issues/5650
2020-09-16 10:42:25 +01:00
jean-pierre charras 652a59b781 Fix null pointer use 2020-09-16 09:21:39 +02:00
Jon Evans 75ffce1a0b ADDED: Leader dimension object
Fixes https://gitlab.com/kicad/code/kicad/-/issues/5555
2020-09-15 23:37:38 -04:00
Seth Hillbrand 0f22e8e2fe Make SWIG aware of PYTHON3 for its bindings and remove threads
This removes the threading from the SWIG interface (it was supposed to
be off by default) and adds support for Python3 bindings when supported
by the system
2020-09-15 19:46:53 -07:00
Ian McInerney ea06c16255 Cleanup PCB_GROUP objects on the board when deleting the board 2020-09-16 02:04:17 +01:00
Ian McInerney 8bd77c4fe7 Rename the ITEM_SET types to be descriptive of their contents
Now that we have one set type for BOARD_ITEMs and another for SCH_ITEMs
it is better to explictly say if they are board or schematic sets.
2020-09-16 02:04:17 +01:00
Jeff Young 43ab963650 Don't expect footprint viewer frame to have a DRC engine. 2020-09-16 01:10:16 +01:00
Jeff Young cdbe2fd2d2 User terminology specific to Change Footprint/Symbol.
Also implements separate session settings for the reset checkboxes
for Change Footprint and Update Footprint.

Fixes https://gitlab.com/kicad/code/kicad/issues/5614
2020-09-16 00:15:26 +01:00
Jeff Young b4229d9a3e Fix testcase crash when progressReporter was null.
(And it helps if the DRC tester you're trying to test is actually
in the make file.)
2020-09-15 22:25:12 +01:00
Ian McInerney 6a7266d589 Only update DRC progress reporter if the reporter exists
The DRC engine might not have a reporter when run headless
2020-09-15 21:18:58 +01:00
Jeff Young b6a8e165c3 Don't allow schematic/pcb DRC tests when in standalone mode.
Fixes https://gitlab.com/kicad/code/kicad/issues/5635
2020-09-15 21:14:11 +01:00
Jeff Young e2e229da96 Finish exorcising the old DRC system.
This moves the various BOARD_ITEM calls to the new system, and make
the DRC_ENGINE long-lived so that it can field those queries.
2020-09-15 20:15:46 +01:00
Seth Hillbrand 67a7aa8ba4 Make snapping size grid-dependent
Fixes https://gitlab.com/kicad/code/kicad/issues/5638

Fixes https://gitlab.com/kicad/code/kicad/issues/5588
2020-09-15 12:07:34 -07:00
Seth Hillbrand 08bf5f4b4e ADDED: 45° snapping for rectangles aka Squares
The snap obeys only the Ctrl key and not the global preference setting
for drawsegments because rectangles are _always_ on H/V lines when drawn

Fixes https://gitlab.com/kicad/code/kicad/issues/5607
2020-09-15 11:22:26 -07:00
Roberto Fernandez Bautista 5467729611 Fix incorrect comparison in CADSTAR PCB Archive Importer
Also avoid use of magic numbers in case KiCad internal units ever change
2020-09-15 17:16:01 +00:00
Seth Hillbrand aa7e021bfc Remove translated null strings
Also improves translatability by separating clauses
2020-09-15 08:35:09 -07:00
Jeff Young 665212341d Cleanup (consistent naming, 100-char line width, message precision). 2020-09-15 12:07:31 +01:00
Jeff Young 514da2f886 Move DRC dialog to new DRC engine. 2020-09-14 22:39:36 +01:00
Seth Hillbrand 52d9a47d5b Fix endless loop in drc
Need to allow looping to negative when decrementing
2020-09-14 12:25:25 -07:00
jean-pierre charras 4cda653dbd dialog_drc: fix a minor issue when saving dialog drc options.
Fixes #5623
https://gitlab.com/kicad/code/kicad/issues/5623
2020-09-14 17:45:39 +02:00
jean-pierre charras ff0a728753 Fix a few I18N issues. 2020-09-14 10:02:07 +02:00
Jeff Young 748bee1bc7 Hook up netclasses and board minimums to new DRC engine.
Improves implicit rule reporting.
Makes some internal names more consistent.
Moves DRC_REPORT to the test framework.
Removes priority (which isn't supported in the grammar)
2020-09-13 17:08:24 +01:00
Jeff Young d47d119d5f Compile layer test into CONSTRAINT_WITH_CONDITIONS.
Also processes constraints in correct order for priority (reversed)
and removes multiple-expression-conditions for a single constraint
(which is not supported in the grammar).
2020-09-13 17:08:24 +01:00
Jeff Young 8420fcc33b Cleanup. 2020-09-13 17:08:24 +01:00
Jeff Young 5d9301d394 Adjust isErrorLimitExceeded so it can be used for severity==IGNORE. 2020-09-13 17:08:24 +01:00
jean-pierre charras 9f44d72923 Zone filler: fix regression: zone with no nets are now clipped to board outlines.
Due to code changes, only zones belonging a net were considered, and
zones with no nets were not examined when removing islands.

Fixes #5608
https://gitlab.com/kicad/code/kicad/issues/5608
2020-09-13 10:38:16 +02:00
Jon Evans 2380c4384a Fix alignment of label in dimension properties 2020-09-12 13:16:20 -04:00
Jon Evans d7e9411049 Filter out footprints that are larger than the viewport in either direction
Fixes https://gitlab.com/kicad/code/kicad/-/issues/2448
2020-09-12 13:16:10 -04:00
Jon Evans a80190e206 Make sure auto-unit dimensions are updated on board load 2020-09-12 11:52:59 -04:00
Jon Evans 3940e20fcb Expose extension offset and zero suppression settings 2020-09-12 11:52:59 -04:00
Seth Hillbrand 1703657fb5 Decrease default snap range
The snap range needs tuning to preference and monitor resolution.  This
shifts the default range down for users until the customization bits are
implemented.
2020-09-12 08:34:21 -07:00
Jon Evans e40287d327 Fix auto units to work when drawing new dimensions 2020-09-12 10:30:33 -04:00
Jon Evans 0347515cec Support text expansion in dimensions 2020-09-12 10:23:19 -04:00
Jon Evans 9d93f60fc4 Fix parsing old dimensions
Fixes https://gitlab.com/kicad/code/kicad/-/issues/5600
2020-09-12 08:25:54 -04:00
jean-pierre charras 1aa38b8f82 drc_rule.cpp: avoid crash with a incorrect (broken or too old?) drc_rule file.
The crash was due to a null pointer not tested.
2020-09-12 11:26:53 +02:00
jean-pierre charras a98ea2fb2e Fix a minor wxWidgets alert. 2020-09-12 10:52:12 +02:00
Jon Evans 30a428677f Change rotation command to only impact dimension text 2020-09-11 21:12:36 -04:00
Jon Evans 0e9997d9ca Add new dimension features to board design defaults 2020-09-11 21:12:36 -04:00
Jon Evans 76c4c959e6 Implement new dimension properties
- Automatic units mode (follow UI units)
- New text and number formatting options
- Automatic/manual text orientation control
- New text positioning options (inline and manual)

Fixes https://gitlab.com/kicad/code/kicad/-/issues/4280
Fixes https://gitlab.com/kicad/code/kicad/-/issues/4497
2020-09-11 21:12:36 -04:00
Jon Evans f1b7903a7d WIP: Implement new dimension properties 2020-09-11 21:12:36 -04:00
Jon Evans ae7877c6cb Migrate dimension precision 2020-09-11 21:12:36 -04:00
Jon Evans b11e315d10 Refactor DIMENSION to hide internal details; add some new properties
This is a board file format change to account for the new properties.
Also, we now only store the critical information about the dimension's
geometry in the board, rather than storing every drawn line.

The DIMENSION object is now an abstract base, and ALIGNED_DIMENSION
is the implementation that exists today (we will add more dimension
types in the future)
2020-09-11 21:12:36 -04:00
Jon Evans 50b92379c8 Add new dimension properties dialog 2020-09-11 21:12:36 -04:00
Jeff Young 5be887a60f Iron out some wrinkles in the DRC migration. 2020-09-12 01:57:37 +01:00
Jeff Young 8ac7288696 Fix a crash bug loading DRC rules.
Also moves the clearance report to the new DRC engine.
2020-09-12 00:46:55 +01:00
Jeff Young ce2937a399 Move rest of DRC tests to kicad. 2020-09-11 23:14:12 +01:00
Seth Hillbrand d14c6ba71f Keep snap line alignment before new snaps
Also fixes the alignment line that was supposed to be dashed and not
solid.
2020-09-11 14:22:41 -07:00
Jeff Young 5424d6fa09 Move new clearance tests into kicad. 2020-09-11 21:26:57 +01:00
Seth Hillbrand 965a32077d Fix compile error 2020-09-11 08:40:36 -07:00
Jeff Young cc86630f11 Start pulling new DRC engine into Kicad. 2020-09-11 16:04:11 +01:00
Jeff Young 6b4a6f4d3e Restore min seg limit for rounded-corner pads.
It suffered from a cacophony of errors, starting with an errant
comment that made it later look like a bug.  Sigh.
2020-09-11 14:41:45 +01:00
Jeff Young e2bc7557cc Clean up arc/circle polygonization.
1) For a while now we've been using a calculated seg count from a given
maxError, and a correction factor to push the radius out so that all
the error is outside the arc/circle.  However, the second calculation
(which pre-dates the first) is pretty much just the inverse of the first
(and yields nothing more than maxError back). This is particularly
sub-optimal given the cost of trig functions.

2) There are a lot of old optimizations to reduce segcounts in certain
situations, someting that our error-based calculation compensates for
 anyway.  (Smaller radii need fewer segments to meet the maxError
condition.) But perhaps more importantly we now surface maxError in the
UI and we don't really want to call it "Max deviation except when it's
not".

3) We were also clamping the segCount twice: once in the calculation
routine and once in most of it's callers.  Furthermore, the caller
clamping was inconsistent (both in being done and in the clamping
value). We now clamp only in the calculation routine.

4) There's no reason to use the correction factors in the 3Dviewer;
it's just a visualization and whether the polygonization error is
inside or outside the shape isn't really material.

5) The arc-correction-disabling stuff (used for solder mask layer) was
somewhat fragile in that it depended on the caller to turn it back on
afterwards.  It's now only exposed as a RAII object which  automatically
cleans up when it goes out of scope.

6) There were also bugs in a couple of the polygonization routines where
we'd accumulate round-off error in adding up the segments and end up with
an overly long last segment (which of course would voilate the error
max). This was the cause of the linked bug and also some issues with vias
that we had fudged in the past with extra clearance.

Fixes https://gitlab.com/kicad/code/kicad/issues/5567
2020-09-11 11:23:49 +01:00
Seth Hillbrand f493e270ea ADDED: Menu option to enable/disable snap to grid
You can now enable and disable snap to grid when drawing/editing across
all apps.  You can also tie snap to grid to the visibility of the grid
to allow rapid enable/disable via grid display.
2020-09-10 20:09:30 -07:00
Jean-Samuel Reynaud d6322dcf0d Ensure Tools->External plugins is populated
Since the commit e8b11c911e, the menu tools->external plugins is empty.
This is because on new system, an added submenu is cloned when added. So any update  on the object
after Add it as no effect. The menu stay empty.
With this commit the menu filling is made before adding submenu.
2020-09-11 03:04:27 +00:00
Jeff Young fc1665ff28 ADDED Clearance Inspector. 2020-09-10 20:58:38 +01:00
Jeff Young e31705d4b3 More source reporting for clearance rules. 2020-09-10 20:58:38 +01:00
jean-pierre charras 6009414e22 Drill files export: ensure the Top to Bottom PTH drill file is always created,
even if there are no hole.
NPTH file is already always created.

Fixes #5566
https://gitlab.com/kicad/code/kicad/issues/5566
2020-09-10 16:42:04 +02:00
jean-pierre charras 6ab6c00f61 Plot solder mask: fix incorrect shape for rectangular pads.
It was noticeable only for pads having a large solder mask clearance.

Fixes #5570
https://gitlab.com/kicad/code/kicad/issues/5570
2020-09-10 13:22:16 +02:00
Seth Hillbrand 4026904cc4 Make grid snapping depend on grid visibility
Turning the grid view on enables snapping to the grid.  Turning it off
removes the snap and allows free draw
2020-09-09 10:18:15 -07:00
Seth Hillbrand 173b4ff588 Add snapping to eeschema
This generalizes both the SetPosition() function and ORIGIN_VIEWITEM
class away from the pcbnew-centric.
2020-09-09 10:18:15 -07:00
Jeff Young 59c6635286 Add restrictions on copper layers for NPTH pads.
Also updates the stackup graphics to include NPTH pads.

Fixes https://gitlab.com/kicad/code/kicad/issues/5477
2020-09-09 10:22:17 +01:00
Jeff Young c090f1b646 Add restrictions on copper layers for NPTH pads.
Also updates the stackup graphics to include NPTH pads.
2020-09-09 01:49:50 +01:00
Jeff Young ab71ef9ec5 Try a different strategy at getting wxWidgets to honor stackup bitmaps.
Fixes https://gitlab.com/kicad/code/kicad/issues/5559
2020-09-08 23:34:43 +01:00
Jeff Young 0ec4c4fe65 A more targetted fix at the focus issue.
Fixes https://gitlab.com/kicad/code/kicad/issues/5477
2020-09-08 22:35:04 +01:00
Roberto Fernandez Bautista 6a82f23981 CADSTAR PCB Archive Importer: Load Component Copper and Component Areas 2020-09-08 21:21:21 +00:00
Roberto Fernandez Bautista c1dec964be CADSTAR PCB Archive Importer: Fix Parsing errors
Change error displayed when a Library .cpa file is opened (instead of a Layout file)
Add warning if variants exist in original design.
Parse LAYERHEIGHT in LAYER (same thing a MAKE but without the MATERIAL_ID)
Parse PADEXCEPTION in COMPONENT
Add DESIGN as one of the valid UNITS
2020-09-08 21:21:21 +00:00
Roberto Fernandez Bautista 05e5740504 CADSTAR PCB Archive Importer: Parse VARIANT data + add missing "REFPLANE" flag to layers 2020-09-08 21:21:21 +00:00
Roberto Fernandez Bautista 349ac06ee2 CADSTAR PCB Archive Importer: Fix compile error + BULLET pad is now correct 2020-09-08 21:21:21 +00:00
Roberto Fernandez Bautista 112da7828e CADSTAR PCB Archive Importer: Load Dimensions 2020-09-08 21:21:21 +00:00
Roberto Fernandez Bautista 8296b1d669 CADSTAR PCB Archive Importer: Load GROUPs 2020-09-08 21:21:21 +00:00
Roberto Fernandez Bautista 7ca4f0b375 CADSTAR PCB Archive Importer: Formatting fixes 2020-09-08 21:21:21 +00:00
Roberto Fernandez Bautista 94568e8699 CADSTAR PCB Archive Importer: Load Net Classes (Routing Widths in CADSTAR) 2020-09-08 21:21:21 +00:00
Roberto Fernandez Bautista a3531b02e7 CADSTAR PCB Archive Importer: Load documentation symbols and fix some import errors
Fix unnamed net import
Fix missing tokens
Fix zero-sized pads (make them really small instead)
2020-09-08 21:21:21 +00:00
Roberto Fernandez Bautista 7e65d443e8 CADSTAR PCB Archive Importer: Load TEXTS and fix loading speed
Loading speed fixed by changing the way CADSTAR_ARCHIVE_PARSER::InsertAttributeAtEnd works (we now have a new attribute in each node to keep track of how many attributes there are). Now loads a 30,000 line file in 10seconds instead of 25 minutes!
2020-09-08 21:21:21 +00:00
Roberto Fernandez Bautista fe3e20ddc7 CADSTAR PCB Archive Importer: Load design rules 2020-09-08 21:21:20 +00:00
Roberto Fernandez Bautista 866c069873 CADSTAR PCB Archive Importer: Load TEMPLATEs, COPPERs and NETs (including Tracks and Vias) 2020-09-08 21:21:20 +00:00
Roberto Fernandez Bautista 05de678f4e CADSTAR PCB Archive Importer: Rename CADSTAR_PCB class to CADSTAR_PCB_ARCHIVE_LOADER 2020-09-08 21:21:20 +00:00
Roberto Fernandez Bautista 08a77e0af8 CADSTAR PCB Archive Importer: Add import warnings for CADSTAR layers with no KiCad equivalent 2020-09-08 21:21:20 +00:00
Roberto Fernandez Bautista 3b3af5327f CADSTAR PCB Archive Importer: Move code into common/plugins and pcbnew/plugins folders 2020-09-08 21:21:20 +00:00
Roberto Fernandez Bautista fc76bdfeb2 CADSTAR PCB Archive Importer: Load Component Footprints 2020-09-08 21:21:20 +00:00
Roberto Fernandez Bautista 1351f5bcf1 CADSTAR PCB Archive Importer: Fix Polygon with Holes 2020-09-08 21:21:20 +00:00
Roberto Fernandez Bautista 56080a0adc CADSTAR PCB Archive Importer: Load Layer Stackup, FIGURES and AREAS
(and map CADSTAR to KiCad Layers with best guess logic)
2020-09-08 21:21:20 +00:00
Roberto Fernandez Bautista a9ef38e6c8 CADSTAR PCB Archive Importer: Load Board shapes 2020-09-08 21:21:20 +00:00
Roberto Fernandez Bautista a7effb7377 CADSTAR PCB Archive Importer: Parse LAYOUT section
Also general clean ups of comments / formatting
2020-09-08 21:21:20 +00:00
Roberto Fernandez Bautista 632d45e833 CADSTAR PCB Archive Importer: Parse PARTS section 2020-09-08 21:21:20 +00:00
Roberto Fernandez Bautista 4c2f38f1ad CADSTAR PCB Archive Importer: Parse LIBRARY section + code refactoring
code refactoring:
- Renamed CADSTAR_COMMON to CADSTAR_ARCHIVE_COMMON
- Renamed CPA_FILE to CADSTAR_PCB_ARCHIVE_PARSER
- Made CADSTAR_PCB_ARCHIVE_PARSER a derived class of CADSTAR_ARCHIVE_COMMON
- Moved all structures in cadstar_pcb_archive_parser.h/.cpp to be defined inside CADSTAR_PCB_ARCHIVE_PARSER class
2020-09-08 21:21:20 +00:00
Roberto Fernandez Bautista 0ce95f2803 CADSTAR PCB Archive Importer: Parse ASSIGNMENTS->TECHNOLOGY and ASSIGNMENTS->GRIDS sections 2020-09-08 21:21:20 +00:00
Roberto Fernandez Bautista 4fcba4d619 CADSTAR PCB Archive Importer: Parse HEADER and ASSIGNMENTS->CODEDEFS sections 2020-09-08 21:21:20 +00:00
Roberto Fernandez Bautista 86bf592bac ADDED: CADSTAR PCB Archive Importer
Initial commit
- Imports directly mappable layer stackup (only physical board fabrication layers for now)
2020-09-08 21:21:20 +00:00
Jeff Young 5d304cfa2a Uniformly apply focus hack to auto-preview.
Since the feature is controversial this also moves it into a single
function so that it's easy to disable.

Fixes https://gitlab.com/kicad/code/kicad/issues/5477
2020-09-08 22:19:29 +01:00
Mario Luzeiro 1ab968e72f 3D-Viewer: render different materials plated and non plated copper
implement on OpenGL
2020-09-08 21:02:19 +00:00
Jeff Young f347118ce3 Add a min pin width advanced config for plotting.
Fixes https://gitlab.com/kicad/code/kicad/issues/5546
2020-09-08 20:19:54 +01:00
jean-pierre charras f7b30bf397 FOOTPRINT_WIZARD_FRAME::ParametersUpdated(): fix a reentering issue
On wxWidgets 3.0.5, in some cases calling ReCreateParameterList() generates
a EVT_GRID_CMD_CELL_CHANGED that call ParametersUpdated() and creating
an infinite loop
Note also it happens **only for languages using a comma** instead of a point
for floating point separator
It does not happen on wxWidgets 3.1.4
2020-09-08 18:23:28 +02:00
jean-pierre charras 2335a58f5d DIALOG_FOOTPRINT_XX_EDITOR: fix incorrect position of checkboxes.
In 3D settings panels, due to a bug in wxWidgets 3.1.4, the checkboxes
controlling the 3D model visibility were not correctly put at the right Y position
2020-09-08 16:11:00 +02:00
Jon Evans 3d5b216d1d Allow rectangles to be converted to lines 2020-09-08 08:41:33 -04:00
Jeff Young b205c01c5b Add comments. 2020-09-08 11:02:09 +01:00
Jeff Young 9ea96ee64e Update pad layer testing for selectability.
My only guess is the old code predated the introduction of
GetLayerSet().  In any case it was long-winded and still didn't
catch the case of being on copper layers other than front or back
(which might be hidden).
2020-09-08 11:02:09 +01:00
Jon Evans e0f08338a8 Keep collapsible panes from stealing focus 2020-09-07 21:11:58 -04:00
Tomasz Wlostowski 54ca66be72 router: NODE::AllItemsInNet() can now filter by item type 2020-09-08 01:31:42 +02:00
Tomasz Wlostowski 70beca164f PCB_RENDER_SETTINGS: added SetZoneDisplayMode() method 2020-09-08 01:31:42 +02:00
Tomasz Wlostowski 91ce549e63 PCB_EXPR_EVALUATOR: added isMicroVia() and isBlindBuriedVia() built-in methods 2020-09-08 01:31:42 +02:00
Tomasz Wlostowski 2c1bd645b2 pcbnew: initial support for GetEffectiveShape() for zones and modules 2020-09-08 01:31:42 +02:00
Tomasz Wlostowski f2338d9faa router: fix segfault with NPTH holes in COMPONENT_DRAGGER 2020-09-08 01:31:42 +02:00
Jon Evans 147540b3bb ADDED: Control to only show ratsnest for visible layers 2020-09-07 16:43:43 -04:00
Jeff Young 5ec18aaf2a Fix board initialization error which left FPEdit without inner layers. 2020-09-07 21:01:42 +01:00
Jon Evans 11e61db03d Don't change preview notebook selection when editing
This causes focus change (on GTK at least), plus the user might
not want the notebook to change in the first place.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/5477
2020-09-07 12:08:40 -04:00
Jon Evans e3ff3a2d15 Make sure nets display when first loading a board 2020-09-07 12:02:18 -04:00
Jon Evans 4433259c80 Fall back on copper color when net color is not found
Fixes https://gitlab.com/kicad/code/kicad/-/issues/5540
2020-09-07 11:51:55 -04:00
Jon Evans d6be0be177 Skip migration if target key is missing
Fixes https://gitlab.com/kicad/code/kicad/-/issues/5536
2020-09-07 11:43:12 -04:00
Michael Kavanagh ad1ef9f4c9 Pcbnew: Enable resize of net inspector columns
Fixes https://gitlab.com/kicad/code/kicad/issues/5467
2020-09-07 05:34:37 +00:00
qu1ck 636285311e Make DRAWSEGMENT::GetRectCorners return vector
... instead of modifying the argument.
This will make the method usable in python API and will not incur
permormance penalty because named return value optimization (NRVO)
is a thing since C++11.
But even if copy is not elided vector is moved instead of copied.
https://en.cppreference.com/w/cpp/language/copy_elision
2020-09-07 05:33:10 +00:00
Jon Evans 758a4c26d5 Switch appearance panel to custom collapsible pane widget
The new widget looks the same on all platforms and fixes a few
bugs with the wxWidgets version
2020-09-06 22:43:39 -04:00
Seth Hillbrand 7e2a6a9b64 Block undo/redo while editing points
We need to keep a stable board while modifying items.

Fixes https://gitlab.com/kicad/code/kicad/issues/5533
2020-09-06 15:30:38 -07:00
Jeff Young a1e8ecc616 Beat wxWidgets into submission.
Fixes https://gitlab.com/kicad/code/kicad/issues/5534
2020-09-06 22:38:23 +01:00
Seth Hillbrand 8648a074da Ensure ZONEs use copy CTOR for super-class
If we don't uniformly use the copy CTOR, we miss the additional
properties held by the superclass.

This also adds additional crash protection in GetMsgPanelInfo for zones
although it should never be triggered

Fixes https://gitlab.com/kicad/code/kicad/issues/5530
2020-09-06 08:34:39 -07:00
Jeff Young 1be1205734 Repair missing checkVisibilityOnly test.
Fixes https://gitlab.com/kicad/code/kicad/issues/5516
2020-09-05 19:12:07 +01:00
Jeff Young adfcdc89af Repair parent pointer after SwapData() nukes it.
Fixes https://gitlab.com/kicad/code/kicad/issues/5523
2020-09-05 18:51:56 +01:00
Jeff Young 5b81c6c70f Fix typo. 2020-09-05 18:51:19 +01:00
Jeff Young e782794f96 Flesh out object properties and DRC Rule syntax help. 2020-09-05 17:44:59 +01:00
qu1ck 3dbebda168 Fix GetCustomShapeAsPolygon and add a unit test
Fixes #5497
2020-09-04 20:30:54 -07:00
Ian McInerney f28b60896c Allow toolbar items to cancel tools when pressed
There was a regression in v6 where the zoom to selection toolbar
item wasn't canceling the tool when pressed and the tool was active
(it was in v5). This implements a more generic framework for canceling
tools on button presses.

Fixes https://gitlab.com/kicad/code/kicad/issues/5103
2020-09-05 01:49:38 +01:00
Jeff Young 7893af2c60 insideArea should be outline-based, not fill-based.
Fixes https://gitlab.com/kicad/code/kicad/issues/5499
2020-09-05 00:25:19 +01:00
Jeff Young d0d13766ae Use the layerSettings vector, not map. Map may not yet be valid.
Fixes https://gitlab.com/kicad/code/kicad/issues/5505
2020-09-04 23:02:41 +01:00
Jeff Young f1f8f746f4 Also resolve worksheet textVar refs in DRC.
Fixes https://gitlab.com/kicad/code/kicad/issues/5506
2020-09-04 21:55:10 +01:00
Jeff Young 5e9ec82642 Correctly resolve textVar refs in worksheet items in ERC.
Also fixes a null-ptr bug in DRC.

Fixes https://gitlab.com/kicad/code/kicad/issues/5506
2020-09-04 21:38:07 +01:00
Jeff Young 08dee31d9e Try and unify the background colors between panels and platforms.
Also moves to WX_GRID to get rid of some wxGrid bugs, and moves the
provision of attrs to the GRID_TABLE (as those applied to the grid
are ignored when a table is specified).

Fixes https://gitlab.com/kicad/code/kicad/issues/5260
2020-09-04 20:47:50 +01:00
jean-pierre charras 2babcd5936 Do not translate debug strings 2020-09-04 20:29:22 +02:00
Jeff Young 800d8acb00 Reinstate collapsable controls in Appearances widget.
Also tries to fix highlighting on BOTH OSX and GTK (previuos efforts
have all worked only on one or the other).
2020-09-04 17:45:07 +01:00
Jeff Young 2736becb8b Fix typo in Toggle Layers action and add descriptions to hotkeys lists.
Fixes https://gitlab.com/kicad/code/kicad/issues/5494
2020-09-04 17:45:07 +01:00
Jeff Young ec576b5dfa DRC checks need to be done on current layer.
Don't be fooled by the name "segment".  It might be a via which is
on multiple layers....

Fixes https://gitlab.com/kicad/code/kicad/issues/5503
2020-09-04 15:05:03 +01:00
jean-pierre charras 0bd6e5d96e FIELDS_GRID_TABLE and TEXT_MOD_GRID_TABLE: fix incorrect position of checkboxes
This is an issue specific to wxWidgets 3.1.4
2020-09-04 15:41:51 +02:00
Jeff Young a728abe63c Simplify appearances controls presentation.
Fixes some OSX bugs in panel background colouring.
Also adds a bit info to control titles.

Fixes https://gitlab.com/kicad/code/kicad/issues/5260
2020-09-04 14:07:42 +01:00
Jeff Young 8ffad4b375 Only override color if net or netclass color is set.
Fixes https://gitlab.com/kicad/code/kicad/issues/5368
2020-09-04 14:07:42 +01:00
Jeff Young 007580c4b8 ADDED pad:pin checks for DRC "Test footprints against schematic". 2020-09-04 14:07:42 +01:00
Seth Hillbrand 91914f1a71 Reverts premature Python 3 calls in favor of backwards compat.
This reverts commits d8d8f4f670
and 9614f6d0d9.
2020-09-03 20:05:38 -07:00
Jon Evans 686311f0b4 Make sure to show newly-enabled layers when changing board setup
Fixes https://gitlab.com/kicad/code/kicad/-/issues/5478
2020-09-03 18:05:29 -04:00
Jeff Young 3573c8b967 ADDED hotkey for comment/uncomment line(s) in Scintilla.
Useful primarily for DRC Rules editor.

Fixes https://gitlab.com/kicad/code/kicad/issues/5480
2020-09-03 20:37:05 +01:00
Jeff Young 555b78e7ca Read/write COLOR4D::UNSPECIFIED in netinfo so you can clear colors.
Fixes https://gitlab.com/kicad/code/kicad/issues/5368
2020-09-03 20:35:38 +01:00
Jeff Young d1006138fd ADDED holeWallPlatingThickness to AdvancedCfg.
Used for zone filling and DRC hole collision testing.  Allows us to
calculate the actual hole size from the finish hole size.

Fixes https://gitlab.com/kicad/code/kicad/issues/5468
2020-09-03 16:00:07 +01:00
Jeff Young e535489a0a Pad settings need to be copied to both master *and* edited pad.
Fixes https://gitlab.com/kicad/code/kicad/issues/5447
2020-09-03 15:03:09 +01:00
Jeff Young eccb1e612e Refresh net annotations on tracks, pads, etc. when name changes.
Fixes https://gitlab.com/kicad/code/kicad/issues/5466
2020-09-03 15:03:09 +01:00
Jeff Young 8609180406 Add all non-shape properties to dummy hole pad.
This is required in case there are DRC Rules that are matching against
the properties.  It also allows any local clearance overrides to take
effect.

Fixes https://gitlab.com/kicad/code/kicad/issues/5468
2020-09-03 15:03:09 +01:00
Jeff Young b0081606f7 Fix crash bug in Select All / Delete.
We only expect footprint edge selections in the Footprint Editor.
They cause PCBNew's undo architecture to wrap itself in knots.
2020-09-03 15:03:09 +01:00
Jeff Young 38e9217d54 Consolidate all DRC epsilon/threshold values to a single advancedCfg setting.
Fixes https://gitlab.com/kicad/code/kicad/issues/5464
2020-09-03 15:03:09 +01:00
Jeff Young 450519a4bd Sometimes a DRAW_PANEL_GAL wants its immediate parent and sometimes not.
For instance, we get things like high-contrast-mode from the pad
dialog when rendering a pad preview, but we want the colours from the
parent PCB_BASE_FRAME.
2020-09-03 15:03:09 +01:00
Jeff Young 9a8dd6312b Fix formatting. 2020-09-03 15:03:09 +01:00
Seth Hillbrand 8751a55651 Tightening up the title bar display
Eeschema was the only application showing the file path.  This is of
limited use and prevented other information from showing in the
shortened menubar display.  Also combined strings for better translation
2020-09-03 06:59:37 -07:00
Seth Hillbrand d6a4ab0eec Shortening filenames in titlebar
Fixes https://gitlab.com/kicad/code/kicad/-/issues/2096
2020-09-03 06:38:34 -07:00
Michael Kavanagh de03d3d427 Application title bar: app name after filename
Fixes https://gitlab.com/kicad/code/kicad/issues/2096
2020-09-03 06:35:48 -07:00
Jeff Young 70b74b1fcd Add comment syntax to Rule Syntax Help
Fixes https://gitlab.com/kicad/code/kicad/issues/5458
2020-09-02 15:21:51 +01:00
jean-pierre charras eb16fec7ec Footprint wizards: fix some issues due to C++ code change.
Some constants were renamed, breaking some wizards.
2020-09-02 15:45:20 +02:00
Jon Evans 2198f8666c Fix typo in preset switcher 2020-09-01 21:27:57 -04:00
Ian McInerney cb36006406 First round of cleanup for the PCB groups
ADDED: Leave group action

Fixes https://gitlab.com/kicad/code/kicad/issues/5299
2020-09-02 02:10:26 +01:00
Ian McInerney 4ca7993382 Give new footprint libraries a dummy name in the file dialog
If they don't have a dummy name, then GTK will display the regex
for the extension in the dialog.

Fixes https://gitlab.com/kicad/code/kicad/issues/5365
2020-09-02 00:10:25 +01:00
Ian McInerney 84fb024b9d Fix array creation in the autoplacement tool
Fixes https://gitlab.com/kicad/code/kicad/issues/5424
2020-09-02 00:10:25 +01:00
Jeff Young ac73c99842 Code completion for netclasses and netnames.
Fixes https://gitlab.com/kicad/code/kicad/issues/5441
2020-09-01 18:36:58 +01:00
jean-pierre charras 9fdadcbcf5 EDA_BASE_FRAME::windowClosing( wxCloseEvent& event ): fix incorrect behavior.
windowClosing() calls Destroy() when the wxCloseEvent has no veto.
This is fine for usual EDA_BASE_FRAME frames, but not for frames shown in modal mode.
In modal mode, windowClosing() should not call Destroy(), because the calling frame
expects the instance not deleted after closing.
(the caller has to call Destroy() only once the frame can be actually deleted)
2020-09-01 17:46:17 +02:00
Mark Roszko 9f128f942c Move shutdown blocker to kiplatform 2020-09-01 10:14:51 +00:00
jean-pierre charras 756d6a123b FOOTPRINT_WIZARD_FRAME: fix a crash when opening the frame.
LoadSettings() was using the gal canvas, but the gal canvas was not created
when calling LoadSettings().
2020-09-01 09:32:05 +02:00
Mark Roszko a9532c2fa1 Add browse button to footprint 3d settings
Add normalization to 3d settings and footprint library table editor
2020-09-01 02:00:38 +00:00
Jeff Young 6e72f609f0 Make sure router and via tools update when sizes change.
Also adds a size menu to the context menu for the Via tool.

Fixes https://gitlab.com/kicad/code/kicad/issues/5321
2020-08-31 23:33:02 +01:00
Jeff Young 2697fc3864 Remove canvas-switching from OSX.
The Cairo renderer doesn't work on Retina displays.

Fixes https://gitlab.com/kicad/code/kicad/issues/4788
2020-08-31 18:48:25 +01:00
Jeff Young 452171e055 Remove more dead code (mostly includes). 2020-08-31 17:29:44 +01:00
Jeff Young 6488260185 Fix another signed/unsigned compare which will never work. 2020-08-31 17:29:44 +01:00
Jeff Young cfdf818878 Remove long-dead vestiges of DRC checks on Edit Tracks and Vias. 2020-08-31 17:29:44 +01:00
Michael Kavanagh 108936079b Fix default hotkey clash on "Delete Full Track"
Fixes https://gitlab.com/kicad/code/kicad/issues/3710
2020-08-31 15:48:29 +00:00
Jeff Young 1fa96b794a Update some strings for Appearance manager.
Fixes https://gitlab.com/kicad/code/kicad/issues/5431
2020-08-31 16:38:11 +01:00
Jeff Young 88635ee5b6 Clean up error messages.
Convert a lot of nags to InfoBar errors/warnings/messages, and some
that never should have been exposed to wxFAIL_MSGs.
2020-08-31 14:19:57 +01:00
Jeff Young 35a1b8a353 Remove error reporting which throw up GUI from plugin.
It's reporting a class of error (reference to non-existing net)
which could happen in a variety of other ways that aren't reported.
The correct thing to do is to alwasy run DRC.
2020-08-31 14:11:59 +01:00
Jeff Young 6b46c9b8be This error is no longer meaningful with UUIDs. 2020-08-31 14:10:39 +01:00
Jeff Young 091f769106 Add infobar error message for Autoplace when board not defined.
Fixes https://gitlab.com/kicad/code/kicad/issues/5425
2020-08-31 12:54:45 +01:00
Jeff Young d0479eb92c Fix signed/unsigned comparison that was destined to fail. 2020-08-31 12:53:15 +01:00
Jon Evans 8945f8865b Add PCB_LAYER_IDs to LayerName() and reformat for readability
LayerName() can now be called to get the default, translatable name
for any board layer.  LSET::Name() is used for the untranslated
names required for parsing board files.
2020-08-30 20:20:45 -04:00
Jon Evans 7a5c99ee0f Tweak the mouse-based posture solver
Add an epsilon to reduce flutter
Add a lock after a certain distance
Forget the old trail when unlocking

Fixes https://gitlab.com/kicad/code/kicad/-/issues/5381
2020-08-30 19:54:09 -04:00
Jeff Young 14a9c8dc42 Fix printing for introduction of zone layers and meta items.
Fixes https://gitlab.com/kicad/code/kicad/issues/5298
2020-08-30 22:49:27 +01:00
Jon Evans 9f7bca38b3 A better way of handling standalone project files 2020-08-30 16:04:39 -04:00
Jeff Young 3f1f89405e Removed unused datastructure in auto-router.
May (or may not) have some effect on #5424.

Fixes https://gitlab.com/kicad/code/kicad/issues/5424
2020-08-30 20:22:53 +01:00
Jeff Young c073749a5c Update clipboard format (host -> generator).
Fixes https://gitlab.com/kicad/code/kicad/issues/5413
2020-08-30 15:20:59 +01:00
Jeff Young 305abb210f Add a mode to allow zone smoothing to produce external fillets.
Fixes https://gitlab.com/kicad/code/kicad/issues/5306
2020-08-30 15:20:59 +01:00
Jeff Young 5be39c6299 Remove horizontal scrollbars from nets in appearances panel.
They're not really appropriate for a panel and the grid one (at
least) perturbs a bug in wxWidgets scroll space calculation).

Fixes https://gitlab.com/kicad/code/kicad/issues/5239
2020-08-30 15:20:59 +01:00
Fabien Corona 4a0d6297ab pcbnew: Add an alternate edit method for arcs
The alternate edit methods keeps the radius constant

Fixes https://gitlab.com/kicad/code/kicad/-/issues/5369
2020-08-29 22:59:11 +00:00
Jeff Young cc64709407 Reimplement skip-parent-page to work with MacHack.
This prevents the "leaking" pages where the layers panel is shown
in the background of all other panels.

Fixes https://gitlab.com/kicad/code/kicad/issues/5182
2020-08-29 20:53:53 +01:00
Jeff Young 12926723d7 Add file omitted from an earlier commit.
Fixes https://gitlab.com/kicad/code/kicad/issues/5407
2020-08-29 20:13:41 +01:00
Jeff Young c241b0716a Fix wxWidgets assert.
Fixes https://gitlab.com/kicad/code/kicad/issues/5407
2020-08-29 17:26:48 +01:00
Jon Evans 37b2ba1363 Fix missing board outline in All Copper Layers preset 2020-08-29 12:13:59 -04:00
Jon Evans fa8655511e Enable converting segments to arcs
Fixes https://gitlab.com/kicad/code/kicad/-/issues/1957
2020-08-29 12:13:51 -04:00
Jon Evans a390b19f97 Move actions around 2020-08-29 10:43:05 -04:00
Jon Evans 19832c7599 ADDED: Tool for converting shape types in PcbNew
Fixes https://gitlab.com/kicad/code/kicad/-/issues/2406
Fixes https://gitlab.com/kicad/code/kicad/-/issues/2507
2020-08-28 21:16:06 -04:00
Jeff Young 56a531109a Don't try and shrink shapes generated from pads.
It ends up being different from shrinking the final outline.
2020-08-28 20:48:47 +01:00
Seth Hillbrand 691c33e003 Don't export libid with footprints
We use the LIBID for board files to locate the correct library for the
footprint.  Once exported, the footprint should be associated with the
library that contains it, if any.

Fixes https://gitlab.com/kicad/code/kicad/issues/5400
2020-08-28 12:33:13 -07:00
Seth Hillbrand 4e08ec79dc pcbnew: Don't skip adjacent points
std::make_reverse_iterator already accounts for the difference in
directional representation

Fixes https://gitlab.com/kicad/code/kicad/issues/5392
2020-08-28 11:53:54 -07:00
Julian Fellinger dcf058d91e added vrml export via python api 2020-08-28 16:41:09 +00:00
Jeff Young beb370a3e5 Another typo. 2020-08-28 14:42:30 +01:00
Jeff Young f005977aab Minor simplification to custom colour theme GUI for print/plot dialogs. 2020-08-28 14:15:58 +01:00
Jeff Young ebb9a636fa Handle differential x:y clearance for solder mask.
Fixes https://gitlab.com/kicad/code/kicad/issues/5363
2020-08-28 14:00:37 +01:00
Jeff Young 5c67ee6c9d Fix typo. 2020-08-28 11:06:55 +01:00
Jeff Young 1caaf62454 Fix typo. 2020-08-28 11:05:58 +01:00
Jeff Young 9e12ea9bb6 Cleanup some dead code and make better use of iterators.
Also applies coding style around auto and lambdas.
2020-08-28 11:05:58 +01:00
Jeff Young 8b7c0cbe04 Adjust footprint zones while dragging footprint. 2020-08-28 11:05:58 +01:00
Jeff Young e7db43285f ADDED new footprint fabrication attributes.
This commit also adds mapping of the new symbol properties
"exclude from BOM" and "exclude from board" to be correctly
handled in Update Board from Schematic.

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

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

Fixes https://gitlab.com/kicad/code/kicad/issues/2233
2020-08-28 11:05:58 +01:00
Jeff Young b8aee85b94 Don't drop selection on an undo/redo.
We want to be able to restore it back to the way it was.

Fixes https://gitlab.com/kicad/code/kicad/issues/5356
2020-08-28 11:05:58 +01:00
Jeff Young 4e885990b8 Don't keepout a keepout's own footprint.
Fixes https://gitlab.com/kicad/code/kicad/issues/5371
2020-08-28 11:05:58 +01:00
Seth Hillbrand e665ad811d pcbnew: Remove 'host' compile info from header
The 'host' tag causes issues with revision control when editing files on
two different machines with the same KiCad version but different builds.
This replaces the host tag with a simpler 'generator pcbnew' pair that
does not include build data.
2020-08-27 11:57:50 -07:00
Seth Hillbrand 1e461c2259 ADDED: Improved center point dragging
The center point on polygons now maintains the axis of the dragged line
and, optionally with Ctrl pressed, maintains the slope of the adjacent
segments as well.

This also fixes a longstanding issue that prevented the ctrl-snapping
from using the original point rather than the last updated point when
constraining.

Fixes https://gitlab.com/kicad/code/kicad/issues/2465
2020-08-27 10:34:12 -07:00
Seth Hillbrand a08c5c67e3 pcbnew: Get correct default parameter from settings
Corrects courtyard default width when read from settings.

Fixes https://gitlab.com/kicad/code/kicad/issues/5384
2020-08-27 06:14:21 -07:00
Seth Hillbrand 0dc0536cbf pcbnew: Fix Select All copy-pasta
Adds condition to footprint editor and corrects condition for both
modedit and pcbnew
2020-08-26 17:19:32 -07:00
Jon Evans dc7e1783b3 Make sure a project is loaded at all times
For now, much of KiCad depends on Prj() working, so when we
are asked to unload a project, immediately load the null project
so that nothing breaks.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/5374
2020-08-26 18:37:34 -04:00
Seth Hillbrand 3e754e0378 Teach PNS to respect PTH pads on single layers
This is a valid configuration for some single layer boards (e.g.
high-power LEDs) so we should ensure that PNS doesn't allow connections
to those layers without pads.
2020-08-26 18:09:06 +00:00
Seth Hillbrand f4e8c194be Revise restriction on No Copper setting
This allows the user to specify a NPTH with "No Copper", allowing a pad
to retain the mask layer without a copper landing.

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

Fixes https://gitlab.com/kicad/code/kicad/issues/5237
2020-08-26 18:09:06 +00:00
Mark Roszko 1082402b33 Convert UNDO_REDO_T to an enum class 2020-08-26 18:04:32 +00:00
Reece R. Pollack 0b56dc09a6 EXPERIMENTAL: Origin transform of class DRAWSEGMENT 2020-08-26 17:54:22 +00:00
Reece R. Pollack a9c835275a Apply display origin transforms in Pcbnew dialog classes
This commit applies display origin transforms to all Pcbnew
dialog classes that use UNIT_BINDER for their formatting:

  * DIALOG_CREATE_ARRAY
  * DIALOG_FOOTPRINT_BOARD_EDITOR
  * DIALOG_GRAPHIC_ITEM_PROPERTIES
  * DIALOG_GRID_SETTINGS
  * DIALOG_MOVE_EXACT
  * DIALOG_PAD_PROPERTIES
  * DIALOG_POSITION_RELATIVE
  * DIALOG_TEXT_PROPERTIES
  * DIALOG_TRACK_VIA_PROPERTIES
2020-08-26 17:54:22 +00:00
Reece R. Pollack 6f1204cfd7 Add Display Origin Transforms support to the PCB_BASE_FRAME class
This commit adds support for display origin transforms to the PCB_BASE_FRAME
class. This instantiates a PCB_ORIGIN_TRANSFORMS object, and overrides the
GetOriginTransforms method in the EDA_DRAW_FRAME class to reference it.

The formatting of the status line has been updated to display coordinates
relative to the user-selected origin, and with the coordinates increasing
in the user-selected direction.
2020-08-26 17:54:22 +00:00
Reece R. Pollack af218a5dc0 Add the PCB_ORIGIN_TRANSFORMS class
This commit adds the PCB_ORIGIN_TRANSFORMS class, which is derived
from the ORIGIN_TRANSFORMS class, and provides a set of templated
functions to convert PCB coordinates between internal representation
and display representation. It extends the ORIGIN_TRANSFORMS class
to understand the three user-selectable display origins and the
coordinate direction display options.
2020-08-26 17:54:21 +00:00
Reece R. Pollack 5a5d99b018 Add Pcbnew Display Origin Transforms preferences panel
This commit adds support for the Display Origin Transforms preferences
selection panel. This panel allows the user to select the desired
coordinate origin, and the direction in which the axes increase.
2020-08-26 17:54:21 +00:00
Reece R. Pollack b483fd32a6 Support save/restore/upgrade of PCB Display Origin Transforms settings
This commit modifies PCBNEW_SETTINGS to add support for saving and
restoring the user's display origin transform settings. It also adds
support for converting these settings from the 5.x format to the
current format, for anyone who used the tech demo of this feature.
2020-08-26 17:54:21 +00:00
Reece R. Pollack 2895d664e6 Add Display Origin Transform data to the PCB_DISPLAY_OPTIONS class
This commit adds the user configuration options to support display
origin transforms to the PCB_DISPLAY_OPTIONS class. This data is
configured by the "Origins & Axes" preferences panel added in a
later commit.
2020-08-26 17:54:21 +00:00
Jeff Young a55eaec28c If it's modal then we don't own the window. Just DismissModal().
Fixes https://gitlab.com/kicad/code/kicad/issues/5355
2020-08-25 23:32:17 +01:00
Jeff Young b863beaaf6 Make tracks respond to stingy selections like everything else.
Fixes https://gitlab.com/kicad/code/kicad/issues/5332
2020-08-25 20:10:56 +01:00
Jeff Young 996ea4d5f9 Performance improvements for zone filling.
Remove extraneous simplify calls.

Fixes https://gitlab.com/kicad/code/kicad/issues/3812
2020-08-25 20:10:14 +01:00
Jeff Young 6d12859c14 Give up on trying to get Clipper's miter strategies to work.
Instead, make sure we remove the clearance holes and outline at
the end so that copper isn't allowed to "spill" into areas it
shouldn't be in.

Also fixes a bug where the Advance Cfg defaults weren't getting
loaded when the file didn't exist.

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

Fixes https://gitlab.com/kicad/code/kicad/issues/5306
2020-08-25 19:07:37 +01:00
Seth Hillbrand adff7f749b PNS: Addition layer smarts
Edge.Cuts have no parent but cross all layers, so we need to handle the
"all layers" case.  Also renames "IsPadOnLayer" to "IsOnLayer".

Fixes https://gitlab.com/kicad/code/kicad/issues/5351
2020-08-25 09:42:50 -07:00
Jeff Young 1138c32bf3 Don't pass Cancel event where there was a specific action cancelled.
For instance, if during a move the user hits ESC they only want the
move cancelled, not (for instance) the selection dropped.

Fixes https://gitlab.com/kicad/code/kicad/issues/5356
2020-08-25 12:54:40 +01:00
Seth Hillbrand 35eda030a2 pcbnew: Ensure we are cloning pads
When calling MODULE::Clone() we need to clone the pads as well or we
will end up with scm churn when running undo/redo operations
2020-08-24 19:40:08 -07:00
Jon Evans 24435fcc62 Don't create new project files when opening boards/schematics
Display warning infobar in the board/schematic setup when no project
is loaded, since most of the settings in those dialogs are saved in
the project and not in the board/schematic file.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/4868
2020-08-24 22:17:21 -04:00
Jon Evans eda0f1a27f Remove broken RefreshRect; it doesn't seem to add much 2020-08-24 21:32:04 -04:00
Jon Evans 5e2946ef90 Use full net names in netclasses
Short net names are not unique; full names with paths must be used.
Added a grid cell renderer that does the escaping, to make it easier
to display net names in grid cells.

Once you unescape a net name, you can't go back to the escaped form
because you can't assume which `/` should be {slash} and which `/`
Because of this, we cannot use Unescape/Escape on the data model in
the netclass setup panel, and instead do the Unescape in the view.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/5331
2020-08-24 21:19:07 -04:00
Jon Evans 1efd512847 Remove unnecessary event handler binding
Fixes https://gitlab.com/kicad/code/kicad/-/issues/5341
2020-08-24 19:59:16 -04:00
Jon Evans 67a5ed15c7 Make sure appearance panel builds after project has been loaded
OnBoardChanged must run after LoadProjectSettings.
Move the local overrides to PCB_EDIT_FRAME::onBoardLoaded
so that they are run after the panel is initialized.
2020-08-24 19:39:18 -04:00
Jon Evans e9b8cac320 Erase net colors when they are reset by the user
Fixes https://gitlab.com/kicad/code/kicad/-/issues/5342
2020-08-24 19:39:18 -04:00
Jon Evans f8609ed603 Don't hide swatches when setting netclass color
Fixes https://gitlab.com/kicad/code/kicad/-/issues/5343
2020-08-24 19:39:18 -04:00
Jeff Young 15c136ead2 Make a bunch of help dialogs modeless.
Fixes https://gitlab.com/kicad/code/kicad/issues/5334
2020-08-24 23:17:33 +01:00
Jeff Young b8bbe72e48 Another attempt to fix the select-reference-point toolstack thing.
This time remove the push/pop from the picker tools as that's
responsible for the issue of trying to re-activate the move action
when its popped.  Instead do the push/pop from the client code
of other actions that need it, and not at all from the move-with-
reference action.

Fixes https://gitlab.com/kicad/code/kicad/issues/5336
2020-08-24 22:47:24 +01:00
Jeff Young 50b182574d Missing change from last commit. 2020-08-24 21:59:43 +01:00
Jeff Young 5a0db6802a Use IsOnLayer(); GetViewLayers() now returns synthetic ZONE layers.
Also uses IsPadOnLayer() for pads so that it will drop layers which
have had their pads removed.

Fixes https://gitlab.com/kicad/code/kicad/issues/5349
2020-08-24 20:20:04 +01:00
Jeff Young a4ff339a1e Clear toolstack after cancel.
Fixes https://gitlab.com/kicad/code/kicad/issues/5336
2020-08-24 19:28:53 +01:00
Jeff Young 1d1a5afe0c Remove minimum pin after fixing size.
Fixes https://gitlab.com/kicad/code/kicad/issues/5347
2020-08-24 15:01:12 +01:00
Jeff Young 8eda4d93ee Use LAYER_VIAS instead of via-type-specific layers for visibility.
Fixes https://gitlab.com/kicad/code/kicad/issues/5344
2020-08-24 14:00:46 +01:00
Jeff Young 502f2ca2ef Fix some snarled up event processing.
See the bug for details.  It's complicated.

Fixes https://gitlab.com/kicad/code/kicad/issues/5336
2020-08-24 13:20:29 +01:00
Jon Evans 3673c23696 Code style 2020-08-23 22:10:05 -04:00
Mark Roszko 89e74140eb Save file / window states for kicad project locally 2020-08-24 02:01:14 +00:00
Ian McInerney 2f7094b352 Cleanup some unused variables
* Make the app progress indicator only have the indeterminate state
  when the taskbar indicator is used (causes an uused variable warning
  on wx<3.1)
* Remove unused dry run variable in pcb_netlist.h
* Remove unused forceDropAnnotations from the paste special dialog
  since the dialog only controls keeping them.
2020-08-24 01:51:23 +01:00
Jeff Young fba6152709 Force wxWidgets to set widths smaller than BestWidth(). 2020-08-24 00:49:08 +01:00
Jeff Young d41f196d7f Appearance panel must be initialized from board before setting active layer. 2020-08-24 00:49:08 +01:00
Jeff Young 2c7093439e Don't attempt to set active layer to a non-activated layer. 2020-08-24 00:49:08 +01:00
Jon Evans e343234c61 Allow both 'save' and 'save as' for layer presets
Fixes https://gitlab.com/kicad/code/kicad/-/issues/5309
2020-08-23 17:00:49 -04:00
Jon Evans 63fb6d49e0 Make sure ratsnest gets redrawn when enabled
Fixes https://gitlab.com/kicad/code/kicad/-/issues/5335
2020-08-23 16:45:33 -04:00
Jeff Young 49ac89f72c Only paint pads on layers they appear on.
Also adds pad layer removal controls to Pad Properties dialog.

Fixes https://gitlab.com/kicad/code/kicad/issues/5320
2020-08-23 21:23:34 +01:00
Jeff Young 6edcc9d38f Resolve textvars in Pad Settings dialog. 2020-08-23 21:23:34 +01:00
Jon Evans 8e03d278f0 Fix buttons in appearance panel in MSW
Ensure we pass the focus back to the canvas when
closing dialogs that might have been launched from the
appearance panel

Fixes https://gitlab.com/kicad/code/kicad/-/issues/5326
2020-08-23 15:48:48 -04:00
Thomas Pointhuber a03fb7a9a8 Altium: Refactor and add initial structure for schematic importer
altium: move pcbnew/altium2kicadpcb_plugin -> pcbnew/plugins/altium

See: https://gitlab.com/kicad/code/kicad/-/issues/4412
2020-08-23 19:01:08 +00:00
Jon Evans eb0d3d653f Fix updating of grid view in MSW 2020-08-23 13:48:50 -04:00
Jon Evans a77000f9d9 Add DRC markers to the list of never-dimmed layers
Fixes https://gitlab.com/kicad/code/kicad/-/issues/5307
2020-08-23 13:24:48 -04:00
Jon Evans 6720473db9 Move net visibility/color controls to a wxGrid
Fixes https://gitlab.com/kicad/code/kicad/-/issues/5235
Might improve https://gitlab.com/kicad/code/kicad/-/issues/5210
2020-08-23 13:15:07 -04:00
Jon Evans 342fae7768 Don't allow color overrides for Default netclass
Fixes https://gitlab.com/kicad/code/kicad/-/issues/5330
2020-08-23 12:55:35 -04:00
Jon Evans 41f53cc138 Check that net is valid before dereferencing
Fixes https://gitlab.com/kicad/code/kicad/-/issues/5325
2020-08-23 12:55:31 -04:00
Jon Evans 9a0f956b92 Fix clearing netclass color override
Fixes https://gitlab.com/kicad/code/kicad/-/issues/5327
2020-08-23 12:05:03 -04:00
PJM dd374e12ad Pcbnew: Fix bug when mouse moves off clarification menu
CHANGED: This code fixes an issue where bringing up the clarification
menu and moving off it while keeping the button pressed the entire
time caused an assertion.

Fixes https://gitlab.com/kicad/code/kicad/issues/5250
2020-08-22 16:48:19 -07:00
Jeff Young c71bb246e6 Don't allow preview to try and draw empty polygons.
Fixes https://gitlab.com/kicad/code/kicad/issues/5314
2020-08-22 23:46:56 +01:00
Jeff Young 591e1c5de9 Resolve textvars in Gerber place files.
Fixes https://gitlab.com/kicad/code/kicad/issues/5287
2020-08-22 22:23:15 +01:00
Jeff Young 8fc8e2c5f1 Add support for RECTs to VRML exporter. 2020-08-22 22:17:23 +01:00
Jeff Young 6598ad81e7 Resolve text vars when exporting IDF.
Fixes https://gitlab.com/kicad/code/kicad/issues/5287
2020-08-22 22:08:32 +01:00
Jeff Young 929528a72c Coding style. 2020-08-22 22:03:43 +01:00
Jeff Young a2341f0f33 Pin dragged pad edges to hole (if it has one).
Fixes https://gitlab.com/kicad/code/kicad/issues/5317
2020-08-22 20:45:54 +01:00
Jon Evans 0fa755ebb8 Don't refresh appearance panel until after project is loaded 2020-08-22 15:40:43 -04:00
Jeff Young aa84bd6283 Use the right sign when dealing with the clearance epsilon.
Fixes https://gitlab.com/kicad/code/kicad/issues/5313
2020-08-22 20:03:46 +01:00
jean-pierre charras c196423192 fix a wxWidgets alert 2020-08-22 17:54:46 +02:00
Jeff Young f95651841e Report all extra footprints, even if they're duplicates.
Fixes https://gitlab.com/kicad/code/kicad/issues/5303
2020-08-22 16:20:18 +01:00
Jeff Young 93ef18d775 Fix typo where two footprint warning messages were transposed.
Fixes https://gitlab.com/kicad/code/kicad/issues/5303
2020-08-22 16:20:18 +01:00
jean-pierre charras f28d30a87b Fix minor wxWidgets alert and a few Coverity warnings. 2020-08-22 17:11:02 +02:00
Seth Hillbrand 686af65a9b Fix issue generating alternate shape
Boolean ops need boolean inputs.
2020-08-22 08:04:03 -07:00
jean-pierre charras e5198e7404 Fix minor wxWidgets alerts. 2020-08-22 13:26:00 +02:00
Jeff Young d71d127c1a Put up infobar when editing board footprint.
Fixes https://gitlab.com/kicad/code/kicad/issues/5294
2020-08-21 23:53:40 +01:00
Jeff Young e92f58bb4f Implement "fromOtherCommand" for PlaceModule() too.
Fixes https://gitlab.com/kicad/code/kicad/issues/5281
2020-08-21 23:24:29 +01:00
Jeff Young c324c2cbf6 Make sure zone fills are up-to-date before deleting unconnected things.
Fixes https://gitlab.com/kicad/code/kicad/issues/5253
2020-08-21 20:32:19 +01:00
Jeff Young 842641308f Solids don't always have nets (even a defualt one).
Fixes https://gitlab.com/kicad/code/kicad/issues/5290
2020-08-21 20:08:12 +01:00
Jeff Young 9878a1e10c Add other (open) shapes to GetLength() calculation.
Since this is for trace length/propagation time, I'm not sure what
it would mean on a closed shape, so I left RECT and CIRCLE for now.
2020-08-21 19:55:52 +01:00
Jeff Young 80846dcbc7 Improve shutdown performance. 2020-08-21 19:12:51 +01:00
Seth Hillbrand cd51785173 Fix crash with missing board outline 2020-08-21 05:55:22 -07:00
Seth Hillbrand 9a4f92dfd9 Ensure that all pads with holes have alts
Alternate shapes for holes that are fallback clearance are needed in
case we have missing copper on any layer

Fixes https://gitlab.com/kicad/code/kicad/issues/5233
2020-08-20 21:50:37 -07:00
Seth Hillbrand 20de1b2b4f Minor code tightening 2020-08-20 20:18:31 -07:00
PJM 29ddc73d6c Pcbnew: Allow rects to have overlapping end corner locations
CHANGED: If a rectangle is drawn and the location of the second corner
is the same as another rectangle's second corner, Pcbnew crashes. The
reason is that a call is made to DRAWSEGMENT::GetLength(), but that
function only handles shapes of type S_CURVE and S_SEGMENT.  This code
checks if the overlapping end points are from a rectangle and if so
it doesn't call DRAWSEGMENT::GetLength().

Fixes https://gitlab.com/kicad/code/kicad/issues/5282
2020-08-21 02:58:32 +00:00
Jon Evans c763d92275 Just sample the panel background color rather than guessing
Fixes https://gitlab.com/kicad/code/kicad/-/issues/5260
2020-08-20 21:04:15 -04:00
Seth Hillbrand 1e315bc3fe pcbnew: Add "Select All" Action to pcbnew and fpedit
Fixes https://gitlab.com/kicad/code/kicad/issues/2497
2020-08-20 16:07:10 -07:00
PJM dad3101107 Pcbnew: Verify path can be made relative before asking in plotter dialog
CHANGED: When the output path is set in the plotter dialog, the user is
asked if they want to make the path relative to the project.  The old
code would ask the user if they wanted to do this, and then if it
failed would present an error dialog.  The new code tries it first on
a copy, and only if it works does the user get asked if they want
to do it.

Fixes https://gitlab.com/kicad/code/kicad/issues/5263
2020-08-20 17:07:21 +00:00
Wayne Stambaugh c14065ee98 Fix initial zoom to fit size in schematic and board editors.
This may affect other EDA_DRAW_FRAME objects as well but it doesn't seem
to be as noticeable in the symbol, footprint, and worksheet editors.

Fixes https://gitlab.com/kicad/code/kicad/issues/5248
2020-08-20 10:33:30 -04:00
Seth Hillbrand 2deefdd9ce Remove extra redirection from GetDesignSettings()
Now that m_designSettings is a unique_ptr, we can use the operator* to
get the reference to the element.
2020-08-20 06:23:21 -07:00
Jeff Young c5006b52ff Output resolved text to place files. 2020-08-20 13:41:50 +01:00
Jeff Young 38a994975b Output resolved text from PCBNew BOM generator. 2020-08-20 13:41:50 +01:00
Jeff Young 1813db6970 Fix indentation of properties in PCB file. 2020-08-20 13:41:50 +01:00
Ian McInerney 3ddee6503a Dialog changes forgotten in c479deaf 2020-08-20 01:43:52 +01:00
Ian McInerney c479deaf02 Use groups when doing graphics import
ADDED: Allow DXF/SVG graphics to be imported as a group

Also, cleanup the placement routine to allow the edit tool's flip
and rotate routines to be used when placing the items.
2020-08-20 01:22:48 +01:00
Ian McInerney 68f1c678dd Allow DXF/SVG import onto copper layers
ADDED: DXF/SVG import onto copper layers

Fixes https://gitlab.com/kicad/code/kicad/issues/2341
2020-08-20 01:20:53 +01:00
Jeff Young 2f0b8eb5e9 Don't allow view preset switcher on non-front window. 2020-08-20 00:51:16 +01:00