Commit Graph

2419 Commits

Author SHA1 Message Date
Jeff Young e30d867439 Use consistent terminology for various constraint modes. 2021-10-23 12:18:08 +01:00
Jeff Young fecb53b64f Clean up removal of separate front & back footprint text visibility.
Fixes https://gitlab.com/kicad/code/kicad/issues/9441
2021-10-22 21:14:15 +01:00
Jeff Young 8cbdf5ba12 Keep default pad number up-to-date (in both directions).
Also hides the net selector when in the footprint editor as it has
no meaning there.  (We still only grey it out for the board editor
when the pad type has no net to keep things from coming and going too
much.)

Fixes https://gitlab.com/kicad/code/kicad/issues/9317
2021-10-22 19:58:36 +01:00
Jeff Young 463b82cf46 Be very careful when "doing what I mean".
Just wanting a SMD pad isn't enough -- the user may have already
set SMD settings into the master pad and changing the SizeX is
then very unexpected.  Make sure the settings directly conflict
before making any "do what I mean" adjustments.

Also fixes the parent-footprint info when no parent exists.

Also gives a better title to the dialog when used to edit the masterPad
properties.

Fixes https://gitlab.com/kicad/code/kicad/issues/9427
2021-10-20 08:59:25 +01:00
Seth Hillbrand fb5fef9f5f Remove extraneous Raise() from DRC cross-probe
Scroll-to-show on GTK relies on the idle handler but this is interrupted
by a Raise and not revisited.  Since the Dialog is always on top of the
editor, Raise is not needed to view the referenced error

Fixes https://gitlab.com/kicad/code/kicad/issues/7246
2021-10-18 17:16:36 -07:00
Seth Hillbrand 5af813c69f Remove extra handler
The extra handler intercepted the action before it could be handled
properly changing the board design settings

Fixes https://gitlab.com/kicad/code/kicad/issues/9410
2021-10-18 15:08:22 -07:00
Jeff Young f9861b4a6c Finish arc rework and push out to file formats. 2021-10-15 12:45:43 +01:00
Jeff Young 9b9e379aa0 Overhaul arc internal model to not over-specify information. 2021-10-15 12:45:43 +01:00
Jeff Young 8b08c9e53f Shorter names before things get out of hand.
Also, remove comments indicating CURVE is a Bezier.  Just call it a
BEZIER.
2021-10-15 12:45:43 +01:00
Jeff Young a41944020d Push most of PCB_SHAPE impl down in to EDA_SHAPE. 2021-10-15 12:45:43 +01:00
jean-pierre charras 0533196294 Fix Coverity warnings 2021-10-15 09:24:16 +02:00
Seth Hillbrand 5a6f230a2c Delete full track needs proper scoping
This should not run if the action is "Cut".  Additionally, we need to
transfer the expanded selection to selectionCopy in order for it to
proceed with the deletion.  There is also no need for this to be limited
to the Hover action, so this section was removed.

Fixes https://gitlab.com/kicad/code/kicad/issues/9385
2021-10-12 13:47:16 -07:00
Seth Hillbrand 93bbad6acf Allow snapping in pickReferencePoint
Fixes https://gitlab.com/kicad/code/kicad/issues/9354
2021-10-10 08:53:10 -07:00
Seth Hillbrand 62cb5d9354 Fully cancel copy with reference
Tool needs to be popped when cancelling to allow selection tool to work properly.

Fixes https://gitlab.com/kicad/code/kicad/issues/9353
2021-10-10 08:31:18 -07:00
Ian McInerney 4d89061d4c Support footprint arcs in convert to polygon
Fixes https://gitlab.com/kicad/code/kicad/issues/9352
2021-10-10 16:26:23 +01:00
Seth Hillbrand 6620831d38 Clear edited point when exiting point editor
Failing to clear this will prevent selection where tools check for
edited points before processing mouse button down events

Fixes https://gitlab.com/kicad/code/kicad/issues/9357
2021-10-10 08:25:50 -07:00
Ian McInerney 8d71bdc3e1 Cleanup unit handling in the stackup drawing tool 2021-10-08 22:30:20 +01:00
Seth Hillbrand 51d3440c38 Use footprint type to inform new pad type
Makes usage cleaner.  If the user specifies that they are creating an
SMD, they should get SMD pads by default so that they don't have to
change them later.

Fixes https://gitlab.com/kicad/code/kicad/issues/9333
2021-10-07 11:10:26 -07:00
Jeff Young 1bb5fc3fd6 Work around EnsureVisible bug in wxWidgets during DRC cross-probe.
Also adds double-click-marker to open DRC dialog and select marker
in list.

Fixes https://gitlab.com/kicad/code/kicad/issues/7246
2021-10-06 11:17:03 +01:00
Seth Hillbrand 9a8d1246cc We don't keep a CHANGELOG.TXT
Direct interested readers to AUTHORS.TXT instead.
2021-10-05 19:46:53 -07:00
Jeff Young ffd6fde700 Improve consistency and hotkey access in Appearances.
Added hotkey for cycling through net & netclass color modes.
Added hotkey for cycling through ratsnest layer visibilities.
Added code to display hotkey (if set) on the above and on high-contrast
cycle.

Fixes https://gitlab.com/kicad/code/kicad/issues/9312
2021-10-04 13:44:43 +01:00
Jeff Young 930c4e5582 Cleanup.
Formatting.
Naming conventions.
Use of auto.
Use of STL cover types.
2021-10-03 19:42:29 +01:00
Jeff Young 5c402a64ab Use mathematical rotation direction in Move Exactly dialog.
Fixes https://gitlab.com/kicad/code/kicad/issues/1897
2021-10-03 00:11:01 +01:00
Jeff Young e2baacec21 Add cross-probing between PCB (markers) and DRC marker list.
Fixes https://gitlab.com/kicad/code/kicad/issues/7246
2021-10-02 23:39:45 +01:00
jean-pierre charras da79a3dd69 Option graphics limited to 45deg in creation: separate options for brd and fp editors.
Add these options in PANEL_EDIT_OPTIONS.
This option was previously living only in some context menus, not really visible.
2021-10-02 16:43:31 +02:00
Seth Hillbrand dd1d36d40a Fix segfault when check for editing points
The point editor is not always available when checking for points.  We
need to handle the missing tool without crashing
2021-09-30 17:25:33 -07:00
Jeff Young 12b726ba2f Prevent the point editor from fighting with other tools.
1) Don't start a long-click timer when the point editor is active.
2) Don't auto-start a wire when the point editor is active.

Fixes https://gitlab.com/kicad/code/kicad/issues/9270
2021-09-29 19:16:06 +01:00
Jeff Young 0438a45176 Don't allow reentrancy into PlaceFootprint.
Fixes https://gitlab.com/kicad/code/kicad/issues/9269
2021-09-29 17:01:33 +01:00
Jeff Young 3b6da14614 Don't allow offset for circular pads.
Fixes https://gitlab.com/kicad/code/kicad/issues/9266
2021-09-29 15:27:34 +01:00
Jon Evans 07e01e6297 Allow converting graphic arc to track arc 2021-09-28 21:00:15 -04:00
Mike Williams d90dc77e00 Selection: Don't drop small moves
If we do a real drag, the timer will be cancelled. If we don't, then
the user is still holding the mouse button down and would probably like
to see the menu. Otherwise it appears the action is dropped.
2021-09-27 16:44:32 +00:00
Mike Williams 726f9ebe3d Pcbnew: Router tool should not block drag selection when idle
The other drawing tools allow drag selection while idle. Also, it makes
it more obvious to the user when accidentally drag selecting while
routing than just doing nothing on a drag with the routing tool selected
and idle.
2021-09-27 16:05:13 +00:00
Jeff Young 544fa939f8 Lock/unlock group members when locking/unlocking group.
Also moves the stateful selection filter to after the hierarchy filter
since the hierarchy filter might swap a pad selection for a footprint
selection.

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

Fixes https://gitlab.com/kicad/code/kicad/issues/7542
2021-09-27 11:29:52 +01:00
Jeff Young 5f3c67bd2b Fill in some missing GetMsgPanelItems and make some others consistent.
Also expunges a std::vector<MSG_PANEL_ITEM> cover type.
2021-09-27 00:23:40 +01:00
Jeff Young a3dcdd4887 Allow highlight-net to work on zone copper.
We were already checking zones separately (after tracks and pads); we
just weren't setting the flag that causes the COLLECTOR to also test
zone fills.

Fixes https://gitlab.com/kicad/code/kicad/issues/5924
2021-09-26 19:26:22 +01:00
jean-pierre charras 77f47b6e47 Avoid assertion in some cases. 2021-09-26 10:54:50 +02:00
jean-pierre charras 9f64850325 Drawing stackup table: fix a few issues and missing items.
Fixes #9243
https://gitlab.com/kicad/code/kicad/issues/9243
Fixes #9244
https://gitlab.com/kicad/code/kicad/issues/9244
2021-09-26 10:31:41 +02:00
Jeff Young bf145dd633 Confine allow-locked-pad-selection-even-when-filtered to single-select.
Also make sure text in a locked footprint is not selected if the locked
items filter is unset.

Fixes https://gitlab.com/kicad/code/kicad/issues/9227
2021-09-24 18:58:22 +01:00
Seth Hillbrand 140e4cbe28 Avoid assertion on 2-layer board
New boards may have INVALID_LAYER inbetween F_Cu and B_Cu in the
stackup.  Skip these and any layer values beyond what we store currently
2021-09-22 12:37:17 -07:00
Seth Hillbrand 84864351c7 Fix units naming in stackup
We were not handling the new mils/inches division in stackup table

Fixes https://gitlab.com/kicad/code/kicad/issues/9210
2021-09-22 12:30:02 -07:00
Jeff Young 2ec1c215cd Drop selection after hiding items.
Fixes https://gitlab.com/kicad/code/kicad/issues/8605
2021-09-21 17:02:34 +01:00
Jeff Young 3651d7c5e7 Remove vestiges of old zoom-auto architecture.
Fixes https://gitlab.com/kicad/code/kicad/issues/9055
2021-09-19 18:32:15 +01:00
Marek Roszko 847c9e32c8 Don't allow the draw via tool to activate in the footprint editor
Fix #9186
2021-09-17 23:01:16 -04:00
Jeff Young b84d1456d5 KIFACE_I -> KIFACE_BASE. 2021-09-14 23:45:14 +01:00
Jeff Young 32e23d993e Formatting. 2021-09-13 17:18:58 +01:00
Jeff Young fdfecf5932 Don't push view control settings to the previous active tool.
See further comments in bug report.

Fixes https://gitlab.com/kicad/code/kicad/issues/9147
2021-09-13 13:28:05 +01:00
jean-pierre charras 3316f3998a Rename BuildPolyPointsList() to DupPolyPointsList() and optimize code
to avoid multiple useless copies of the list of polygon corners in code.
2021-09-11 14:21:36 +02:00
Seth Hillbrand 29c2f3b7d4 Prevent jumping into disambiguation if moved
Moving points should not be overrided by disambiguation menu, so we
track where the disambiguation event started and only trigger the menu
if the mouse hasn't moved a full unit in x/y

Fixes https://gitlab.com/kicad/code/kicad/issues/9132
2021-09-09 16:24:18 -07:00
Jeff Young f0a26e4be0 Attempt to fix long-click issue (possibly just a typo).
Fixes https://gitlab.com/kicad/code/kicad/issues/9124
2021-09-09 12:20:30 +01:00
Seth Hillbrand c8b2e69332 Check if selection is primary tool
Previously, we were checking if the selection tool was the top of the
stack but this ignored many other "secondary" tools that might be
running such as the point editor.  These still allow the selection tool
to handle events such as clicks.  This change allows the selection tool
to handle clicks when it is the primary tool on the stack rather than
the top

Fixes https://gitlab.com/kicad/code/kicad/issues/9110
2021-09-07 10:42:01 -07:00
Michael Kavanagh 0e3c79d3b2 Remove inappropriate icons
Icons should be used sparingly to draw attention to the most used actions
2021-09-06 21:23:52 +00:00
Seth Hillbrand 0f38a35531 Be sure to stop the timer when triggering d-click
Some mice apparently trigger double-click without triggering a click, so
stop the timer when we receive this event

Fixes https://gitlab.com/kicad/code/kicad/issues/9106
2021-09-06 12:27:31 -07:00
Seth Hillbrand 343dbf0f5b Change default 45° hotkey to shift-space
This requires enabling the space key to be bound with shift, which was
disabled based on an overbroad limit of only allowing shift to be mapped
with letter keys
2021-09-06 12:18:29 -07:00
Seth Hillbrand 56ccaf6482 Constrain move tool when set
Move tool works slightly differently from other tools when figuring out
new locations.  This uses the global 45 enable flag to set proper item
locations when the user is requesting a 45° constraint on movement
2021-09-06 07:05:25 -07:00
Seth Hillbrand 86725db758 Ensure doInteractivePlacement enforces snap option
Fixes https://gitlab.com/kicad/code/kicad/issues/9105
2021-09-06 06:36:33 -07:00
Seth Hillbrand 240c3b75c4 Move selection disambiguation to long-click
This standardizes selection tools in SELECTION_TOOL class to be able to
handle a long-click as asking for a non-heuristic disambiguation menu.

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

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

Related to https://gitlab.com/kicad/code/kicad/-/issues/8490
2021-09-05 13:42:51 -07:00
Seth Hillbrand e03257b55f Allow close placement of stitching vias
When placing a stitching via for a bypass capacitor, it is common to
place it close to the relevant pad.  If the via does not have the
correct net, this will violate DRC and be prevented.

Checking for zone-based net assignments allows the workflow to proceed
2021-09-01 15:52:35 -07:00
Seth Hillbrand 8a305eec32 Remove broken RefDesStringCompare
This function attempted a poor-man's natural compare but it assumed
specific structure of the string.  This broke for strings with
numberings that looked like decimals.

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

Fixes https://gitlab.com/kicad/code/kicad/issues/9067
2021-09-01 11:48:01 -07:00
jean-pierre charras 6c7c9ca50c Fix compil warnings (UNDO_REDO::GROUP renamed to UNDO_REDO::REGROUP to fix
collision name with a widows header on msys2)
2021-08-28 11:44:01 +02:00
Mike Williams 10247c268e Pcbnew: implement Find Next
Moves all of the find dialog control out of the selection tool similar
to the schematic editor. Dialog is also non-modal now to match the
schematic editor.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/8966
2021-08-27 18:15:36 +00:00
Jeff Young e6ca9837a2 Clear numbers from non-numberable pads and don't run DRC on them.
This was also the last straw on the misnamed PAD::GetName() and
PAD::SetName(), which are now PAD::GetNumber() and PAD::SetNumber().

Fixes https://gitlab.com/kicad/code/kicad/issues/9017
2021-08-24 01:03:06 +01:00
Seth Hillbrand db5ce824af Use wildcard routine for extension matching
Move STEP export dialog wildcard to extension matching
2021-08-20 17:24:05 -07:00
jean-pierre charras 5574682d44 Fp editor: minor fixes:
- do not show the paste special context menu: it has no sense in this editor
- Paste command: fix incorrect rotation of pasted FP texts
2021-08-18 17:43:10 +02:00
jean-pierre charras 82849eda42 Fp editor: fix some crashes when trying to duplicate referece or value texts.
Fixes #8990
https://gitlab.com/kicad/code/kicad/issues/8990
2021-08-18 15:34:32 +02:00
Wayne Stambaugh 9ae9301b46 Fix shadowed variable. 2021-08-17 12:54:14 -04:00
Jeff Young 8b5f393804 DRC bug fixes and debugging improvements.
1) Don't wait for UpdateUserInterface to build the (global) list of
layer names.

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

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

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

Fixes https://gitlab.com/kicad/code/kicad/issues/8963
2021-08-17 15:41:12 +01:00
Jeff Young 1ec70d30af Cherry-pick some 7.0 Clearance Resolution improvements.
6.0 will be in the field for a long time, and the better the debugging
tools we have available the less costly it will be to maintain.

Fixes https://gitlab.com/kicad/code/kicad/issues/8961
2021-08-15 19:03:58 +01:00
Jeff Young 41619ebbe2 Decouple PROGRESS_REPORTER interface from implementations. 2021-08-14 21:05:49 +01:00
Jon Evans 5bfafa5e4c Add rounding epsilon to convert tool polygon search
Fixes https://gitlab.com/kicad/code/kicad/-/issues/8927
2021-08-12 20:17:04 -04:00
Stefan 02e7d9f809 pcbnew: swap x/y align text to match vertical/horizontal text on right click... 2021-08-12 13:03:52 +00:00
Jeff Young a208dac8d8 Convert hole clearance tests from NPTH holes to all holes. 2021-08-09 22:26:00 +01:00
Jon Evans a90656900a Allow creating polygon types from polygons
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7302
2021-08-08 20:29:00 -04:00
Jon Evans 3beeb52c43 Convert tool: create lines on active layer, not source layer 2021-08-08 15:12:23 -04:00
Jeff Young bafa105ed0 Enforce hole clearance on NPTHs in zones.
Fixes https://gitlab.com/kicad/code/kicad/issues/8924
2021-08-06 18:16:38 +01:00
Jeff Young 77680eba30 Naming conventions. 2021-08-05 14:31:36 +01:00
Jeff Young 5bf0b99813 Capture errant mouse-up from locked dialog in move tool.
Don't pass it on to other tools where it causes all kinds of mayhem.

Fixes https://gitlab.com/kicad/code/kicad/issues/7255
2021-08-04 17:42:40 +01:00
Jeff Young 46bdce2747 Don't allow pads in groups in the board editor.
Bad stuff happens, including crashes.
2021-08-04 13:55:42 +01:00
Jeff Young 65f6e72b4c Improve commenting. 2021-08-04 13:55:42 +01:00
Jeff Young c5e195bdff Cleanup (includes and formatting). 2021-08-03 18:37:23 +01:00
Jeff Young c51b1dad72 Generalize infobar MESSAGE_TYPE handling and use for DRC errors.
Fixes https://gitlab.com/kicad/code/kicad/issues/8782
2021-08-01 21:51:39 +01:00
Jeff Young 8aea2cbd03 When ignoring click events don't ignore synthetic ones.
Fixes https://gitlab.com/kicad/code/kicad/issues/7255
2021-07-29 18:07:04 +01:00
Jeff Young 9271ac1a4f Don't allow deletion of pads when not in allow-free-pads mode.
Fixes https://gitlab.com/kicad/code/kicad/issues/8884
2021-07-29 16:03:25 +01:00
Jeff Young 6aaf4413b3 Fix kicad_string.h / string.cpp mismatch.
They don't define a KiCad string class, so the header file name was
somewhat misleading. But the fact that they didn't match definitely
made coding more difficult.
2021-07-29 16:03:25 +01:00
Jeff Young f221220fe2 Rename layer ids file.
It hasn't had anything to do with colors or visibility for some time
now.
2021-07-29 16:03:25 +01:00
Wayne Stambaugh f233f4a0a9 Expunge EDA_FILE_SELECTOR.
EDA_FILE_SELECTOR was just an obfuscation of wxFileSelector().
2021-07-28 14:12:51 -04:00
Jeff Young 1f2e7a94ca Change Move Exactly hotkey to Shift + M to avoid OSX minimize.
Fixes https://gitlab.com/kicad/code/kicad/issues/8864
2021-07-27 18:20:32 +01:00
Jeff Young dd5676f4bc Implement a safer (RAII) tool re-entrancy guard.
Fixes https://gitlab.com/kicad/code/kicad/issues/8873
2021-07-27 16:37:34 +01:00
Jeff Young 886dc2f43e Do-not-show-again section for common prefs & zone fill warning infobar.
Note that the dialogs which have mutliple options were not moved over
as it seems perahps not the right choice to have them save state between
sessions.

Fixes https://gitlab.com/kicad/code/kicad/issues/8762
2021-07-27 15:15:49 +01:00
Jeff Young c74148fa88 Add infobar for those who confuse zone filling with display modes.
Fixes https://gitlab.com/kicad/code/kicad/issues/8762
2021-07-27 15:15:49 +01:00
Wayne Stambaugh 78e5e98ea0 Pass VECTOR2I objects by reference instead of on the stack. 2021-07-27 08:41:27 -04:00
Wayne Stambaugh 8fd83cbb95 Pass wxPoint objects by reference instead of on the stack. 2021-07-26 15:35:33 -04:00
Jeff Young e62969d007 Move zone fracture display mode to AdvancedCfg, and add triangulation.
Fixes https://gitlab.com/kicad/code/kicad/issues/8762
2021-07-26 18:57:35 +01:00
Seth Hillbrand cb917e4c42 Avoid nonsensical intersections
When two segments are approximately parallel, we shouldn't look to find
their intersection.  It will never be the nearest point and it overflows
the KiROUND call

Fixes https://gitlab.com/kicad/code/kicad/issues/8858
2021-07-26 09:02:54 -07:00
Pradeepa Senanayake dd31a5383b Added the double click to footprint editor 2021-07-24 08:53:09 +00:00
Seth Hillbrand 8d1dd1f8b0 Handle pad->custom conversion more closely
When converting pads to custom polygons, avoid padding with the polygon
width and keep the anchor pad within the boundary of the original pad
itself

Fixes https://gitlab.com/kicad/code/kicad/issues/8842
2021-07-22 12:12:42 -07:00
Jeff Young 0fb864d596 Pull some name changes back from 7.0 to ease merging. 2021-07-21 20:58:59 +01:00
Wayne Stambaugh cf00319c85 More NULL expunging. 2021-07-20 07:27:18 -04:00
Jon Evans 75190370dd Convert -> Create from Selection
Fixes https://gitlab.com/kicad/code/kicad/-/issues/8818
2021-07-19 18:45:33 -04:00
Jeff Young e61822c9e0 Naming conventions and a bug fix on arc points. 2021-07-19 13:17:12 +01:00
jean-pierre charras 9cb4c9bfc2 3D viewer: ensure the activity messages are displayed on Linux after Frame creation. 2021-07-19 10:10:25 +02:00
Jeff Young f0513978ff Back-port some fixes from 7.0 branch. 2021-07-13 17:24:23 +01:00
luz paz 0446d35f0d Fix source comment/doc typos (follow-up)
Found via `codespell -q 3 -S *.po,./thirdparty -L aactual,acount,aline,alocation,alog,anormal,anumber,aother,apoints,aparent,aray,dout,einstance,modul,ot,overide,serie,te,,tesselate,tesselator,tht`
2021-07-13 10:48:17 +00:00
Jeff Young e02bb80bf3 Handle cancel when selecting copper layer.
Also changes the algorithm to ask only once, rather than one per
non-copper-layer object.

Fixes https://gitlab.com/kicad/code/kicad/issues/8767
2021-07-10 12:05:25 +01:00
Jeff Young 046fb58183 Better command names and tooltips for zone fill/unfill commands.
Fixes https://gitlab.com/kicad/code/kicad/issues/8762
2021-07-09 22:13:50 +01:00
Roberto Fernandez Bautista 04ff8cde5e Drag & Fillet Tracks: Ignore mouse up / click events until move / drag
Ensures that any click/mouse up events generated after clicking "OK"
in the "Override locks" dialog are ignored.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/8123
2021-07-05 20:29:25 +01:00
Roberto Fernandez Bautista ce8132bf4f Arc Track Drag & Fillet Tracks: Copy lock status to new track(s) 2021-07-05 20:29:25 +01:00
Jon Evans 67762a11f6 Don't double-process arcs if we get one first 2021-07-04 12:22:52 -04:00
Jon Evans b291f36dae ADDED: Convert tool can create polygons with arcs from contiguous line and arc segments
Fixes https://gitlab.com/kicad/code/kicad/-/issues/5409
2021-07-04 12:10:59 -04:00
Wayne Stambaugh 175b474c3e Coverity issue fixes.
Fixes issues #280412, #314755, #329615, #332459, #332157, #332167,
2021-06-30 18:08:49 -04:00
Seth Hillbrand 0d8f0d361e Allow aligning pads in FP editor when locked
Locking is not a concept in the footprint editor.  The signature for
checking is slightly different in the alignment tool, so we need to move
the check higher to allow aligning items in fpeditor
2021-06-29 16:48:31 -07:00
jean-pierre charras 9a865b1989 Fix a typo and a minor compil warning 2021-06-28 14:37:35 +02:00
Jeff Young 81fc710a5d Use consistent terminology.
Fixes https://gitlab.com/kicad/code/kicad/issues/8681
2021-06-26 10:11:41 +01:00
Fabien Corona 95ab53d119 pcbnew: fix missing layer names and missing layers in stackup table 2021-06-24 08:52:51 +00:00
Wayne Stambaugh 27e9750507 Pcbnew: fix footprint selection bug.
Do not remove footprint objects from list of selected objects when there
are no drawable objects other than the reference and value text.

Increase the minimum size rectangle for footprints from 0.025mm to 1mm
when the footprint has no drawing objects so that it is easier to select
the footprint in this case.

Add some pretty colors to the footprint bounding box and hull outline
so that it's possible to tell the difference between selection areas.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/8379
2021-06-23 19:46:33 -04:00
Jeff Young 5fa5a73c6d File open/import progress dialogs.
Fixes https://gitlab.com/kicad/code/kicad/issues/6864

Fixes https://gitlab.com/kicad/code/kicad/issues/2166
2021-06-23 23:55:54 +01:00
Jeff Young 7efca0113d Reset m_inDrawingTool on exit.
Fixes https://gitlab.com/kicad/code/kicad/issues/8653
2021-06-22 13:02:45 +01:00
Jon Evans de4eb1fcef Convert to zone: take dest layer from editor active layer
Show non-copper zone properties if active layer is non-copper

Fixes https://gitlab.com/kicad/code/kicad/-/issues/8646
2021-06-20 15:13:18 -04:00
Jeff Young b72545a432 Implement more aggressive re-entrancy blocking for drawing tools.
A similar strategy was already implemented in Eeschema.

Also adds some safety around clearing of autopan and mouse capture.

Fixes https://gitlab.com/kicad/code/kicad/issues/6909
2021-06-20 11:09:55 +01:00
Jeff Young 89718dd3ba Naming conventions. 2021-06-19 19:36:53 +01:00
Jeff Young c6606a0582 Hook up delete to undo last segment when routing.
Fixes https://gitlab.com/kicad/code/kicad/issues/8362
2021-06-19 11:37:20 +01:00
Jon Evans f8e9542004 Fix crash when opening board setup after zone filler exits 2021-06-18 12:23:12 -04:00
Jeff Young e540752640 Allow all selected footprints/symbols to be changed.
Fixes https://gitlab.com/kicad/code/kicad/issues/7389
2021-06-17 23:34:56 +01:00
Jeff Young c8444913df Implement lock between zone filler and drc.
Fixes https://gitlab.com/kicad/code/kicad/issues/8621
2021-06-16 16:12:01 +01:00
Jeff Young 5bb6b1a3cc Minor cleanup. 2021-06-12 11:39:28 +01:00
Jeff Young 096e342386 Prefix TRACK, ARC and VIA. 2021-06-11 22:07:02 +01:00
Jeff Young 16b0147af8 Prefix DIMENSION types. 2021-06-11 17:59:44 +01:00
luz paz f968fc8719 Fix source comment / documentation typos 2021-06-09 19:32:58 +00:00
Marek Roszko 10e60acf34 Clean up including of board_design_settings.h 2021-06-06 15:03:42 -04:00
Ian McInerney dc27079b71 cleanup tool event and tool action includes 2021-06-06 18:26:26 +01:00
david-beinder 86add3bb85 Fix MSVC C4312 warnings when casting 32bit ints to pointer types on 64bit builds 2021-06-05 02:57:51 +00:00
Jeff Young d32d107923 Fix local ratsnest tooltip to mention "toggle".
Fixes https://gitlab.com/kicad/code/kicad/issues/8415
2021-06-04 23:17:54 +01:00
Jon Evans d8499e4914 I fixed the wrong typo in 6e272429, heh 2021-06-03 22:39:14 -04:00
Jon Evans 6e2724294a Fix typo in action description 2021-06-03 21:27:28 -04:00
Ian McInerney 4f05262705 Cleanup includes in board.h and footprint.h 2021-06-03 20:19:52 +01:00
Ian McInerney 23f8851409 Remove pcb_group include from board header 2021-06-03 20:03:31 +01:00
Marek Roszko 4df3cb912d Remove another leaky wx/log.h header 2021-06-03 08:11:15 -04:00
Seth Hillbrand 63cc7d16b4 Repair board on open
We need to ensure that boards do not have duplicated KIIDs, so we repair
the duplicates when opening an existing file.  This does not change the
file on disk until saved
2021-06-01 13:39:59 -07:00
Seth Hillbrand bf1437899e Add Python Tool to pcbnew 2021-06-01 20:18:24 +00:00
Seth Hillbrand f274a00c08 Remove PYTHON_* compile options 2021-06-01 20:18:24 +00:00
Jeff Young c4cabb38d5 More worksheet -> drawing sheet cleanup.
Fixes https://gitlab.com/kicad/code/kicad/issues/8516
2021-05-31 12:26:44 +01:00
Jeff Young 0598c82972 Terminology (use present tense for flags). 2021-05-31 12:26:44 +01:00
Jeff Young 8e2fb1bdb9 Treat Cut like a Delete while in a Move.
Also fixes problem where second action wasn't getting executed because
the event was getting eaten.

Fixes https://gitlab.com/kicad/code/kicad/issues/8072
2021-05-29 22:10:43 +01:00
Jon Evans eff9746f34 CHANGED: Net highlight in PcbNew is now persistent to match Eeschema
CHANGED: Highlight net tool changed to highlight display toggle; moved to left toolbar
CHANGED: Multi-net highlight is now accessible when using the highlight net action
ADDED: Highlight Net and Clear Highlight actions to Net Tools context menu
ADDED: Default hotkey (Ctrl+`) for toggling net highlighting

The current and previous net highlight state are now stored and can be toggled
on or off with an action (no hotkey by default).

Highlight is now treated as a persistent state rather than a tool that is entered,
meaning there is no longer a special tool to enter in order to highlight nets.
Highlighting can be controlled while any other tool is active using the hotkeys
or context menu on a net object.

Tweak the icons for highlight net and layer display mode to better disambiguate them.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/8250
2021-05-29 12:40:24 -04:00
Seth Hillbrand 752ae4d519 Rename modification flag routines
Differentiates better between the EDA_ITEM IsModified(), referring to
items themselves changing and the EDA_SCREEN IsContentModified(),
referring to whether we have made any unsaved changes.
2021-05-28 12:07:04 -07:00
david-beinder 64cd401bdb Delete Tool: Fix missing "Item Locked" popup
Fixes problem identified in https://gitlab.com/kicad/code/kicad/-/issues/8392
Removes same popup from schematic tool because SCH_ITEM can not be locked
2021-05-27 05:38:51 +00:00
Jeff Young 4fb643df93 Update POINT_EDITOR when locking/unlocking via Hotkey/RMB.
Fixes https://gitlab.com/kicad/code/kicad/issues/8489
2021-05-26 16:03:35 +01:00
Seth Hillbrand ba73456d49 Allow point editor to persist
After drawing a graphic, allow the control points to persist when
exiting the tool.

The effect of this is to make the first "Esc" press a
"return-to-select-tool" event without modifying the selection or control
points from within the drawing tools.  The section "Esc" press, when in
the selection tool will clear the selection and the control points
2021-05-25 16:47:54 -07:00
Jeff Young 5c9a73aa5e Correct position for grid even when we're not snapping to a point.
Fixes https://gitlab.com/kicad/code/kicad/issues/8125
2021-05-25 21:57:19 +01:00
Jeff Young 0eed73ea73 Make PCB_POINT_EDITOR honour locked flag.
Fixes https://gitlab.com/kicad/code/kicad/issues/8254
2021-05-25 18:13:24 +01:00
Jeff Young baf868fce7 Add footprint repair tool (currently just for duplicate IDs). 2021-05-21 17:52:11 +01:00
Jeff Young 0d8a9a1091 Make sure that a tool never exits with autopan or capture.
Fixes https://gitlab.com/kicad/code/kicad/issues/8459
2021-05-21 14:53:58 +01:00
Jeff Young 3de60231db Allow clearance debugging of exact items in DRC violation.
ADDED: Run clearance resolution tool... RMB menu item to DRC
clearance errors.

Fixes https://gitlab.com/kicad/code/kicad/issues/8438
2021-05-21 00:00:24 +01:00
david-beinder 75f49ba1b6 Add length tuner settings to toolbar context menu 2021-05-12 02:34:52 +00:00
david-beinder 34145d8170 Add length tuning menu to vertical pcb toolbar 2021-05-12 02:34:52 +00:00
Jeff Young c49af57c2a Don't require a restart to get the current m_Live3DRefresh setting.
Fixes https://gitlab.com/kicad/code/kicad/issues/8349
2021-05-11 15:07:52 +01:00
Jeff Young 7356f9568d Move grid disable modifier from ALT to CTRL.
Also had to move the H/V/45 disable modifier from CTRL to SHIFT.

Fixes https://gitlab.com/kicad/code/kicad/issues/8124
2021-05-09 20:17:40 +01:00
jean-pierre charras a5ff27cae7 Pcbnew, EDIT_TOOL::GetAndPlace(): fix and issue, and allows execution only if
called inside the board editor.
Fix also a broken behavior: the current action was not cancelled, and if it is
called during a move items (when typing the 'T' key), items were broken.
The actual bug is the fact it is called also in fp editor and footprint wizard frame,
because it is part of EDIT_TOOL action list, common to fp editor, and should not.
But a full change is much more costly than just a filter.
2021-05-09 11:51:57 +02:00
jean-pierre charras aaffd0c137 Pcbnew: fix crash due to a not tested null pointer.
Fixes #8369
https://gitlab.com/kicad/code/kicad/issues/8369
2021-05-07 10:35:00 +02:00
Fabien Corona 094dd2e08c pcbnew : rotate relatively to selection center 2021-05-04 09:13:20 +00:00
Roberto Fernandez Bautista f2677340f2 Access the new paste behaviour via a new Paste Special... dialog
ADDED Paste Special... action in pcbnew

CHANGED Additional options for Paste Special... in eeschema, including
"Assign unique reference designators to pasted instance"
2021-05-03 19:38:32 +01:00
Roberto Fernandez Bautista 98c8f43320 eeschema and pcbnew paste: consistent paste behaviour
Duplicates are reannotated on paste in the same way in pcbnew and
eeschema such that when copying and pasting the same block in the
pcb and schematic, the reference designators will match.
2021-05-03 19:38:32 +01:00
jean-pierre charras 0427bda768 Remove useless wx/wx.h include, that create sometimes compil warnings on msys.
wx/wx.h includes all wxWidgets .h files, and sometimes creates collision
names in #define between kicad and windows headers
Moreover, blindly including a lot of useless files is compil time consuming
2021-05-01 19:32:15 +02:00
Marek Roszko 03cf2b517f Enum class PAD_ATTR_T
Renamed such that python stays the same
2021-05-01 10:51:54 -04:00
Marek Roszko b243c2280d enum class PAD_SHAPE_T 2021-05-01 08:22:35 -04:00
Marek Roszko 21fde9b629 enum class PCB_SHAPE_TYPE_T 2021-04-30 22:36:12 -04:00
Jeff Young 91421f9908 Separate logic for multi-select and click-select when filtering.
Also removes a bunch of old implementations of pad locking and
filtering which are no longer needed.  (They're now handled by the
uniform locking code.)

Also removes some of the auto-promotion logic.  Rotating a footprint
when a pad was selected is going to be surprising whether the pad
is locked or not.

Fixes https://gitlab.com/kicad/code/kicad/issues/8322
2021-04-29 00:07:35 +01:00
Seth Hillbrand 78b555afa2 Filter Select All event against hierarchy
Fixes https://gitlab.com/kicad/code/kicad/issues/8316
2021-04-27 16:58:45 -07:00
Jeff Young 5bf37a9b24 Don't allow selection crossing a parent/child relationship.
Fixes https://gitlab.com/kicad/code/kicad/issues/8292

Fixes https://gitlab.com/kicad/code/kicad/issues/7255
2021-04-26 18:47:44 +01:00
Jeff Young e6bf922a77 Make sure connectivity is locked for zone filling.
See 1e33928b96
for the original addition and rationale.
2021-04-25 18:09:53 +01:00
Jon Evans 7569fc8aad Bring back live move of footprint in 3D view if live refresh is on
Fixes https://gitlab.com/kicad/code/kicad/-/issues/8220
2021-04-22 22:32:41 -04:00
Jon Evans 37dd4038eb Display options can change during the picker lifecycle
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7133
2021-04-12 22:12:48 -04:00
Jeff Young a4c08e2af6 Apply Eeschema cursor updating architecture to PCBNew.
Fixes https://gitlab.com/kicad/code/kicad/issues/8135
2021-04-12 11:11:11 +01:00
Jeff Young cc956695ae Hit test for worksheet before adding Properties to menu.
Fixes https://gitlab.com/kicad/code/kicad/issues/8171
2021-04-11 14:18:35 +01:00
Jeff Young dc0cf3b802 Clean up a confusing API.
AllowDRCViolations is kept in any mode as a *setting*, but only
controls router behaviour when the mode is mark obstacles.

Fixes https://gitlab.com/kicad/code/kicad/issues/7795
2021-04-10 11:08:02 +01:00
Mikolaj Wielgus 43d8145304 Pcbnew: Snap to the closest point on graphic polygon border
Fixes https://gitlab.com/kicad/code/kicad/issues/8164
2021-04-09 22:33:55 +00:00
Jon Evans 619a353c5e Decouple 3D view dirty marking and refresh
Fixes https://gitlab.com/kicad/code/kicad/-/issues/8154
2021-04-08 22:09:19 -04:00
Mikolaj Wielgus d64de3808f Pcbnew: Snap to group items
Fixes https://gitlab.com/kicad/code/kicad/issues/7694
2021-04-08 23:22:19 +00:00
Jon Evans 4521091cc1 Do not invalidate geometry when all we need is a repaint
Fixes https://gitlab.com/kicad/code/kicad/-/issues/8157
2021-04-08 17:35:51 -04:00
Ian McInerney 29cc16a4c4 Push pcbnew layer alpha change update into base frame
This code was shared between the footprint frame and
pcb edit frame, so push it into the base edit frame.
Also remove the dummy wxUpdateUIEvents that weren't
actually being used.
2021-04-07 17:39:48 +01:00
Jeff Young 3fd3be9843 Layer fixes for PCBNew drawing tools.
1) Implement layer changes for dimension drawing tool
2) Ensure drawing layer is visible for (1) and for the text drawing
tool.

Fixes https://gitlab.com/kicad/code/kicad/issues/8106
2021-04-07 15:02:48 +01:00
Jeff Young e50b450092 Formatting and organisation. 2021-04-07 14:50:29 +01:00
Roberto Fernandez Bautista 211fd65c23 Move: Ignore mouse up and click events until a mouse move / drag event
Fixes https://gitlab.com/kicad/code/kicad/-/issues/8123
2021-04-06 17:29:52 +00:00
Jeff Young 09b2db3139 Test for group in footprint was snagging all footprint children.
Fixes https://gitlab.com/kicad/code/kicad/issues/8121
2021-04-06 18:27:43 +01:00
Roberto Fernandez Bautista 235688e459 Less restrictive Arc Track Dragging tool
Use the connecting straight tracks even if not exactly parallel - allow
an error margin configurable in ADVANCED_CFG (default 1 degree). Also
be less strict about end point matching and use the width of the track
as the criteria to determine suitability.

Finally, delete any short lengths of track at the end of the operation
and amend the arc end points to keep connectivity.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/7967
2021-04-06 12:52:01 +00:00
Jeff Young ec45855aed Make sure drawing layer is visible.
Fixes https://gitlab.com/kicad/code/kicad/issues/8106
2021-04-06 00:06:23 +01:00
Ian McInerney 83ae28f04f Fix selection when pasting/duplicating items
The item flags weren't getting reset after placing
the new items, so the next operation on them was
having weird behavior.

Fixes https://gitlab.com/kicad/code/kicad/issues/7528
2021-04-03 19:09:21 +01:00
Mikolaj Wielgus 99fd872fce Pcbnew: Do not move footprint fields twice in align/distribution tools
Fixes https://gitlab.com/kicad/code/kicad/issues/8094
2021-04-02 21:09:36 +00:00
Mikolaj Wielgus 7655533412 Do not move footprint fields twice when performing Move Exactly
Fixes https://gitlab.com/kicad/code/kicad/issues/8062
2021-04-02 21:07:59 +00:00
jean-pierre charras d3bf20e80b Pcbnew, place free via: take netcode from the pad, if the via is inside a pad.
Fixes #8089
https://gitlab.com/kicad/code/kicad/issues/8089
2021-04-02 17:19:44 +02:00
Jeff Young f6f31b7654 Get rid of save warning after Footprint Editor Save As.
Fixes https://gitlab.com/kicad/code/kicad/issues/8084
2021-04-01 11:17:24 +01:00
Roberto Fernandez Bautista 7077e59395 Make moving pads independent of footprint much harder with new setting
It is still possible to move a pad independent of footprint through
the pad properties dialog. This is a much more conscious decision
than using the move tools.

ADDED: "Allow free pads" preference setting in pcbnew, default to off.
When enabled, allows moving unlocked pads independent of the footprint
(i.e. previous behaviour). When disabled (default), any attempt to move
a pad will move the parent footprint instead.

REMOVED: "Lock pads of newly added footprints" preference setting in
pcbnew. (Pad lock state is now loaded from the footprint definition)

CHANGED: There are now only two possible lock states for a footprint:
locked and unlocked. The lock state of the pads in the footprint is
now independent of the footprint lock state.

Also fixed a latent bug that would allow a pad to be moved when the
parent footprint was locked (see m_selectionTool->RequestSelection
lambdas in edit_tool.cpp)

Fixes https://gitlab.com/kicad/code/kicad/-/issues/7739
2021-03-31 18:28:18 +00:00
Ian McInerney 0a0935e0f3 Remove ACTIONS::TranslateLegacyId and TOOL_DISPATCHER::DispatchWxCommand
After commit 9535153f9e there were no more IDs inside the legacy ID
system. Therefore the entire system for dispatching and looking up
the legacy ideas and handling those events can now be removed and
the tool dispatcher simplified (it no longer needs to know about
the ACTIONS class).
2021-03-30 23:20:22 +00:00
Wayne Stambaugh 38c849bde7 Pcbnew: load write board netlist to file tool action dynamically.
Loading this advanced configuration option statically will cause it to
show up in the hotkey list even when the option is disabled. Creating
the tool action at run time resolves this issue.
2021-03-29 09:04:55 -04:00
Jeff Young f2e68e68d0 Add "Hide Tree" context menu options when tree has no selection.
Also cleans up some other code to be more consistent between symbol
editor and footprint editor.

Fixes https://gitlab.com/kicad/code/kicad/issues/8052
2021-03-29 12:02:00 +01:00
Wayne Stambaugh 6d2f80b4cf Pcbnew: add write board netlist to file support.
This is hidden behind an advanced configuration setting and is primarily
useful for developers trying to troubleshoot the netlist payload sent
from the board editor to the schematic editor.

Fixes https://gitlab.com/kicad/code/kicad/issues/8051
2021-03-28 08:38:29 -04:00
Ian McInerney 42c6af4bd8 Cleanup ACTION_MENU creation in some places
The ACTION_MENU constructor now takes the tool as an argument,
so the call to SetTool() immediately following it can be removed
and the tool just passed into the constructor.
2021-03-27 19:16:58 +00:00
Ian McInerney 9535153f9e Move the import graphics menu item to the action 2021-03-27 19:04:16 +00:00
Ian McInerney 7bfa8575fa Remove redundant information from import/export menu item labels
Saying "Import/Export" on the labels when the submenu has "Import"
or "Export" in it is redundant.

Note that we can't just update the action text with the new name,
because that is used in the hotkey list and would become too confusing
without the "Import"/"Export" text.
2021-03-27 18:50:35 +00:00
Jeff Young 3279e295ac Don't start filling zones with possibly stale caches.
Fixes https://gitlab.com/kicad/code/kicad/issues/8014
2021-03-25 17:20:08 +00:00