3721 Commits

Author SHA1 Message Date
Seth Hillbrand
5952c2fb9a ADDED: Pad edit table
Allows editing common pad properties in table format

Fixes https://gitlab.com/kicad/code/kicad/issues/10789
2025-09-12 05:39:25 -07:00
Jeff Young
2f1a91279f Make sure DRC inspection dialogs come up in front
of DRC dialog.
2025-09-10 17:52:09 +01:00
Jeff Young
0a162ded84 Go back to checking points from the front.
We want to prefer a primary point (ie: a rectangle
corner) to a secondary point (ie: a rounded-rect
radius adjuster).
2025-09-08 18:37:47 +01:00
Seth Hillbrand
ac1b44715b Only dogbone inside corners
Fixes https://gitlab.com/kicad/code/kicad/issues/18880
2025-09-07 13:02:44 -07:00
Mike Williams
f7fd832c67 design blocks: add routing to exinst group when applying layout 2025-09-03 13:49:55 -04:00
jean-pierre charras
876c905e2b DRAWING_TOOL: change POINT to MD_POINT, to avoid colliding with a Windows header define 2025-09-03 11:40:05 +02:00
Seth Hillbrand
ad80113f47 Prevent modifying teardrops on lock/unlock
This action doesn't affect geometry, so don't dirty the teardrops

Fixes https://gitlab.com/kicad/code/kicad/issues/21342
2025-09-02 20:35:59 -07:00
Mike Williams
202619cd43 design blocks: fix PADs getting copied in routing, enable by default 2025-09-02 13:58:18 -04:00
Seth Hillbrand
1f1f8699e0 Prevent pads from moving inappropriately
Free pads is a setting unless we are in the footprint editor and needs
to be respected by the alignmen tool

Fixes https://gitlab.com/kicad/code/kicad/-/issues/21626
2025-09-02 09:11:31 -07:00
Jeff Young
cff261ce2e Don't allow stack addresses to escape via long-life handlers. 2025-09-02 14:19:17 +01:00
John Beard
1e272ca21b Geom: use SHAPE_SEGMENT for OVAL
OVAL didn't do anything SHAPE_SEGMENT couldn't already do.
2025-09-02 17:38:26 +08:00
John Beard
eedfb7a573 Pcbnew: pickup footprints by points, add a selection filter 2025-09-02 01:24:14 +08:00
Mark Roszko
4a4725c906 Avoid shadowed variable warning 2025-09-01 12:24:35 -04:00
John Beard
e016dc52fd Pcbnew: Add concept of a 'point'
This is a zero-dimensional object that can be used for snapping
and documentation of useful, but non-physical features on a
board or footprint. They do not correspond to any physical
output in exports or plots.

Points do have a "size", but this is a graphical property only
and determines how large they are drawn on the board.

They also have a layer, which allows them to be selected and
made visible according to layer filters.

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/4691
2025-09-01 23:44:21 +08:00
Jeff Young
4024a15a17 Don't reference stack variables from a long-life lambda.
In particular, a lambda for conditional menus should
never capture more than `[this]`.  Even the tool's
frame pointer could change.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/21615
2025-09-01 12:44:20 +01:00
Seth Hillbrand
2eb7ba2fb9 Simplify overlapping points after editing
Fixes https://gitlab.com/kicad/code/kicad/-/issues/21571
2025-08-31 17:48:59 -07:00
Seth Hillbrand
2c4d792358 Stop converging at existing point
Prevents collapsing points into drag element when hitting convergence
2025-08-31 17:48:59 -07:00
Seth Hillbrand
7b4f4540b4 ADDED: Light snapping to 45° multiples
When modifying the points of a polygon, we add a small snap to the
points preferring multiples of 45° unless you are holding shift

Fixes https://gitlab.com/kicad/code/kicad/-/issues/15709
2025-08-31 13:47:34 -07:00
Seth Hillbrand
eba8d0748c Don't show angles for non-polygons 2025-08-31 12:54:38 -07:00
Seth Hillbrand
bbc762a546 ADDED: Angle preview for polygon mod
Shows angle for the current and adjacent corners and whether they are
congruent
2025-08-31 11:49:41 -07:00
Jeff Young
1309b436da Allow stitching of graphic shapes. 2025-08-31 19:32:48 +01:00
Jeff Young
c47b7459aa Set free vias to graphic net if available.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/21578
2025-08-31 19:21:29 +01:00
Jeff Young
a2e98fb53c Don't set point to a value we're not going to keep.
It just causes flicker.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19947
2025-08-31 17:13:11 +01:00
Seth Hillbrand
2cdeb0cd7c Second pass at fixing warping and grids
First attempt caused additional problems for #21535

Fixes https://gitlab.com/kicad/code/kicad/-/issues/18196
2025-08-31 07:54:21 -07:00
Seth Hillbrand
8c6f057f6c Re-organize points to allow missing radius
Not all rectangles want/need the radius point, but we will only be able
to drag one point at a time.  So we re-organize which point of an
overlapping set is selected

Fixes https://gitlab.com/kicad/code/kicad/-/issues/21605
2025-08-31 07:10:14 -07:00
jean-pierre charras
6592c75345 fix issues in ROUNDRECT. This also fix a change commit by mistake in aeafbe48
Fix incorrect ROUNDRECT Ctor. It also fixes a link issue on msys2
- Do not throw  an error in CTor: this is not the place. It is much easy to
fix the value of incorrect radius.
Moreover, the Ctor is called without catching a throw-ed error in code.
- fix the test about radius validity, broken.
2025-08-30 17:35:26 +02:00
Seth Hillbrand
e3b550dd13 Add a little radius helper
When rounding a rectangle, add a helper that shows the current radius
2025-08-30 08:19:35 -07:00
Seth Hillbrand
0f1b514964 Handle corner radius in Create from selection
Fixes https://gitlab.com/kicad/code/kicad/-/issues/21601
2025-08-30 07:33:30 -07:00
Seth Hillbrand
8acf5c1a25 ADDED: Rounded Rectangles
Fixes https://gitlab.com/kicad/code/kicad/-/issues/4742
2025-08-29 17:37:30 -07:00
Seth Hillbrand
e282dca102 Add configurable hysteresis to PCB snapping
Makes it harder to enter and harder to exit a snap.  ideally this should
help make snapping more intuitive and easier to use.  Once you have a
snap, it is harder to lose it but it avoids being overly snappy in the
begining
2025-08-29 16:21:35 -07:00
Seth Hillbrand
a811f61c39 Make Expand Connection respect the filter
Prevents expansion that would require traversing elements that are
disabled in the selection filter

Fixes https://gitlab.com/kicad/code/kicad/-/issues/21581
2025-08-29 16:11:38 -07:00
Seth Hillbrand
e8cec41355 ADDED: Indication of filter blocking
If the selection filter has blocked all selections under the cursor,
show a subtle flash on which filter(s) did the blocking.  Helpful for
people getting frustrated by not being able to select locked items.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/20487
2025-08-29 07:08:27 -07:00
Jeff Young
83fab7b02c Fix undo for move of group-of-shapes.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/21563
2025-08-28 13:20:14 +01:00
John Beard
0f0527bd03 Pcbnew: fix sensitivity of via placement to large grids
Another case where large grids are overly "grabby" for snaps.

In this case, because the via was moved to the grid-snap first,
and then THAT position was used to look for things like pad-snaps,
the pad snaps would not be found if a coarse grid meant the cursor
was outside the pad.

Instead, use the mouse position when looking for the non-grid snaps
in VIA_PLACER::SnapItem.

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/18626
2025-08-26 23:34:46 +08:00
John Beard
3d8803f579 Pcbnew: use R-tree for pad checks in via place tool
Otherwise this is an O(n-pads-on-board) operation for every new
candidate via position.
2025-08-26 23:34:46 +08:00
Seth Hillbrand
8997b7bcf7 Remove old HasCorner 2025-08-25 22:06:26 -07:00
Seth Hillbrand
5b86f20476 Suppress unneeded move corner context
Doesn't really make sense in terms of a group

Fixes https://gitlab.com/kicad/code/kicad/-/issues/21552
2025-08-25 22:04:32 -07:00
Seth Hillbrand
7841476ed6 Make all 4 corners draggable
When scaling, maybe you want to drag from the bottom left or top right

Fixes https://gitlab.com/kicad/code/kicad/-/issues/21554
2025-08-25 22:02:20 -07:00
Seth Hillbrand
a034c30563 Properly add group size mod to commit
Allows escaping the current state

Fixes https://gitlab.com/kicad/code/kicad/-/issues/21553
2025-08-25 21:59:13 -07:00
Seth Hillbrand
4e7fa189aa Refactor gfx import cleanup
Break up monolithic function into responsibilities.  Adjust cleanup to
correctly modify each graphical pairing.  Fix drc test to properly
report gap distances that are relevant to outlines

Fixes https://gitlab.com/kicad/code/kicad/-/issues/13090
2025-08-25 11:33:26 -07:00
Seth Hillbrand
26f0c03e61 ADDED: support for 45 degree crosshairs
Fixes https://gitlab.com/kicad/code/kicad/-/issues/6047
2025-08-23 06:20:00 -07:00
Seth Hillbrand
206dfa2883 Allow scaling grouped graphics in pcbnew
Adds scaling handles and editpoints to drag shapes larger/smaller while
maintaining proportions.  Future additions might include non
proportional scaling

Fixes https://gitlab.com/kicad/code/kicad/-/issues/13072
2025-08-22 20:04:38 -07:00
Jeff Young
3f85071f91 Don't double mirror groups.
Also removes previous fix, which had side-effects.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/8121

Fixes https://gitlab.com/kicad/code/kicad/-/issues/20465
2025-08-21 12:29:34 +01:00
Jeff Young
42735b775d Remove unreachable PASTE_MODE.
Also, don't depend on enum order.

Fixes KICAD-YJ8.
2025-08-21 12:29:34 +01:00
Jeff Young
90621947bf Bug fixes for locked tuning patterns.
The router uses locking to know the bounds of the
tuning pattern so it must be temporarily unlocked
while editing with the router.
2025-08-20 23:23:45 +01:00
Seth Hillbrand
c2f503774b Ensure that we use lasso when in the lasso mode
Fixes https://gitlab.com/kicad/code/kicad/-/issues/21499
2025-08-20 12:48:03 -07:00
Mike Williams
0f0c2ea494 pcb: windows build fix 2025-08-20 15:20:13 -04:00
Mike Williams
1e3c95a1d5 append board: use design block info when we have it 2025-08-20 15:20:13 -04:00
Mike Williams
ef50c31584 pcb design blocks: cleanup unused parameter
The position would always be "don't move at all" since we need to ensure
the design block fits in the canvas area, which means we can't move any
objects that we import.
2025-08-20 15:20:13 -04:00
Mike Williams
cdc8435fd8 pcb design blocks: need tool actions from base class, too 2025-08-20 15:20:13 -04:00