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
Jeff Young
7089e99f4b
Integrate move individually into move algo so other commands don't choke.
...
Also adds commands to cancel and finish move individually.
Fixes https://gitlab.com/kicad/code/kicad/issues/12750
Fixes https://gitlab.com/kicad/code/kicad/issues/12749
2022-11-13 13:18:42 +00:00
jean-pierre charras
248181e62d
Fix Coverity and compil warnings.
2022-11-12 16:02:24 +01:00
Jeff Young
d9987e9569
Orig_items will have been invalidated by Revert.
...
Don't use it to rebuild the selection. Use the board_item flags instead.
Fixes https://gitlab.com/kicad/code/kicad/issues/12882
2022-11-11 22:57:38 +00:00
Jeff Young
138f835672
Retire group bbox cache.
...
It's too hard to maintain when changes to other items (the groups
members) affect it.
2022-11-11 20:31:31 +00:00
Jeff Young
3fc727bb91
Clear selection before deleting objects during conversion.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/12879
2022-11-11 17:53:01 +00:00
Jeff Young
03ba14c6d3
Tighten lifecycle management of parent group pointers.
...
Also adds some debugging to try to catch dangling pointers.
Also adds a cache for group bounding boxes (which will be expensive
to calculate for large groups).
Fixes https://gitlab.com/kicad/code/kicad/issues/12875
2022-11-11 17:27:28 +00:00
Alex
0b4fc8f50d
Fix bugs in PCB arc editing.
2022-11-11 15:00:36 +05:00
Alex
46d4861187
Use the 45-degree limit button to apply alternative constraint.
2022-11-11 15:00:36 +05:00
Alex
8b0f3f1ee7
Set keeping the center as the default arc editing mode.
2022-11-11 15:00:36 +05:00
Jeff Young
3f63f9fc57
Don't prune inner layers of through-hole parts.
...
For historical reasons we've always included ALL inner layers in these
items and changing that has uncovered several latent bugs. Rather
than find all the rest this late in the game, I went back to storing
all inner layers, even those the board doesn't currently have.
Fixes https://gitlab.com/kicad/code/kicad/issues/12863
2022-11-09 15:58:14 +00:00
Jeff Young
4066850f37
Use event point to determine if we're still in draggable item.
2022-11-09 13:09:01 +00:00
Seth Hillbrand
056f45cd70
Fixup most intersecting polygon points
...
Remaining is the intersecting complex pad, so this keeps the error
message when drawing
Fixes https://gitlab.com/kicad/code/kicad/issues/12806
2022-11-08 16:05:04 -08:00
Jeff Young
2cfe78170c
Honour selection filter when picking move anchors.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/12773
2022-11-08 16:27:18 +00:00
jean-pierre charras
cb3d215b6a
Fix compil and Coverity warnings.
2022-11-08 11:53:13 +01:00
Jeff Young
be8bbcaac3
Send Selected event even if the result is an empty selection.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/12849
2022-11-07 19:47:51 +00:00
Jeff Young
b5f62da5d9
Respect synthetic layer visibility when selecting footprint texts.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/12850
2022-11-07 19:26:14 +00:00
Jeff Young
ae741b93e6
Resore push/pop-less PickerTool.
...
(Functionality was accidentallly lost when we removed the opt command
strings.)
2022-11-07 19:11:12 +00:00
dsa-t
0b3ecdd968
Revert "Fix handling of self-intersecting polygons"
...
This reverts commit ed309e20da
2022-11-07 09:41:56 +00:00
Jon Evans
dd94b2d3a7
Rename PROPERTIES to STRING_UTF8_MAP for clarity
...
This class has nothing to do with the properties system
2022-11-06 11:51:52 -05:00
Jeff Young
bb618f2d55
Update pointEditor after cancelled move.
2022-11-05 16:50:54 +00:00
Seth Hillbrand
8bc9d456c3
Fix area selection calculation
...
area was a double value for comparison of large numbers. But the
promotion from int happened after the multiplication (and overflow) for
large images
Fixes https://gitlab.com/kicad/code/kicad/issues/12821
2022-11-03 11:46:40 -07:00
Seth Hillbrand
ed309e20da
Fix handling of self-intersecting polygons
...
We allow temporary self-intersection but before committing, we reduce
the polygon to a single outline (optionally with holes)
Fixes https://gitlab.com/kicad/code/kicad/issues/12806
2022-11-01 13:09:11 -07:00
Seth Hillbrand
c7c4439027
Allow bezier->line/poly conversion
...
Fixes https://gitlab.com/kicad/code/kicad/issues/12778
2022-10-31 12:48:53 -07:00
Jeff Young
3b3e6de515
Disable mirror commands when a single footprint is selected.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/12752
2022-10-28 19:20:24 +01:00
Wayne Stambaugh
6a0db3e7e2
Fix Coverity warnings.
2022-10-26 14:39:44 -04:00
Jon Evans
960c92634f
Improve logic of Position Relative tool
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/12672
(cherry picked from commit 2d2912c23d
)
2022-10-24 18:47:38 -04:00
Jeff Young
d16b23d16e
Name shortening and line-break reduction.
2022-10-21 18:41:39 +01:00
Jeff Young
e3842514e7
Move courtyard collision setting to preferences.
...
Also cleans up PCBNew/FPEditor edit options panel to be more in sync
with each other.
2022-10-19 11:33:11 +01:00
Jeff Young
403cc50e7c
Don't exit group when the cancel went to another tool.
...
Also fixes a bug where the group border didn't get updated immediately
on enter/exit.
Fixes https://gitlab.com/kicad/code/kicad/issues/12669
2022-10-18 17:53:06 +01:00
Jeff Young
4633d251a5
Remove single-zone-fill and unfill.
...
These are incompatible with our zone-priority-based algorithms.
2022-10-18 13:45:28 +01:00
Wayne Stambaugh
598b09821a
Coverity fixes.
2022-10-17 15:30:20 -04:00
Jeff Young
46752499df
We need both a tool-oriented delete and one that doesn't push/pop, etc.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/12600
2022-10-17 13:21:07 +01:00
Jeff Young
e9f8454a67
No DRC engine in footprint editor.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/12658
2022-10-16 18:39:37 +01:00
Jeff Young
4af98827fd
Revert change for 11299, and update removed-pad items after zone fills.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/12645
2022-10-15 16:06:57 +01:00
Seth Hillbrand
697056fa7e
Correctly sort positions for default align
...
When not aligning under mouse cursor, choose the X-most element where X
is top/bottom/left/right. Previous sorting was not correct for two
directions
Fixes https://gitlab.com/kicad/code/kicad/issues/12627
2022-10-14 16:15:06 -07:00
Jeff Young
de5980b92e
Share more of the courtyard collision highlighting code.
2022-10-14 10:42:07 +01:00
Jeff Young
11dc5424cb
Pull interactive courtyard checker out of move tool to share with router.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/12594
2022-10-14 00:48:37 +01:00
Jeff Young
8f1b4a9c03
Include cleanup.
2022-10-13 23:15:41 +01:00
Jeff Young
8b9cbd5805
Don't reset editPad if it still exists after model reset.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/12630
2022-10-13 00:07:30 +01:00
jean-pierre charras
d0d625dcb5
BOARD_INSPECTION_TOOL::LocalRatsnestTool(): set a suitable cursor when activated.
2022-10-12 15:56:41 +02:00
Jeff Young
83310659fd
Basic geometry: R != D.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/12601
2022-10-10 19:18:37 +01:00
Jeff Young
8470b178cd
Use actual pad shapes or built outline instead of effective shpaes for anchors.
...
The effective shapes don't work very well in the custom pad or rounded
rectangle cases, and they're somewhat slower in some of the other cases.
Fixes https://gitlab.com/kicad/code/kicad/issues/12601
2022-10-10 18:11:32 +01:00
Jeff Young
79dabdd484
Fix typo.
2022-10-07 23:52:47 +01:00
Jeff Young
04fec5016b
Add keepout zones set to keepout footprints to footprint courtyard checker.
...
(This is for the move tool, not DRC. DRC uses more sophisticated keepout
processing which is too slow for the move tool, and doesn't let us know which
keepout area collided for collision highlighting.)
Fixes https://gitlab.com/kicad/code/kicad/issues/12594
2022-10-07 22:23:37 +01:00
Alex
165654f114
Expose Switch Arc Posture in context menu.
2022-10-07 08:28:13 +03:00
Alex
d26b59a0bf
Improve arc construction using angles from arc geometry manager.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/11713
2022-10-07 06:51:00 +03:00
Alex
22917860ef
Move Enter Group for easier access.
2022-10-07 03:03:33 +03:00
aris-kimi
f818f3a445
Fix footprint rule and zone area anchors
...
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/12575
2022-10-06 15:29:18 +00:00
Jeff Young
436d75e7f9
Try to reconcile SELECTION and BRIGHTENED use of overlay.
...
For some reason the overlay doesn't get redrawn during the PCBNew
selection disambiguation menu, so we need to not hide BRIGHTENED
items.
Fixes https://gitlab.com/kicad/code/kicad/issues/12547
2022-10-04 17:01:56 +01:00
Jeff Young
524a43f95e
Don't select footprints on the wrong side if not visible.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/12483
2022-10-04 13:22:06 +01:00
Jeff Young
ba630971af
Possible fix for move/esc/esc crash.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/12553
2022-09-30 23:05:55 +01:00
Jeff Young
6a6ef9b1f4
Bring adding-to-group and hiding in sync.
2022-09-30 16:45:00 +01:00
Mike Williams
c1da59b560
Swap: disallow swapping tracks / wires
...
Also fix missed shortcut change for S -> Shift-S
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/12538
2022-09-29 17:04:43 -04:00
Jeff Young
d67437a2aa
Move ratsnest exclusion processing to a post-pass.
...
Also fixes a few cases where we were unnecessarily rebuilding
connectivity more than once for an operation.
2022-09-29 17:08:49 +01:00
Seth Hillbrand
9894acea76
Spelling
2022-09-28 17:09:43 -07:00
Alex
4095172259
ADDED: Pack and Move Footprints, improved footprint spread algorithm.
2022-09-28 13:37:23 +00:00
Jeff Young
3a7068b346
Iterate on a copy of the selection since we're going to delete from it.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/12484
2022-09-27 23:54:19 +01:00
Mike Williams
700edb95e3
PCB Actions: Grab Unconnected
...
Grabs the nearest unconnected item for each selected footprint/pad.
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/1986
2022-09-26 16:17:41 -04:00
Mike Williams
f4a3062684
PCB: Select Unconnected
...
Selects the all unconnected items for each selected routable item.
2022-09-26 16:17:41 -04:00
Mike Williams
e66393c4dd
PCB Tools: Move Individually
...
Allows moving a selection of components one by one.
2022-09-26 16:17:41 -04:00
Marek Roszko
2490ad1458
Fix search panel not remembering visibility
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/12494
2022-09-25 11:56:41 -04:00