Commit Graph

2526 Commits

Author SHA1 Message Date
Seth Hillbrand f1261e71d4 Replace boost::optional with std::optional 2022-08-25 15:50:47 -07:00
Seth Hillbrand fb74bdb059 Don't consider rule area zones in priority calc 2022-08-25 10:12:58 -07:00
Seth Hillbrand e661545ecf Choose the first unused priority value for zones
Default the new zone priority value to the lowest available unused
priority.  Ensures that, by default, a new zone has a unique priority
level preventing zones from unintenionally shorting
2022-08-25 10:05:30 -07:00
Seth Hillbrand 418df36790 Avoid teardrops in priority calculation
When choosing a new priority value, don't look at teardrops (which have
high priority)
2022-08-25 08:41:14 -07:00
Seth Hillbrand 3e4cfab254 Set new zone priority to unique number
Previously new zones' priorities were all set to 0.  This is almost
always wrong and can lead to unintended conflicts.  The new zone default
value is now set to one higher than the largest number on the board.
This is a better default value because it will not conflict with
existing values.
2022-08-24 16:37:57 -07:00
Jeff Young 1871812f2b Consolidate on a more widely used sub-type architecture. 2022-08-23 12:57:55 +01:00
Maciej Suminski f6f6ebd5f9 WIP: Properties GUI 2022-08-22 21:32:32 -04:00
Jeff Young 1e68c353f1 Account for groups in undo of Position Relative To.
Also fixes a bug were pads weren't correctly being found for anchoring
the selection before the Position Relative To.

Fixes https://gitlab.com/kicad/code/kicad/issues/11793
2022-08-22 22:33:38 +01:00
Alex 3a76d42630 Cross-probing/selection for multiple items (PCB -> SCH)
Fixes https://gitlab.com/kicad/code/kicad/issues/10469
2022-08-22 19:33:39 +00:00
Jeff Young 03454684fa Commenting. 2022-08-22 12:43:57 +01:00
Jeff Young 4f0136db3b Attempt to fix std::initializer_list lifetime issue. 2022-08-21 20:54:41 +01:00
Jeff Young 28f7221cc3 Allow selection of Footprint Checker markers.
(And do a cross-probe to the Footprint Checker dialog.)
2022-08-20 11:30:25 +01:00
Jeff Young aa2ad3b44c Move KICAD_T[] to std::initializer_list<KICAD_T>. 2022-08-20 10:28:11 +01:00
Jeff Young 46df421064 ADDED defined pad groups for net-tie footprints
Each pad group is allowed to short nets with other pads in its group.

Legacy footprints with the "net tie" keyword hack will get a single
group auto-created with all the footprint's pads in it.

DRC and the router now allow a track to collide with copper graphic items
while entering a net-tie pad as long as the closest point in the collision
is within the pad.

DRC (and the footprint checker) now check for copper items in the
footprint shorting pads which are not in the same pad group.

Fixes https://gitlab.com/kicad/code/kicad/issues/2265
2022-08-19 18:54:20 +01:00
jean-pierre charras a60053c800 selectAllItemsOnSheet(): fix a typo that prevent selection of items in root sheet. 2022-08-19 11:12:16 +02:00
jean-pierre charras e0fbe2542f Fix a few compil and Coverity warnings. 2022-08-19 10:53:29 +02:00
Mike Williams f06e28b7a7 PCB: Finish Route, Route From End
Adds restart routing from other ratsnest' end and automatically finish
routing.

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/5051
2022-08-17 03:15:46 +00:00
Alex 371f6d917f Use VECTOR2I::extended_type instead of long, and int for numeric limits. 2022-08-16 12:08:55 +00:00
Alex 405be8d15f Bounds-awareness in Move, Rotate, point editor, drawing tool 2022-08-16 12:08:55 +00:00
Alex b81a3f0533 GetClampedCoords: Better usability for rounding 2022-08-16 12:08:55 +00:00
Alex 4d7d367b25 Use KiROUND for BBox calculation, change parameter name, block negative padding. 2022-08-16 12:08:55 +00:00
Seth Hillbrand 759e1a64ef Fix broken const ref in wildcard 2022-08-15 12:09:30 -07:00
Seth Hillbrand 35ac39844f Clean up some auto usage
Don't make new copies of shared_ptr if we can use references.  Keep auto
usage down to hard-to-type-out sequences
2022-08-15 11:29:45 -07:00
Jeff Young 1f347582f8 Introduce new marker type so we can track DRC errors on the drawing sheet.
Fixes https://gitlab.com/kicad/code/kicad/issues/12221
2022-08-15 18:03:03 +01:00
Jeff Young a9536b5de9 CHANGED netclass assignments now done via canvas or via patterns. 2022-08-14 22:56:29 +01:00
Jeff Young d6cd55e133 ADDED esc-removes-net-highlight preference to PCBEditor.
Fixes https://gitlab.com/kicad/code/kicad/issues/8760
2022-08-09 08:46:12 +01:00
jean-pierre charras ea914eac9a Pcbnew: fix regression: Display board info when clicking on a empty place.
Previously: the displayed info was "Selected Items 0".
2022-08-05 13:49:01 +02:00
Jeff Young 96f01d33c8 Performance improvements.
1) Move a bunch of std::map's to std::unordered_map to get constant-time
look-ups
2) Lengthen progress-reporting intervals to spend more time doing work
and less time talking about it
3) Reverse order of SHAPE_LINE_CHAINs in thermal intersection checks to
make (much) better use of bbox caches
4) Don't re-generate bboxes we already have
5) Fix some autos that weren't by reference (and were therefore copying
large datasets)
6) Rename delta progressDelta so it's easier to search for in future
7) Get rid of a few more autos (because I don't like them)
8) Pass large items to lambdas by reference

Fixes https://gitlab.com/kicad/code/kicad/issues/12130
2022-08-03 11:59:42 +01:00
Jeff Young 43df863df2 Fix issue with caches not being initialized when printing msg bar. 2022-08-01 13:09:51 +01:00
Jeff Young 0304ad4494 Move connection width testing to rule system.
Also copies connection width progress reporting architecture over to
the sliver checker.
2022-08-01 13:09:51 +01:00
Jeff Young 927bc8141b Init member variables. 2022-08-01 13:09:51 +01:00
Jeff Young 54213bb7f1 Cleanup and move to DRC_ENGINE's status reporter.
1) brace formatting
2) get rid of some autos
3) get rid of a dyn_cast that CLion claims is bad
4) use DRC_ENGINE's status reporter
2022-08-01 13:09:51 +01:00
Jeff Young 6f49b57f9b Cleanup & performance enhancements. 2022-08-01 13:09:51 +01:00
Marek Roszko a8505d9c76 SEARCH_RESULT -> INSPECT_RESULT
To fix the name squatting it's doing for future functionality
2022-07-29 20:01:10 -04:00
Jeff Young f0b9e67212 Add ignore-line-widths mode to CONVERT_TOOL.
Fixes https://gitlab.com/kicad/code/kicad/issues/5911
2022-07-29 21:39:03 +01:00
Jeff Young fc1afa6298 Improvements to convert tool.
1) Handle filled shapes
2) If a chained outline can't be found, build hulls of the individual
segments
3) Combine intersecting shapes
4) Simplify code

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

Fixes https://gitlab.com/kicad/code/kicad/issues/5911
2022-07-27 18:57:45 +01:00
Jeff Young 2bf33321d1 Update constraint mode in status bar during move.
Fixes https://gitlab.com/kicad/code/kicad/issues/10465
2022-07-27 18:57:45 +01:00
jean-pierre charras aabc3b3cc6 FP editor: fix crash when duplicating a footprint.
Fixes #12098
https://gitlab.com/kicad/code/kicad/issues/12098
2022-07-27 19:08:27 +02:00
Jeff Young cb6a2552d9 Use the FPEditor's status bar messages for FPBrowser.
Fixes https://gitlab.com/kicad/code/kicad/issues/11404
2022-07-26 18:45:02 +01:00
jean-pierre charras 4d48376eae Fix some warnings detected by PVS-STUDIO (not used vars) 2022-07-26 16:00:14 +02:00
Jeff Young 1bad72f14f Remove bad static_cast.
(m_settings isn't a PCBNEW_SETTINGS in non-PCB_EDIT_FRAMEs)
2022-07-24 23:41:41 +01:00
jean-pierre charras c16d0603c6 Add fix missing in my commit 8eee7667 2022-07-24 09:10:51 +02:00
jean-pierre charras 8eee766791 Fix Cvpcb DISPLAY_FOOTPRINTS_FRAME: some display options not working. Commit 5e4a7041 moved 4 settings used in Cvpcb to a PCBNEW_SETTINGS struct. But in Cvpcb, this config struct does not exist. So these 4 settings are now moved to a section (PCB_VIEWERS_SETTINGS_BASE) common to Cvpcb and Pcbnew config. 2022-07-23 18:45:13 +02:00
Jeff Young 9dd3bbf2cb Change highlight net hotkey default.
Fixes https://gitlab.com/kicad/code/kicad/issues/12051
2022-07-23 12:34:48 +01:00
Jeff Young f41af10007 Clean up hole shapes for safety (smart pointer) and consistency. 2022-07-22 23:06:07 +01:00
Jeff Young 5442d284f4 Improve strings for highlight net commands. 2022-07-22 09:31:11 +01:00
Jeff Young def87c969e Redo the pinned-libraries storage architecture.
1) always use preferences directly
2) allow nicknames from either preferences or project
3) store-after-modify

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

Fixes https://gitlab.com/kicad/code/kicad/issues/11892
2022-07-22 09:31:10 +01:00
Jeff Young b80fd5329d Clear dimension pointer after committing.
Fixes https://gitlab.com/kicad/code/kicad/issues/11864
2022-07-22 09:31:09 +01:00
Jeff Young 004abcd370 Leave originally selected items selected after cancelled move.
Fixes https://gitlab.com/kicad/code/kicad/issues/12024
2022-07-22 09:31:08 +01:00
Seth Hillbrand 16e3d40552 ADDED: Display calculated clearance in status bar
In addition to showing resolved clearance, we also show the calculated
clearance in the same method as is used for DRC.  This will allow users
to better examine their system while working.

Fixes https://gitlab.com/kicad/code/kicad/issues/7934
2022-07-21 15:44:48 -07:00