jean-pierre charras
57efde1bbb
Pcbnew: rename ZONE* m_SolderMask to m_SolderMaskBridges
...
(It is a container to build bridges on solder mask layers by DRC, not real zone)
Disable also this special zone selection by adding it in
PCB_SELECTION_TOOL::itemPassesFilter
2023-10-13 09:57:21 +02:00
Jeff Young
1b676985f6
Retire length tuning tool in favour of first-class meanders.
2023-10-12 17:54:34 +01:00
Jeff Young
1ca477aeee
Unroll from PICKER_TOOL so we can handle amplitude/spacing events.
...
Also fixes a bug where we didn't clear the router on an <ESC>.
2023-10-12 17:54:34 +01:00
Jeff Young
d6c2ad7503
Unroll from PICKER_TOOL so we can handle amplitude/spacing events.
...
Also fixes a bug where we didn't clear the router on an <ESC>.
2023-10-12 17:54:34 +01:00
Jeff Young
a57c9967f3
Draw meander borders while placing.
2023-10-12 17:54:34 +01:00
Jeff Young
d8f35633d4
Modify interactive delete tool to respect groups & selection filter.
2023-10-10 16:04:54 +01:00
Jeff Young
8c017be24a
Clearer naming.
2023-10-10 15:43:45 +01:00
Jeff Young
d3b50f0607
Cleanup (no functional changes).
2023-10-10 13:42:42 +01:00
Jeff Young
04e23bf5e3
Fix build.
2023-10-10 12:58:12 +01:00
Jeff Young
d916e650f1
Tuning status popup for point editor.
2023-10-10 11:55:57 +01:00
Jeff Young
642938455e
Add status popup for meander placer.
2023-10-09 22:32:32 +01:00
Jeff Young
d10b0b053e
Move meander placer picker tool from item highlighting to net highlighting.
2023-10-09 22:32:32 +01:00
Jeff Young
b662ff4956
Improve graphical feedback while placing a meander.
2023-10-09 15:22:41 +01:00
Alex Shvartzkop
f4f8523c59
Rename pcbnew DIALOG_IMPORT_GFX -> DIALOG_IMPORT_GFX_PCB
2023-10-09 07:04:50 +03:00
Alex Shvartzkop
af3bd15469
Avoid crash when length tuning+closing window.
2023-10-08 02:41:17 +00:00
Alex Shvartzkop
08e0d8d98a
ADDED: Manager dialog for generative objects.
2023-10-08 02:41:17 +00:00
Alex Shvartzkop
a4832dd3c8
ADDED: Interactive meander objects for length tuning.
2023-10-08 02:41:17 +00:00
Alex Shvartzkop
546c7ed218
Introduce GENERATOR_TOOL.
2023-10-08 02:41:17 +00:00
Alex Shvartzkop
be72e07e61
Introduce PCB_GENERATOR.
2023-10-08 02:41:17 +00:00
Alex Shvartzkop
0fcb36bc2e
Add reselectItem action.
2023-10-08 02:41:17 +00:00
Alex Shvartzkop
280fe976c4
Add a re-entrancy guard to PCB_POINT_EDITOR.
2023-10-07 03:51:52 +03:00
Jeff Young
420cadab34
Separate meander settings from target length/skew.
...
Settings move to Board Setup, while target length is sourced from
the custom rules (or a text-entry dialog if no rules are active for
the track).
Target skew is sourced from the coupled-trace-length minus the
trace-to-be-tuned length.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/12075
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15826
2023-10-06 19:46:55 +01:00
Ian McInerney
0876fb0985
Re-implement direct layer switching in the router tool
...
Also add a new framework to allow grouping actions that are similar into
a single context that can then be used for mass comparisons.
2023-10-05 13:34:25 +01:00
Jeff Young
31c488bc23
NETINFO_ITEMs are owned by BOARD.
...
Lifecylce management must go through BOARD_COMMIT (or at least
the frame's undo/redo lists).
2023-10-04 21:01:33 +01:00
Jeff Young
eaa3ee43e9
Tighten terminology consistency in clearance & constraint reports.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15800
2023-10-02 11:12:18 +01:00
Jeff Young
904bdc3c66
Use netclass values when reaching netclass entry.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15774
2023-10-01 21:01:46 +01:00
John Beard
311f041421
ADDED: Polygon boolean operations in PCB editor
...
This allows common operations like merging a pin courtyard
into the body courtyard in the fooprint editor, taking a
"bite" out of a polygon and so on,
For now, this only supports polygons made of straight lines.
There are some wierd cases when the operations result in nothing
(e.g. wen a big polygon is substracted from a smaller one that
it contains entirely). I have tried to do something senisble in
these cases, but there may be more optimal ways to handle it.
Relates-To: https://gitlab.com/kicad/code/kicad/-/issues/13025
2023-10-01 00:10:10 +01:00
John Beard
b6cd7e3b4a
Make ITEM_MODIFICATION_ROUTINE status messages more general and easier to call
2023-10-01 00:10:10 +01:00
Marek Roszko
02bbfc8f57
Fixes EDIT_TOOL::Move parameter assert
...
SENTRY KICAD-2CK
2023-09-30 16:00:15 -04:00
Marek Roszko
2bb811555b
Guess at fixing the InlineDrag action missing param
...
Fixes KICAD-41T
2023-09-30 15:53:35 -04:00
Jeff Young
31e30a5f56
Fix typo in arguments list to EvalRules().
...
Also fixes a bug where we weren't clearing the previous tabs from
the notebook.
2023-09-30 13:14:27 +01:00
Marek Roszko
6b12a12b3e
On second thought rename PROJECT_PCBNEW to PROJECT_PCB
2023-09-27 23:15:54 -04:00
Marek Roszko
7e8b18035f
Eliminate the conditional pcbnew/cvpcb definition of PROJECT
2023-09-27 20:53:46 -04:00
Jeff Young
1047130046
Push most of footprint chooser into PANEL_FOOTPRINT_CHOOSER.
...
Create 2 wrappers for it: DIALOG_FOOTPRINT_CHOOSER and
FOOTPRINT_CHOOSER_FRAME. The first now gets called from wxGrid
editors, text button editors (such as Change Footprints), etc.
Retire FOOTPRINT_VIEWER_FRAME_MODAL. FOOTPRINT_VIEWER_FRAME still
exists, but has very few uses at this point.
2023-09-27 16:02:13 +01:00
Zhuang Jiezhi
618c2be380
Pcbnew: Adding net pop-up menu for placing via
...
ADDED: Add feature showing a pop-up menu of possible nets when it's ambiguous in Pcbnew
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15003
2023-09-26 19:42:55 +00:00
Jeff Young
54171ec030
Add action for switching to Project Manager.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15740
2023-09-26 17:25:57 +01:00
Seth Hillbrand
91450c22cc
Allow disambiguation menu configurability
...
Adds an advanced config flag to all testing different values for
different users.
Related to https://gitlab.com/kicad/code/kicad/-/issues/15128
2023-09-24 16:33:05 -07:00
Jeff Young
e962615407
Use original event position if it's available.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15623
2023-09-24 19:01:53 +01:00
Jeff Young
aef0f44b8e
Smarten up double-click handing in PCBNew drawing tool.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15700
2023-09-24 18:49:41 +01:00
Seth Hillbrand
88cbbbcdae
Add error message when we cannot form a polygon
...
Explains to the user why the polygon creation failed
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15704
2023-09-20 13:42:31 -07:00
Marek Roszko
22b733209d
Fail GAL on its header leaking audit
...
Maybe we should rethink directly accessing GAL so much, but at least 600 files didn't need GAL leaked into them due to view_overlay.h
2023-09-18 19:52:27 -04:00
Alex Shvartzkop
06463fd35a
Fixes for Wayland cursor warping:
...
- Emulate the mouse position, since no motion events are sent after warp
- Do not call wl_surface_commit to prevent an assert
- Re-organize code a bit
2023-09-18 12:56:54 +00:00
Jon Evans
467c672bcd
Fix all-layer snapping for footprint editor
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15538
2023-09-16 22:55:40 -04:00
Jeff Young
cc0facdd4e
ADDED: Convert Pad to Polygon
2023-09-14 16:36:37 +01:00
Jeff Young
d6b75c64e1
ADDED: custom-shaped pad spoke templates.
2023-09-13 23:34:25 +01:00
Jeff Young
84a9f6f665
Set padEntered when entering pad edit mode with a non-custom shaped pad.
2023-09-11 22:05:24 +01:00
Jeff Young
899fe8be17
Fix change footprints dialog to use correct selection state.
2023-09-11 22:05:20 +01:00
jean-pierre charras
8aa408f0c9
fix a minor compil warning
...
fix a typo in translatable string.
2023-09-07 20:00:29 +02:00
Jeff Young
d3e255a383
Allow context-menu update/change footprint for multiple footprints.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15595
2023-09-07 17:51:18 +01:00
Marek Roszko
7505fd0f37
Profile can live in core
2023-09-07 07:47:01 -04:00
Marek Roszko
67b031adab
Painter base class should just live in gal instead of being in denial
2023-09-06 20:23:19 -04:00
Josue Huaroto
cef0f176d3
Add Unselect all in menu
2023-09-06 23:44:39 +00:00
John Beard
3c5052c1ac
Add snaps to pad hole edges
...
This is often useful when measuring the distance from an
object to a pad hole edge, and also when dimensioning
holes.
2023-09-06 21:34:17 +01:00
John Beard
78c8de9b08
Fix oval pad snapping
...
Previously the snap points computed for oval pads didn't get all the
points correct. This breaks out the "find snap points for ovals"
into a function, reworks the logic, adds some tests.
Also adds "extremum points" when the oval isn't exactly H/V.
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/15594
2023-09-06 21:33:45 +01:00
Jeff Young
c07e9c834f
Validate new footprint / save as footprint info before exiting dialog.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/13923
2023-09-06 12:49:37 +01:00
Jeff Young
9bba8e5956
Don't allow duplication of footprint items outside of footprint editor.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15487
2023-09-03 22:04:50 +01:00
Jeff Young
a24a8aaca7
Don't start a pack&move when already in an EDIT_TOOL drag or move.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15545
2023-09-03 14:03:52 +01:00
Jeff Young
624203f2e1
Don't start a router drag when already in an EDIT_TOOL drag or move.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15312
2023-09-03 14:03:52 +01:00
Jeff Young
69a1b30b8a
Implement undo/redo around Pad Edit Mode changes.
2023-09-01 18:48:46 +01:00
Jeff Young
68c839b214
Stop trying to zero-out offset of custom-shaped pads.
...
It causes *way* to many issues.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15555
2023-09-01 18:48:46 +01:00
Alex Shvartzkop
e128896ba6
Schematic plugins refactoring, fixes for PCB plugins.
...
- Move PLUGIN_FILE_DESC to common.
- SCH_PLUGIN: rename Load -> LoadSchematicFile, Save -> SaveSchematicFile.
- Use PLUGIN_FILE_DESC and CanRead* in schematic plugins.
- Return none/unknown types from Find/GuessPluginType functions.
- Iterate over file types for file wildcards.
- Clean-up header checking in IO plugins.
- Use PCB plugin list in IO_MGR::GuessPluginTypeFromLibPath.
2023-08-31 05:08:03 +03:00
Mike Williams
b8a61719c3
Grids: make overrides use existing grids (choice box)
2023-08-30 13:33:04 -04:00
Jeff Young
d161602e92
Don't snap a footprint (or group) to its children.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15535
2023-08-29 13:05:08 +01:00
Ian McInerney
ba22347904
Move pcb_actions to new constructor
2023-08-29 00:19:19 +01:00
Jeff Young
0d39cd5e63
Allow for offset custom-shaped pads with no holes.
2023-08-28 18:07:18 +01:00
Jeff Young
a470cab7b2
Include description for page settings command.
2023-08-27 19:03:17 +01:00
Jeff Young
3f26b29aa2
Minor cleanup and removal of stale comments.
...
Also attempts to fix a focus-loss bug on GTK after zone dialog.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/13221
2023-08-27 10:53:03 +01:00
Jeff Young
c48084bbbf
Minor cleanup and removal of stale comments.
2023-08-27 10:53:03 +01:00
Jeff Young
4fefd95e0c
Move grid definitions to Prefs and grid origin to a separate dlg.
...
Grid origin is document-wide, while grid definitions are app-wide.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/2262
2023-08-26 13:32:24 +01:00
Jeff Young
e0cf49e73c
Fix previous fix for honouring pad offset.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15494
2023-08-25 13:05:19 +01:00
Mike Williams
2b78c20a62
PCB: add grid overrides to graphics/router/etc.
2023-08-24 13:58:22 -04:00
Jeff Young
300014177f
Honour pad offset when creating custom pad anchors (and polygons).
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15494
2023-08-24 17:30:22 +01:00
Mike Williams
d9c2e0ab54
PCB: start of grid overrides
...
Only works for moves.
2023-08-24 10:29:09 -04:00
Mike Williams
0f781f328e
GRID_HELPER: push code to parent class
...
Prep'ing for PCB grid overrides
2023-08-24 10:29:09 -04:00
Jeff Young
a2627fec60
Don't snap to footprint-private items.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15447
2023-08-19 21:03:05 +01:00
Jon Evans
1efd75ca79
ADDED: Multi-layer object snapping
...
Default hotkey Shift+S toggles on/off
Fixes https://gitlab.com/kicad/code/kicad/-/issues/6266
2023-08-17 09:25:47 -04:00
Jeff Young
c54d97170b
Fix bone-headed copy/paste.
2023-08-15 23:28:19 +01:00
Jeff Young
750b92b17f
Don't allow selection of footprint dimensions.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15418
2023-08-15 17:06:56 +01:00
Roberto Fernandez Bautista
dbfb7880b5
Add IO_MGR::FindPluginTypeFromBoardPath (+QA tests)
2023-08-15 05:26:12 +03:00
Alex Shvartzkop
76e0d5981d
Import system refactor for PCB plugins.
2023-08-15 05:26:12 +03:00
Alex Shvartzkop
a0d96cea9f
Rename Save -> SaveBoard, Load -> LoadBoard in PLUGIN.
2023-08-15 05:26:12 +03:00
Jeff Young
2a3c4d0a03
Fix switch stmt fall-through.
2023-08-14 20:38:17 +01:00
Jeff Young
bd8857389a
Add a bit of slop for text-shape hit-testing.
2023-08-14 18:08:14 +01:00
Marek Roszko
14a0fa435c
ADDED: DRC JSON report
2023-08-13 14:59:10 -04:00
jean-pierre charras
7fe80abdff
PCB_GRID_HELPER::BestSnapAnchor() fix overflow due to use of int.
...
GRID_HELPER::GetVisibleGrid() needs double, does not work with int (overflow).
Fixes #15389
https://gitlab.com/kicad/code/kicad/-/issues/15389
2023-08-11 17:59:24 +02:00
Jon Evans
a77e630901
ADDED: Connectivity for graphic shapes on copper layers
...
Graphic shapes (excluding text) can now have nets when on
copper layers. Shapes behave like tracks in that they will
pick up nets from connected pads, and follow track opacity
settings.
2023-08-10 21:47:43 -04:00
Marek Roszko
812143ac69
ADDED: Run PCB DRC via cli
2023-08-10 20:20:40 -04:00
Mike Williams
30eae5d896
Fields: preserve field order across sch<->pcb
2023-08-07 09:29:13 -04:00
Jeff Young
0413270012
ADDED: Move Corner To... and Move Midpoint To...
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/5012
2023-08-05 16:43:55 +01:00
Jeff Young
c697a934b2
Update layer names to current terminology.
...
Also fixes some out-of-date tooltips/names.
2023-08-04 11:37:46 +01:00
Seth Hillbrand
7fac72a914
Only deselect existing footprint if currently selected
...
If we have a footprint currently selected and we click on its empty
space again, we deselect the footprint. However, if we click on the
empty space of a different footprint, we will select that footprint
instead.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15284
2023-08-03 11:17:31 -07:00
Seth Hillbrand
a90c9d7c93
Refine the footprint selection logic
...
- Footprints cannot be selected if they do not have items visible on the
screen
- Clicking on empty space in a footprint will select it if the space is
contained in the visible bounding box
- Clicking on a selected footprint a second time will deselect it
- Clicking on a footprint that has pads selected will still select the
footprint
This avoids having the full footprint bounding box considered when
selecting footprints (useful b/c footprint bbox is often much larger and
unexpected). Also allows non-standard footprints (e.g. silk or fab only
footprints) to be logically selected if the layers on which they have
elements are visible.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15284
2023-08-03 10:03:15 -07:00
Jon Evans
af58281a08
ADDED: Expand selection for graphics in PCB
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/12032
2023-08-01 21:14:58 -04:00
Seth Hillbrand
f3d65b5156
Revise method of selecting footprints in contrast
...
When working in high contrast mode, we want to be able to select a
footprint with only elements in, e.g. silk and fab layers.
The previous design for footprint IsOnLayer had one behavior of every
other element and a different behavior for footprints. This leads to
multiple bugs as new features use the overloaded IsOnLayer expecting it
to report if the element exists on a layer or not.
For footprints, we need a different routine to determine whether or not
to select the footprint when clicking on it. IsOnLayer will report if
the footprint has any elements on a specific layer but we don't want to
use the bbox for a hittest because large footprints with through hole
pads will exist on every layer and have an enormous bbox. Instead, we
filter footprints based on the hittest of each element. This behaves in
a more logical fashion, allowing you to select a footprint by clicking
on a visible element of that footprint.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15284
2023-08-01 10:43:13 -07:00
Mike Williams
744452d092
Sch/PCB: allow back-updating schematic fields from PCB
...
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/15285
2023-07-31 10:38:43 -04:00
John Beard
478df24f36
Fix fillets and chamfers when the original lines become zero-length
...
This needs the ITEM_MODIFICATION_ROUTINE to learn to delete items.
Condense the item change handlers into a single injected object
(ITEM_MODIFICATION_ROUTINE::CHANGE_HANDLER) and provide the basic
implementation that just takes some callables.
This simplifies the construction of the routines and also would make
a CHANGE_HANDLER object possible that can be reused between different
tools.
2023-07-30 15:12:28 +01:00
John Beard
da0daffa89
Remove more special-casing for fp-edit commit handling
...
In the EDIT_TOOL::ModifyLines method, there was some
remaining special-casing for FP childen commits.
One bit was put back by mistake (in
0b32ae3f4b
) because I thought I'd
left it out of the refactor. In fact it was removed slightly later in
1218f61d0a
.
THe other bit is omitting Modify commits in the FP-editor (what the
reinstatement of the above code was trying to cause). This shouldn't
be needed any more.
However, something is still incomplete here as the tools still don't
work correctly in the footprint editor. However, I don't think it's
substantially _more_ broken with the special casing removed and at
least it's less confusing.
Related to: https://gitlab.com/kicad/code/kicad/-/issues/15253
2023-07-30 15:10:30 +01:00
jean-pierre charras
a16ab0aae1
Replace SHAPE_T::RECT by SHAPE_T::RECTANGLE: RECT creates a collision name
...
issue with a Windows header on msys2.
Change very similar to the commit 9a47b344
about class PAD_SHAPE.
No actual code change
2023-07-25 09:11:55 +02:00
John Beard
0b32ae3f4b
Reinstate fp-editor-specific commit handling in fillet/chamfer tools
...
This check was omitted in the refactor of the fillet tool, and
resulted in a bug when undoing the action: the modified lines would
not be un-modified.
2023-07-23 14:48:31 +01:00
John Beard
ab55684f0b
ADDED: Add step parameter to footprint pad renumbering
...
Also includes persisting settings for next dialog invocation
and use the TransferDataFromWindow function rather than per-field
accessor methods.
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/10651
2023-07-16 15:37:12 +01:00
Jeff Young
1218f61d0a
Implement undo/redo for footprint children.
...
Our special-cases to handle the fact that we didn't do this had far
outgrown the code necessary to actually handle it.
2023-07-15 17:37:31 +01:00
Jeff Young
cf8294b5c2
Remove a bunch of blind (and a few redundant) static_casts.
2023-07-13 14:14:45 +01:00
Ian McInerney
ae60b57c3d
Add default parameter to PCB image placement action
2023-07-13 13:15:19 +01:00
Ian McInerney
e82a58a12e
Changed: Allow filling/unfilling individual zones with no selection
...
The draft fill and single zone unfill would only work if something was
selected first, this allows them to call the selection operation to
request what is under the cursor. Also properly gate the operation to
not cause crashes/issues when the selection contains non-zone items.
2023-07-12 23:00:13 +01:00
Ian McInerney
a8f628d0df
Add virtual destructor for base class
2023-07-12 19:39:15 +01:00
John Beard
09c0f713cd
Add fillet and chamfer icons
2023-07-12 19:21:47 +01:00
John Beard
a72ab9f351
Put fillet, chamfer and extend in a submenu
2023-07-12 19:21:47 +01:00
John Beard
046d978ba7
ADDED: Pcbnew chamfer and extend tools
...
Using the new ITEM_MODIFICATION_ROUTINE system, drop in two new
tools: chamfer and line extend. These are two geometric operations
that are relatively common when editing footprints in particular.
Chamfer delegates the geometric calculations to a dedicated unit
in kimath/geometry.
2023-07-12 19:21:37 +01:00
John Beard
8e0e9ce752
Generalise fillet tool
...
Describe the actions of the fillet tools is a generic way, so that the
same general pattern can be used for other tools that modify shapes on
the BOARD.
Basically, an "ITEM_MODIFICATION_ROUTINE" is defined, which is
configured and called multiple times, calling back to the EDIT_TOOL when
it modifies or creates an item.
The motivation here is to make it easier to slot in new line-based
tools like chamfer, extend and so on without having to redo the
complicated item, selection and commit handling each time, and keep the
core "routines" simple and decoupled from the EDIT_TOOL's
internals.
This also resolves #15094 because the new commit handling does the right
thing when items were "conjured up" for the fillet (e.g. when a
rectangle is decomposed into lines).
Fixes : #15094
2023-07-12 19:21:26 +01:00
Jeff Young
be63e1824e
Create filled polygons when centerline is chosen.
2023-07-12 10:41:46 +01:00
Jeff Young
c3d10084b9
ADDED footprint associations dialog.
2023-07-11 14:52:05 +01:00
Ian McInerney
aab8d2b036
Give autocomplete routing a default parameter
...
Fixes KICAD-2M4
2023-07-10 19:41:03 +01:00
jean-pierre charras
bdaad32dc8
Pcbnew: fix crash when trying to delete a DIMENSION living in a footprint
...
Fixes #15156
https://gitlab.com/kicad/code/kicad/-/issues/15156
2023-07-09 20:02:56 +02:00
StuartTylerRelytDesigns
d26aa7dc20
Pcbnew moveIndividually ctrl-M mangles 2+ tracks
...
CHANGED: moveIndividually ctrl-M not mangle tracks and add grid snapping
Fixes https://gitlab.com/kicad/code/kicad/issues/15124
2023-07-08 09:11:53 +00:00
jean-pierre charras
27072e52f7
Fix a compil and Coverity warnings
2023-07-07 10:28:01 +02:00
John Beard
ef8cf2d12b
Avoid inheriting for POSITIONING_TOOLS_MENU
...
This only uses the public interface of CONDITIONAL_MENU,
so we can just make on of those and save declaring a wrapper
type.
2023-07-06 21:11:51 +01:00
Mike Williams
efb452df37
PCB: selectionCursor can optionally take a filter list
...
Make sure we pass a default nullptr parameter if we want everything.
2023-07-06 11:25:53 -04:00
Ian McInerney
50e0a3a500
Move layer ID to action mapping to PCB_ACTIONS
...
This mapping function is better suited for a method of the actions
itself rather than just a helper function in one file.
2023-07-05 11:09:34 +01:00
Jeff Young
9ff33e5ec6
Remove BOARD_COMMIT( TOOL_MANAGER ).
...
It initializes both m_isFootprintEditor and m_isBoardEditor to false,
causing all sorts of trouble.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15072
2023-07-01 11:52:46 +01:00
Jeff Young
7ed5963b4f
Disable positioning tools when a move is in progress.
...
Also fixes a typo in EDIT_TOOL::doMoveSelection().
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15090
2023-06-30 20:37:03 +01:00
Jeff Young
773e1a1ab6
Actions with a COMMIT must be run synchronously.
...
Note that "immediate" doesn't mean quite the same thing: while it will
enter the tool immediately, it won't necessarily finish the tool during
the call if the tool has an event loop. So for something like Rotate
"immediate" and "synchronous" have the same behaviour, but for something
like Move they do not.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15085
2023-06-30 18:57:37 +01:00
Ian McInerney
30f20a694d
Give default parameter to net highlight/selection events
...
Fixes KICAD-2C7
Fixes KICAD-2C3
2023-06-29 00:17:12 +01:00
Ian McInerney
0de6fb03ba
Give updateLocalRatsnest action a default parameter
...
Fixes KICAD-2BX
2023-06-29 00:17:12 +01:00
Ian McInerney
459e6e192a
Give placeFootprint action a default nullptr parameter
...
Fixes KICAD-2BT
2023-06-29 00:17:12 +01:00
Jeff Young
1411b09178
Remove EDIT_TOOL's quasi-global BOARD_COMMIT.
...
It had several encapsulation leakage issues, as well as poorly-defined
behaviour of undo for chained-actions (append-to-board, and then rotate
while moving, for instance).
2023-06-27 17:04:18 +01:00
Ian McInerney
2fb6f19a84
Separate immediate and delayed action dispatch
...
Using a boolean argument just leads to a lot of trailing booleans in the
function calls and is not user friendly. Instead, introduce PostAction()
to send an action that runs after the coroutine (equivalent to passing
false or the default argument), and leave RunAction as the immediate
execution function.
2023-06-27 00:57:59 +01:00
Jeff Young
493828cc6b
Eradicate a bunch of calls to dyn_cast.
...
Also deletes PAD::GetParent() which fails to look for parent footprint
through groups.
2023-06-25 11:10:07 +01:00
Jeff Young
300a60e88e
Eradicate a bunch of calls to dyn_cast.
2023-06-25 11:10:05 +01:00
Jon Evans
3a0f8214fa
ADDED: Properties panel for schematic editor
...
Initial infrastructure work; follow-ons will add more
properties for schematic items.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/6351
Fixes https://gitlab.com/kicad/code/kicad/-/issues/14105
2023-06-22 22:32:24 -04:00
Ian McInerney
f14feafc6b
Convert selection vector to EDA_ITEMS for base tool call
...
The base tool expects a generic EDA_ITEMS, but the existing vector
doesn't easily cast, so add a temporary one.
2023-06-20 21:52:50 +01:00
Ian McInerney
f899d9676f
Remove unneeded parameter from tool call
2023-06-20 21:52:50 +01:00
Ian McInerney
0a3b6c2d23
Fix call to properties when editing newly placed dimension
...
The edit is intended to be on the newly placed dimension, but the actual
properties tool doesn't take an item, so it was always looking up the
item to edit using the current selection/cursor position. Make this more
robust by just calling the edit properties directly on the item.
2023-06-20 21:52:50 +01:00
Ian McInerney
3c24ddd8cc
Fix passing CLIENT_SELECTION_FILTER through the tool framework
2023-06-20 21:52:50 +01:00
Ian McInerney
480223f67c
More RunAction specialization
2023-06-20 21:52:50 +01:00
Ian McInerney
3718ecfcd8
Simplify forcing action parameters to have a specific type
2023-06-20 21:52:50 +01:00
Ian McInerney
07cc85e76c
Fix more places where casts into RunAction were happening
2023-06-20 21:52:50 +01:00
Ian McInerney
8f3d159905
Update the net highlight action to properly use the action parameters
2023-06-20 21:52:50 +01:00
Ian McInerney
8b833211b5
Add parameter to repair board action
...
The tool checks for a boolean action, so default to giving false (which
makes it run in interactive mode).
2023-06-20 21:52:50 +01:00
Ian McInerney
b04e54dbea
Switch TOOL_EVENT and TOOL_ACTION to have a std::any parameter
...
Using std::any from C++17 allows for proper type handling in the
parameter field, removing the need for casting to void* and then casting
the void* to the desired type.
2023-06-20 21:52:50 +01:00
Mike Williams
6d93950dcc
PCB: abolish TEXT_TYPE::TEXT_is_*
...
PCB_TEXT is now always what was formerly TEXT_is_DIVERS and PCB_FIELDs
now what mandatory field type they are already.
2023-06-20 18:34:52 +00:00
Mike Williams
37837dc392
PCB: introduce PCB_FIELD_T
2023-06-20 18:34:52 +00:00
Mike Williams
a859b25d2c
PCB: convert footprints to use PCB_FIELDs for fields from schematics
2023-06-20 18:34:52 +00:00
Jeff Young
30336b2fe3
Unify go-back-one-step processing for drawing tools (and router).
...
Also warps mouse on all go-back-one-step operations for better feedback.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/14981
Fixes https://gitlab.com/kicad/code/kicad/-/issues/9985
2023-06-19 17:14:32 +01:00
Jon Evans
b424dc11e1
Hotkey feedback for inactive layer display mode
2023-06-17 23:47:26 -04:00
Jeff Young
ef6866757e
Treat undo as backspace and/or escape when drawing. Ignore redo.
...
Undo == backspace when drawing a polygon or chained lines. Otherwise
it's an escape.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/14961
2023-06-16 22:08:21 +01:00
Jeff Young
9ed2458f00
Reset session drawing props after Board Setup.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/14932
2023-06-13 11:06:10 +01:00
Jeff Young
93789e75b9
Re-create missing exclusion markers if DRC was cancelled.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/14919
2023-06-11 12:14:27 +01:00
Jeff Young
96a221ceba
Refresh delete immediately; don't wait for next mouse motion.
2023-06-10 21:11:05 +01:00
Jeff Young
111d0a2c14
Check for proxy references and values in Selectable().
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/14911
2023-06-10 17:47:29 +01:00
Marek Roszko
b41606ecf7
Use the correct printf format for the move individually status text
...
Fixes sentry KICAD-1ZT
2023-06-04 21:08:13 -04:00
Wayne Stambaugh
bdee545841
Coverity warning fixes.
2023-06-03 07:28:17 -04:00
jean-pierre charras
9a47b34499
Replace PAD_SHAPE::RECT by PAD_SHAPE::RECTANGLE to avoid a collision NAME with a windows header on MSYS2, creating many compil warnings. No actual code change.
2023-06-02 12:18:24 +02:00
Jeff Young
c71cf21e2f
Use rendered text to generate bounding box for knockout text.
...
Don't open-code knockout text shape generation in several different
places.
Make sure triangulated knockout text gets clearance added when
specified.
Collapse duplicated footprint text item plot routine (they're no
longer any different from plotting pcb text items).
2023-05-28 17:20:11 +01:00
Jeff Young
14f004d2a5
Hook up text variable auto-complete for PCBNew.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/14777
2023-05-25 10:24:50 +01:00
Jeff Young
2ac3f4cc9e
Undo strategy based on being in a footprint, not footprint editor.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/14799
2023-05-23 17:56:12 +01:00
Jeff Young
8b1fd62d35
Make pad & via teardrops 1st-class citizens (props of the pad/via)
...
Change teardrop generation to rely more heavily on BOARD_CONNECTIVITY
for improved performance.
Add updating of teardrops on BOARD_COMMIT::Push().
Also converts m_CopperItemRTreeCache to std::shared_ptr.
We don't copy it around anyway, and having to create a new set
of std::unique_ptr's for each operation is likely to be more
expensive than std::shared_ptr's overhead.
2023-05-19 18:02:03 +01:00
Jeff Young
daa3a1aae9
Revert addition of update-teardrops checkbox to DRC dialog.
2023-05-11 14:53:28 +01:00
Mike Williams
04a53ea40d
Picker Tools: make sure we know what tool we are
...
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/14621
2023-05-01 12:43:09 -04:00
Jeff Young
6807ca6f9f
Allow text input to Convert to Polygon/Zone/Keepout.
...
Also fixes non-copper zone filler to honor fill keepouts.
Fixes https://gitlab.com/kicad/code/kicad/issues/14566
2023-04-28 17:43:08 +01:00
Lucas Dumont
c781fde236
pcbnew: don't move twice
...
In pcbnew, if you press M to move your selection and press M again, then escape, you will trigger the https://gitlab.com/kicad/code/kicad/-/blob/master/common/tool/tools_holder.cpp#L106 assert
2023-04-26 15:37:18 +00:00
jean-pierre charras
2f392352b5
EDIT_TOOL::doMoveSelection(): avoid calling PushTool() and, just after,PopTool()
...
for the *same* event: TOOLS_HOLDER::PopTool() does not work fine in this case.
2023-04-26 13:00:50 +02:00
jean-pierre charras
d4cf063e40
Fix a few more doxygen errors (no actual code change)
2023-04-19 20:24:42 +02:00
Nimish Telang
51e55dd750
Convert sprintf to snprintf in most files
2023-04-17 15:39:34 +00:00
Jeff Young
2d15067453
ADDED allow update of teardrops before running DRC.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/14264
2023-04-15 12:18:41 +01:00
Jeff Young
521aa5b5ae
Update DRC exclusions model to match terminology.
...
DRC exclusions were originally written following the C++
pragma model (ie: allow this violation here). However, the
"exclusion" terminology we used in the GUI suggests a model
model where the exclusions go away when the violation no
longer exists.
Fixes https://gitlab.com/kicad/code/kicad/issues/14351
2023-04-15 12:18:41 +01:00
Jeff Young
e1c9e0e6fc
ADDED memberOfFootprint() to DRC custom rules functions.
...
Also added memberOfGroup(), and deprecated memberOf().
2023-04-12 14:06:09 +01:00
Jeff Young
a9b2234f4e
Use a softer Reset for grid settings.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/14458
2023-04-04 17:05:21 +01:00
Jeff Young
77639a540b
Add messages for clearance reports on footprints.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/13874
2023-04-02 19:12:19 +01:00
Jeff Young
28028c941e
Retire Local/Draw coords distinction from PAD (the last object to have it).
2023-04-02 18:02:41 +01:00
jean-pierre charras
054de5687c
Pcbnew: fix crash when trying to delete a PCB_TEXT.
2023-04-02 12:15:18 +02:00
Jeff Young
bbd6c80507
Collapse FP_* down into their PCB_* equivalents.
2023-03-31 22:57:46 +01:00
jean-pierre charras
683a327200
Footprint editor: always export the currently loaded footprint.
...
Previously, it was not always the edited footprint, but a footprint
selected from the library tree.
It was especially annoying when the footprint was loaded from the board editor:
The footprint was not the loaded footprint, but its copy from library.
2023-03-29 18:47:39 +02:00
Jeff Young
a214ac0310
Better reporting of copper <--> keepout area clearances.
...
(Keepout areas can keep-out copper, but they don't have a clearance
to copper.)
Fixes https://gitlab.com/kicad/code/kicad/issues/14375
2023-03-26 20:57:59 +01:00
Jeff Young
bb2a0f825a
Orthogonal dimension are always cardinal, even when their start points are not.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/13728
2023-03-20 21:22:11 +00:00
Jeff Young
897984aa22
Filter Selected Items... is inclusive, not exclusive.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/14273
2023-03-19 20:43:18 +00:00
Jeff Young
ad5d3d4eba
Clean up items which weren't pasted from clipboard.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/14335
2023-03-17 23:17:15 +00:00
Alex
8fe78101db
Don't create 0-length tracks when placing via in the middle of a track.
2023-03-16 04:53:26 +03:00
Jeff Young
37b0a5a504
Add quick DRC action for Diff Footprints.
...
Also makes the strings match the GUI better so people will know where
to find them later.
And fixes a couple of ERC items that referred to Board Setup (oops).
2023-03-14 11:52:23 +00:00
Jeff Young
a0adb59437
Update dimension units when opening PCBs in CLI.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/14170
2023-03-13 20:26:11 +00:00
Wayne Stambaugh
66f6168163
Fix mode-less dialog issues.
...
Don't assume the dialog is mode-less and call Destroy() from within a
dialog method. This will most assuredly crash if the dialog is shown
modally or quasi-modally.
Don't leak memory for mode-less dialogs created on the stack. Make sure
when the parent frame window is closed that all mode-less dialog memory
is cleaned up. Dialogs are not child windows like controls and toolbars
so their memory does not automatically get cleaned up when the parent
window is destroyed.
Do not directly access frame parent window's pointer in dialog destructors.
Apparently the tear down order when destroying mode-less dialogs is not
guaranteed so the parent window may get deleted before the dialog causing
a crash when accessing the parent window pointer from the dialog dtor.
Do not close mode-less dialogs in the parent frame's destructor. This
doesn't guarantee that the dialog(s) will be destroyed before the parent
but it may reduce some careless mode-less dialog event handling in the
future.
2023-03-13 12:04:01 -04:00
Jeff Young
74f064d3aa
Don't keep smart pointers to wxWindows, particularly modeless ones.
...
wxWindows have their own lifecycle management.
2023-03-11 19:36:01 +00:00
Jeff Young
9546a40662
Correct usage of elipses after menu items.
...
(They should only be used when we collect more info before performing
the command. If the command is something like showing the simulator,
then there should be no elipsis as we don't collect more info before
showing the window.)
Also improves a few of the menu tooltips.
2023-03-10 21:33:06 +00:00
Jeff Young
357427d803
Graphical diff for board vs library footprints.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/13736
2023-03-10 17:16:40 +00:00
Jeff Young
bc0d59801a
Graphical diff for schematic vs library symbols.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/13736
2023-03-09 18:04:52 +00:00
Jeff Young
2d6ab62da4
ADDED: schematic/library diff for symbols.
2023-03-09 18:04:52 +00:00
Jeff Young
25623552f6
ADDED: board/library inspection for footprint differences.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/13736
2023-03-06 23:08:59 +00:00
Jeff Young
c54c254f96
Don't allow footprint editor pad tools to run outside footprint editor.
...
(They can get called if a user re-assigns hotkeys to them.)
Fixes https://gitlab.com/kicad/code/kicad/issues/14166
2023-03-06 14:43:57 +00:00
Jeff Young
461def2719
Move automatic dimension processing inside PCB_DIMENSION_BASE.
...
Also move dimension precision to an enum so it can get a proper dropdown
in the properties inspector.
2023-03-05 15:19:06 +00:00
Jeff Young
23accffc6d
Add Property Inspector support for dimension objects.
...
Includes changing the class hierarchy so that dimension objects inherit
from PCB_TEXT rather than containing a PCB_TEXT member variable.
2023-03-04 23:16:46 +00:00
Wayne Stambaugh
789bf6455a
Coverity fixes and code cleaning.
2023-03-02 09:04:47 -05:00
Seth Hillbrand
1b8b216ac8
Bitmaps are not actually copper
...
We report bitmaps as being 'on' a copper layer because they are
associated with it but they are not actually physical parts so should
not be included in the DRC checks
Additionally, Bitmaps effective shape starts are the top left corner
rather than the center (unclear why that was there in the first place)
Fixes https://gitlab.com/kicad/code/kicad/issues/14065
2023-02-23 14:16:28 -08:00
Marek Roszko
aacc9746e3
Yeet the last of wxSize/wxPoint to stop leaking gdicmn everywhere
2023-02-18 22:57:18 -05:00
Jon Evans
f7d59f2e89
Enable properties panel in footprint editor
2023-02-17 20:35:56 -05:00
Alex
ecb28ddf1c
Prevent ghost image after canceling bitmap placement.
2023-02-17 03:53:44 +03:00
Jeff Young
978c2b074e
Negative clearance means test will be ignored, not rule.
2023-02-16 17:39:47 +00:00
Mike Williams
4b07e3e413
Common Actions: Find Previous
...
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/8968
2023-02-14 08:21:37 -05:00
Mike Williams
3e715c99c8
Swap: take S key now that it's available
2023-02-14 07:42:06 -05:00
Jeff Young
499b58f505
ADDED: user-specified gap and linewidth for bounding hull creation.
2023-02-12 23:16:45 +00:00
Marek Roszko
4665823089
Turn on and fix MSVC compliance mode issues
...
We want /permissive- to enable debug performance improvements in MSVC 17.5+.
This flag is also default under C++20 so we'll have to deal with these compile issues anyway at some point in the future.
In particular, MSVC becomes pedantic about ternary types.
See https://learn.microsoft.com/en-us/cpp/build/reference/permissive-standards-conformance?view=msvc-170#ambiguous-conditional-operator-arguments
MSFT cites https://cplusplus.github.io/CWG/issues/1805.html
2023-02-12 16:30:37 -05:00
Jeff Young
362d85ef50
Special selection mode when in high-contrast with courtyard layer active.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/13521
2023-02-11 21:11:07 +00:00
Jon Evans
b888714ed5
Don't discard temporary item being placed if placement is rejected
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/13697
2023-02-11 08:40:33 -05:00
jean-pierre charras
538ee12188
Pcb editor: fix crash when trying to activate the "place anchor" tool.
...
"place anchor" tool exists only in the Fp editor. However, the hotkey
to activate this tool was also active in the board editor. Now disabled.
2023-02-09 16:29:33 +01:00
jean-pierre charras
fcefb5f86d
Re-allows selection of bitmaps not owned by a footprint.
...
It was broken by my commit f8051d95
Fixes #13747
https://gitlab.com/kicad/code/kicad/issues/13747
2023-02-02 18:09:37 +01:00
jean-pierre charras
f8051d954a
Better handling of PCB_BITMAP items in a footprint.
...
- Ensure they can be erased in the FP editor
- Ensure they cannot be selected in the PCB editor (they are not show)
Fixes #13714
https://gitlab.com/kicad/code/kicad/issues/
2023-01-31 11:16:38 +01:00
Chris Morgan
ce06171561
Convert additional sprintf to snprintf
2023-01-30 16:22:03 +00:00
Jeff Young
b1018e8eeb
Relax no-zone-commands constraint on interactive placer tools.
...
These tools are initialized with an item (via/pad/microwave) so there's
no way to tell between during-placement and idle. Besides, they don't
update the ratsnest so they probably won't fall afoul of the original bug
(https://gitlab.com/kicad/code/kicad/-/issues/12736 ).
Fixes https://gitlab.com/kicad/code/kicad/issues/13686
2023-01-28 10:42:24 +00:00
Alex
52edbf91dc
Better synchronization of various ratsnest visibility controls.
2023-01-27 10:01:12 +03:00
jean-pierre charras
b2f6c13b6a
Fp editor and Fp viewer: fix missing info on msg panel after loading a fp
...
Fix also duplicate/not used code
Fixes #11404
https://gitlab.com/kicad/code/kicad/issues/11404
2023-01-25 17:47:04 +01:00
Mike Williams
b8352b07c5
PCB: Immediate mode copy should deselect if hover selecting
2023-01-19 09:45:47 -05:00
Jeff Young
f45d44a639
Don't leave temp footprints attached to a board.
2023-01-18 00:46:59 +00:00
Jeff Young
f0b2902b8c
Don't allow quit while zone filler is running.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/13551
2023-01-16 16:01:45 +00:00
Jeff Young
91c5bb9175
Block user-initiated zone-fill actions, but not system ones.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/13536
2023-01-15 19:16:36 +00:00
Jon Evans
c530bdb5a1
Rename GetSelectMenuText to GetItemDescription
...
This descriptive text is used for many more things than
just the select menu these days.
2023-01-11 22:27:44 -05:00
Jeff Young
2cbb66d70d
Dim other pads when in pad edit mode.
2023-01-06 11:13:57 +00:00
Jon Evans
1ccd387c8d
Exit a group when selecting a component outside it
...
We had this filter in place when doing mouse selection, but not when
the selection comes from another tool event.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/13398
2023-01-05 20:32:52 -05:00
Seth Hillbrand
126225866b
Don't add footprint components to PCB group
...
Footprint components are only group-able inside of the footprint editor
Fixes https://gitlab.com/kicad/code/kicad/issues/13396
2023-01-05 15:38:07 -08:00
qu1ck
7dfa100ff0
Correctly refresh the board after action plugin run and maintain
...
selection
2023-01-05 14:05:15 -08:00
Jeff Young
cbe5340d37
Allow pads in multi-select mode when nothing else would be selected.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/13371
2023-01-05 17:02:50 +00:00
Jeff Young
67e6603699
Move updateUnits functionality to where it can be shared.
...
Also call it when adding a footprint via the chooser.
Fixes https://gitlab.com/kicad/code/kicad/issues/13340
2023-01-02 22:12:26 +00:00
jean-pierre charras
07b4f88e6b
Pcbnew: Fillet Lines tool does not set line width and layer.
...
When fillet a polygon or a rect, the resulting lines and arcs had incorrect
width and layer.
Fixes #13338
https://gitlab.com/kicad/code/kicad/issues/13338
2023-01-02 16:52:08 +01:00
Jeff Young
20f2232d4e
Adjust dimension units when placing footprints on board.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/13339
2023-01-02 12:39:35 +00:00
jean-pierre charras
e8114dc49a
Minor compil and Coverity warnings fixes.
2023-01-02 10:21:42 +01:00
jean-pierre charras
16fd586c41
Do not prune items/layers when copying the clipboard to the FP editor: all are allowed
...
(Some are disabled only for GUI)
Fixes #13334
https://gitlab.com/kicad/code/kicad/issues/13334
2023-01-01 13:35:05 +01:00
Jeff Young
4c63b4e061
Class name <-> file name sync.
2022-12-29 18:05:57 +00:00
Mike Williams
4bb1b4a3d2
Router: settings dialog fixes
...
Make keyboard activation of OK save settings instead of cancelling.
Also, fix the string for the shortcut so that it works (shortcut
unchanged).
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/13303
2022-12-29 10:31:12 -05:00
Greg Davill
3b55f9e326
PCB Editor: Inform tools when selecting/unselecting net
...
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/13308
2022-12-29 13:46:20 +00:00
Mike Williams
411efe6f3d
PCB Editor: Allow mouse drag of group-of-groups
...
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/13076
2022-12-28 15:23:52 -05:00
Mike Williams
741d1e043a
PCB Editor: make Mirror menu items conditional
...
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/13230
2022-12-27 14:18:47 -05:00
Jon Evans
ee0a41e3bc
Remove excess calls to SelectedItemsModified
...
We really don't want to post these events unless the *selected* items
were actually modified, since it results in a redraw of the properties
panel (which disturbs edit state and causes flicker on MSW).
Now the COMMIT system is responsible for sending this event iff the
commit touches items that are selected.
Side note: UpdateMsgPanel is useless on every app except pl_editor, so
it can probably be refactored/removed at some point.
2022-12-26 20:57:58 -05:00
Jeff Young
1f3727f548
Assigning a netclass has no meaning in fp editor.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/13267
2022-12-26 20:33:04 +00:00
Jeff Young
5dce8323e8
KIGFX::REPAINT is not enough if the item isn't in the view.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/11656
Fixes https://gitlab.com/kicad/code/kicad/issues/13217
2022-12-24 17:18:22 +00:00
Seth Hillbrand
1cc9792cdb
Fix snapping dist when disabling grid
...
The disable grid hotkey should allow the snap scale to be completely
determined by the snapSize and world scale. This prevents snapRange
from overriding in the case where grid is disabled.
Additionally, we disallow grid snapping when the grid scale is not
visible. This means that when zoomed out sufficiently to not show the
minor ticks, these minor ticks will not override a snap
Fixes https://gitlab.com/kicad/code/kicad/issues/12303
2022-12-21 17:47:45 -08:00
Mike Williams
47dc2379d8
PCB: Fix issues with grab unconnected
...
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/13232
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/13233
2022-12-21 15:10:19 -05:00
Alex
75053cfc57
Remove normally unused code from Move function.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/13222
2022-12-21 19:06:32 +03:00
Mike Williams
5d94d2634e
PCB Editor: make locking menu items conditional
...
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/5202
2022-12-21 10:34:54 -05:00
jean-pierre charras
44ab6876d9
fp editor: remove useless "Unroute Selected" from context menu.
...
Fixes #13229
https://gitlab.com/kicad/code/kicad/issues/13229
2022-12-21 13:11:51 +01:00
Mike Williams
bd24e85289
PCB: Add Copy With Reference to the Positioning Menu
...
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/11947
2022-12-20 11:54:05 -05:00
Jeff Young
5327ea5823
Respect selectabiltiy when adding wholy-selected groups.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/13092
2022-12-15 17:57:58 +00:00
Seth Hillbrand
279edcefdc
Don't break tracks without snap
...
If the user asks to not snap to a track, we should also prevent the
track from snapping to the via
Fixes https://gitlab.com/kicad/code/kicad/issues/13142
2022-12-14 13:51:42 -08:00
Jeff Young
9d13e419c2
Reduce compiler warnings.
2022-12-13 00:47:19 +00:00
Seth Hillbrand
4fe35d0df1
More push/pop tool issues
...
We need to pop the move tool off when it doesn't find anything to act on
so that the pushed tools under it on the stack can re-activate
Fixes https://gitlab.com/kicad/code/kicad/issues/13114
2022-12-12 12:56:35 -08:00
jean-pierre charras
96a9ec4a0c
Enhance compatibility with V6.0 for Intersheetrefs fields associated to GLOBAL labels.
...
In V6.0, the identifier is "Intersheet References" and was not immediately
seen as Intersheetrefs field.
2022-12-12 16:38:04 +01:00
Jeff Young
45eae3e594
Don't Simplify() polys with arcs in them.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/13134
2022-12-12 12:54:34 +00:00
Alex
5e8227b54a
pcbnew: Support dragging arc center in "Keep endpoints" mode.
2022-12-12 13:00:44 +03:00
Alex
3eb31befed
Fix a delay when dragging arc endpoints in pcbnew.
2022-12-12 09:39:56 +03:00
Alex
da1e5a80a8
Restore removeCorner transition in PCB editor.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/13133
2022-12-12 07:04:20 +03:00
Alex
b01d950071
Remove start pt when collinear with neighboring pts in zone/poly draw.
2022-12-10 06:21:54 +03:00
Alex
b4b25a7009
Fix Pack & Move footprints when working with groups.
2022-12-09 20:42:35 +03:00
Alex
c1f82d0c80
Canceling Move cancels Pack too in Pack & Move footprints.
2022-12-09 20:41:56 +03:00
Alex
3d2b1aaf90
Improve H/V/45 deg mode when drawing zones and polygons.
2022-12-09 19:11:56 +03:00
Mike Williams
0e75bf02fa
Selection: refactor modifier checking
2022-12-08 14:12:12 -05:00
Alex
6d513e7ecf
Expose changing arc edit mode in arc button context menu and Preferences
...
Ctrl+Space can still be used to cycle through modes.
Fixes https://gitlab.com/kicad/code/kicad/issues/5412
2022-12-05 21:28:16 +03:00
Graham Keeth
ef83d01455
Minor string changes: "eeschema" / "pcbnew" in tooltips, and power port terminology
2022-12-04 14:29:57 +00:00
Jeff Young
96819f6c01
Better cache invalidation for text objects with references.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/13059
2022-12-04 11:51:44 +00:00
Jon Evans
0bc06d506c
Properties: reselect after canceled move
2022-12-02 21:40:21 -05:00
jean-pierre charras
93c631af44
drawing_stackup_table_tool: fix incorrect color of dielectric sublayers.
...
when a dielectric has sublayers, the printed color was always the main layer color.
2022-12-02 10:41:20 +01:00
Jeff Young
20791c99ac
Allow conversion of single track segments and vias.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/13047
2022-12-01 17:15:29 +00:00
Jeff Young
6befa1c57e
A bit of cleanup to recent convert tool changes.
2022-12-01 14:53:13 +00:00
Jeff Young
4d8e73a630
Allow tracks as input to bounding hull generation.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/13047
2022-12-01 14:53:13 +00:00
Seth Hillbrand
b31349b679
Get consistent point for gfx import
...
TopLeftItem() should always return same element for our import
Fixes https://gitlab.com/kicad/code/kicad/issues/13041
2022-11-30 12:25:34 -08:00
Seth Hillbrand
cf33f33899
Standardize placement tool modifiers
...
PlaceImage, PlaceImportedGraphics and PlaceText need to handle the grid
and hotpoint snapping as well as the modifiers to disable them
2022-11-30 10:57:42 -08:00
Jeff Young
3c4c4e5166
Remove shortened debug time from zone refill message.
...
Also adds a time-out for it.
2022-11-30 17:38:02 +00:00
Jeff Young
074c087c21
Allow disabling of grid snapping while placing imported image.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/13040
2022-11-30 14:38:22 +00:00
Jeff Young
98ab078905
Remember conversion strategy.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/13043
2022-11-30 14:29:16 +00:00
Mike Williams
17bb57cc73
PCB: fix stale ratsnest between moves in Move Individually
2022-11-30 09:11:37 -05:00
Jeff Young
8dbd6fee00
Go back to smaller chaining epsilon.
...
Using a large epsilon here to allow for sloppy drawing can cause
the algorithm to miss very short segments in a converted bezier.
So use an epsilon only large enough to cover for rouding errors in
the conversion.
Fixes https://gitlab.com/kicad/code/kicad/issues/12951
2022-11-30 13:26:45 +00:00
Jeff Young
19eab62516
More safety around ratsnest state.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/13011
2022-11-30 13:00:21 +00:00
Jeff Young
9fa8b9e49f
Fix memory leak and re-code non-memory-leak so Coverity can understand it.
2022-11-30 13:00:20 +00:00
Alex
8c468dcffc
Use ecoords for distance comparison in PCB grid helper.
...
Fixes a bug where a cursor would jump to a far location while hovering
over some 45-degree tracks.
2022-11-30 08:18:19 +03:00
Jon Evans
41ca2789a6
Get rid of shadowing warning
2022-11-29 18:12:39 -05:00
Jeff Young
abd818a426
Update msgpanel after entering or exiting group.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/13031
2022-11-29 21:33:04 +00:00
Jeff Young
31eb91e9e5
Infobar for slow zone auto-refill.
2022-11-29 21:09:16 +00:00
Jeff Young
b6bd74d822
Replace single zone fill under "draft" terminology.
...
Also sets Autofill Zones to default to on.
2022-11-29 18:13:36 +00:00
Mike Williams
ad6ef35c9f
PCB: Add skip action to Move Individually
2022-11-29 15:42:03 +00:00
Jeff Young
b2177718a1
Tighten up refresh logic for net & netclass references.
...
Also tightens it up a bit for text variables which can reference things
like netnames and netclasses, but also board settings.
Fixes https://gitlab.com/kicad/code/kicad/issues/13032
2022-11-29 15:18:36 +00:00
Jeff Young
8165fc6c44
Give up trying to infer what kind of polygon the user wants.
...
In many instances there are 3 valid answers: mimic linewidths, use
centerlines, and build a bounding hull.
Fixes https://gitlab.com/kicad/code/kicad/issues/12950
2022-11-28 22:12:53 +00:00
Mike Williams
4a4fab78a3
PCB: allow swap while moving
2022-11-28 14:16:08 -05:00
Mike Williams
3042633f4a
PCB: block unroute and move individually when already moving
2022-11-28 14:16:08 -05:00
Jon Evans
64f315c649
Move properties panel to widgets with the other AUI panels
2022-11-27 22:40:23 -05:00
Jeff Young
ec9c6a8053
Separate creation of polygons for open and closed shapes.
...
This allows us to create a bounding hull from an open shape-line-chain,
which is useful for defining milled slots.
2022-11-27 18:29:41 +00:00
Jon Evans
8c7691fbc3
Harmonize on "Manager" for now, since we use that in the docs
2022-11-25 09:13:23 -05:00
Jon Evans
bbea5b3fbc
Save and restore properties and search panel sizes
2022-11-25 09:11:30 -05:00
Seth Hillbrand
47d86e5d9e
Don't crash when canceling graphics import
...
Grouped graphics need to have their group removed from the preview
before deleting the elements to avoid reading freed memory when
redrawing
2022-11-23 16:21:06 -08:00
Jeff Young
8b1ffca7fa
Better reporting of nets and netclasses.
2022-11-22 14:54:08 +00:00
Jeff Young
97fd99ec99
Re-resolve netclasses after assigning netclass to pattern.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/12965
2022-11-22 14:54:08 +00:00
Jeff Young
226529235c
Mostly const safety, but also performance opt. by avoiding shared_ptr overhead.
2022-11-22 12:21:30 +00:00
Seth Hillbrand
3b31955d98
Get hit test in group members
...
Fixes https://gitlab.com/kicad/code/kicad/issues/12957
2022-11-21 09:28:49 -08:00
Seth Hillbrand
01138a2e19
Fix fillet action for lines
...
Generalize fillet action behavior to all straight lines in pcbnew
Fixes https://gitlab.com/kicad/code/kicad/issues/4742
2022-11-21 07:01:14 -08:00
Jeff Young
c1510f07d8
Fix some issues with group bounding boxes.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/12958
2022-11-20 23:57:36 +00:00
Jeff Young
0120df014e
Give group the right parent when pasting.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/12954
2022-11-20 22:52:06 +00:00
Alex
12a55f20d3
Fix a mistake in grip margin.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/12952
2022-11-21 00:25:19 +05:00
Alex
dd2f19ca5f
Allow router cursor snapping to points on the arc.
...
Also don't disable grid snapping when holding Shift over arcs.
2022-11-20 16:56:25 +05:00
Alex
110bc6abd1
Fix router cursor glitching on H/V track segments.
...
Also don't disable grid snapping when holding Shift over tracks.
2022-11-20 16:56:25 +05:00
Alex
38fd1c9985
pcbnew: Improve performance when something is selected.
2022-11-19 01:53:30 +05:00
Jeff Young
c409646aad
Update message panel after rebuilding connectivity.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/10122
2022-11-18 15:29:16 +00:00
Jeff Young
bba6d503d4
Don't keep value of user or grid anchors between invocations.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/12065
2022-11-17 00:51:52 +00:00
Jeff Young
cefc5268ab
Allow pads in selection and filter them for free-pads later.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/12912
2022-11-16 18:37:40 +00:00
Jeff Young
9724f6e736
Don't allow zone filling during other editing operations.
...
It's a very heavy op, and is likely to violate all manner of
assumptions the other ops make.
Fixes https://gitlab.com/kicad/code/kicad/issues/12736
2022-11-14 23:39:49 +00:00
jean-pierre charras
f51db4e093
Fix some Coverity and compil warnings.
2022-11-14 09:02:40 +01:00
Jeff Young
9d8fdd8d53
Fire selection events from SelectAll().
...
Fixes https://gitlab.com/kicad/code/kicad/issues/12896
2022-11-13 22:59:21 +00:00