Mark Roszko
b00178adb3
Nuke base_units from orbit
2022-09-16 04:38:10 +00:00
Mike Williams
de6e368ac6
PCB: Swap Tool
2022-09-12 09:39:43 -04:00
Jeff Young
9cf3c529d3
Apply the same accuracy band to connectivity as we use for hittesting.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/10745
2022-09-09 21:42:21 +01:00
Jeff Young
98e760da93
Coverity-suggested improvements.
2022-09-09 13:41:13 +01:00
Jeff Young
2743fd583f
More improvements to drag tool selection disambiguation.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/10745
2022-09-08 23:43:07 +01:00
Jeff Young
a619ef9d53
Improve drop-a-knee-selection-to-a-single-segment algorithm.
...
In particular, don't rely on there being only two items in the
collector at the start.
Fixes https://gitlab.com/kicad/code/kicad/issues/10745
2022-09-08 14:10:18 +01:00
Jeff Young
895a8a8dbc
Work around focus issues for status popups.
...
Autoscroll wasn't working on Mac because the status popup's panel
has the focus. This *may* also fix a problem on MSW of the auto-scroll
not being cancel-able.
Fixes https://gitlab.com/kicad/code/kicad/issues/11425
2022-09-04 21:08:01 +01:00
Jeff Young
c30a557810
ADDED netclass assignment from PCB canvas.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5975
2022-09-03 19:29:59 +01:00
Jeff Young
5679b9dbdc
Remove a few EDA_RECT instances.
2022-08-31 01:22:49 +01:00
Seth Hillbrand
b736460e71
Move optional access from value() to *operator
...
`value()` throws. Where we check for existence, we don't need to use
the throwing version and should just use the unprotected variant
2022-08-30 13:59:39 -07:00
Seth Hillbrand
91fbb5c957
Don't prevent immediate actions while router active
...
Immediate actions that can take place are useful. We should only be
preventing immediate actions while actively routing or dragging
Fixes https://gitlab.com/kicad/code/kicad/issues/12311
2022-08-30 10:31:29 -07:00
Seth Hillbrand
f1261e71d4
Replace boost::optional with std::optional
2022-08-25 15:50:47 -07:00
Jeff Young
aa2ad3b44c
Move KICAD_T[] to std::initializer_list<KICAD_T>.
2022-08-20 10:28:11 +01:00
Alex
371f6d917f
Use VECTOR2I::extended_type instead of long, and int for numeric limits.
2022-08-16 12:08:55 +00:00
Alex
405be8d15f
Bounds-awareness in Move, Rotate, point editor, drawing tool
2022-08-16 12:08:55 +00:00
Jeff Young
a9536b5de9
CHANGED netclass assignments now done via canvas or via patterns.
2022-08-14 22:56:29 +01:00
Jeff Young
6f49b57f9b
Cleanup & performance enhancements.
2022-08-01 13:09:51 +01:00
Jeff Young
1bad72f14f
Remove bad static_cast.
...
(m_settings isn't a PCBNEW_SETTINGS in non-PCB_EDIT_FRAMEs)
2022-07-24 23:41:41 +01:00
Mike Williams
3669cb4673
PCB Editor: Add User Background Images
2022-07-14 11:23:23 +00:00
jean-pierre charras
f00de04336
FP editor: fix incorrect mirroring of zones in footprint.
...
This is due to a call to Mirror() with incorrect parameter.
Unfortunately, depending on FP items, one Mirror parameter has the opposite
meaning about mirror axis.
Fixes #11952
https://gitlab.com/kicad/code/kicad/issues/11952
2022-07-04 11:14:47 +02:00
jean-pierre charras
57e59a4959
Pcbnew, on line DRC when moving footprints: add visible collisions between courtyards
2022-05-20 12:58:05 +02:00
Mike Williams
b42365190e
Schematic/PCB: deleting fields sets them to invisible
2022-04-21 16:20:23 +00:00
Jeff Young
29eb5931c2
Be more careful with forced cursor positions.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/9977
2022-04-10 23:14:57 +01:00
Jeff Young
d299ddbc7e
Cleanup.
2022-02-27 12:05:39 +00:00
Jeff Young
ae85f57577
Drop a knee between tracks to a single item when dragging.
...
This prevents the disambiguation menu from coming up when we don't
really care which element we start the drag on.
Fixes https://gitlab.com/kicad/code/kicad/issues/10745
2022-02-26 22:54:23 +00:00
Jeff Young
34a9a165c9
More wide-string declarations.
2022-02-05 22:26:31 +00:00
Jeff Young
5739505aa3
TextBoxes for PCBNew.
2022-01-31 20:00:47 +00:00
Jeff Young
f8d6bf4cc9
Hide text items which are required on a single-item delete.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/9973
2022-01-22 22:27:41 +00:00
Jeff Young
c8a50d9b50
Remove unit-less angles from VECTOR2I/D APIs.
2022-01-20 23:58:20 +00:00
Jeff Young
9b661aea10
EDA_ANGLE for plotters.
...
Also fixes a compile error in the PNS Playground.
2022-01-16 01:19:45 +00:00
Jeff Young
07013d00e1
More EDA_ANGLE.
2022-01-14 16:08:19 +00:00
Jeff Young
5176512de3
Move PCBNew rotation increment to EDA_ANGLE.
2022-01-14 16:08:19 +00:00
Jeff Young
c9487bad18
Move BOARD_ITEM::Rotate() to EDA_ANGLE.
2022-01-14 16:08:19 +00:00
Marek Roszko
7d671cff1e
Scoop up some more wxPoints
2022-01-01 21:06:40 -05:00
Seth Hillbrand
410ed8a071
Prevent ops on empty selection
...
Fixes https://gitlab.com/kicad/code/kicad/issues/10164
(cherry picked from commit bd75cffff3
)
2022-01-01 15:29:18 -08:00
Marek Roszko
c4c56de708
Neurotically update position wxPoint usages
2022-01-01 11:55:51 -05:00
Jeff Young
5e4a704155
Remove some more duplicated preferences.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/10112
2021-12-26 13:37:28 +00:00
Jeff Young
4ba3937f8a
Cleanup.
2021-12-24 15:43:24 +00:00
Jeff Young
a48867ea01
Solder mask integrity testing.
...
ADDED DRC test for solder mask aperture bridging copper from different
nets.
ADDED visualization of minimum web width processing for solder masks.
ADDED allow_soldermask_bridges property for footprints.
Fixes https://gitlab.com/kicad/code/kicad/issues/2183
Fixes https://gitlab.com/kicad/code/kicad/issues/1792
2021-12-23 22:31:14 +00:00
Jeff Young
4b6bf3095a
Radial dimensions.
...
ADDED radial type dimensions.
Fixes https://gitlab.com/kicad/code/kicad/issues/2056
2021-12-23 19:34:54 +00:00
Jeff Young
d9dba2edb2
Tidy up pad & parent footprint selection corner cases.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/9923
2021-12-23 16:54:03 +00:00
Jeff Young
f696c4ddfc
Fix failure to remove hover selection after rotate operation.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/10058
2021-12-23 16:54:03 +00:00
Jon Evans
587ee890d9
Move where flag is cleared to catch more cases
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/9892
2021-12-08 20:46:53 -05:00
Jeff Young
df1e74d418
Clean up dead code from last commit.
2021-12-08 23:16:33 +00:00
Jeff Young
7ffd43a6f4
Regularize the promotion of pads to footprints in non-free-pad mode.
...
Also regularizes some of the other selection filtering options.
This also fixes an invalidated iterator (and subsequent segfault) in
the old code.
Fixes https://gitlab.com/kicad/code/kicad/issues/9896
2021-12-08 13:08:54 +00:00
Jeff Young
2446844cd3
Fix bugs in free-pad logic.
...
Don't promote pads to parent footprint selection when NOT in free
pad mode during move.
Implement move algorithm in rotate.
Fixes https://gitlab.com/kicad/code/kicad/issues/9893
2021-12-06 22:53:45 +00:00
Roberto Fernandez Bautista
34a0d1947a
pcbnew Flip: Filter selection for free pads, select footprint instead
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/9875
2021-12-06 14:34:26 +00:00
Seth Hillbrand
4b226b8172
Unify our breakTracks routines
...
Fixes https://gitlab.com/kicad/code/kicad/issues/9793
2021-11-27 06:34:47 -08:00
Seth Hillbrand
1d2fd6d271
Change persistent 45° state to only drawing
...
Move/edit points have a lossy state that holds only for the time in
which the tool is active. It reverts back to non-constrained after
completion of the move/point edit
Fixes https://gitlab.com/kicad/code/kicad/issues/9574
2021-11-17 15:38:28 -08:00
Jon Evans
75d75799f7
Move to getters/setters for aux and grid origin
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/8836
2021-11-08 22:36:40 -05:00
jean-pierre charras
1dbe8442b1
fp editor: fix crash (null pointer) when trying to drag an item.
...
(there is no roter tool in fp editor)
Fixes #9476
https://gitlab.com/kicad/code/kicad/issues/9476
2021-10-28 11:51:04 +02:00
Roberto Fernandez Bautista
a79a221257
Array creator tool: Add option to assign unique reference designators
...
ADDED: Option to assign unique reference designators to footprints
created with the array tool [pcbnew]
CHANGED: Array creator dialog no longer displays pad numbering properties
when in the board editor. [pcbnew]
Fixes https://gitlab.com/kicad/code/kicad/-/issues/2354
2021-10-25 22:38:49 +01:00
Jon Evans
3b18dce911
Remove vestigal setting
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/9444
2021-10-23 22:12:25 -04:00
Roberto Fernandez Bautista
e950278637
Don't initiate a drag if the router is already active
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/9277
2021-10-23 19:01:25 +01:00
Jeff Young
9b9e379aa0
Overhaul arc internal model to not over-specify information.
2021-10-15 12:45:43 +01:00
Seth Hillbrand
5a6f230a2c
Delete full track needs proper scoping
...
This should not run if the action is "Cut". Additionally, we need to
transfer the expanded selection to selectionCopy in order for it to
proceed with the deletion. There is also no need for this to be limited
to the Hover action, so this section was removed.
Fixes https://gitlab.com/kicad/code/kicad/issues/9385
2021-10-12 13:47:16 -07:00
Seth Hillbrand
93bbad6acf
Allow snapping in pickReferencePoint
...
Fixes https://gitlab.com/kicad/code/kicad/issues/9354
2021-10-10 08:53:10 -07:00
Seth Hillbrand
62cb5d9354
Fully cancel copy with reference
...
Tool needs to be popped when cancelling to allow selection tool to work properly.
Fixes https://gitlab.com/kicad/code/kicad/issues/9353
2021-10-10 08:31:18 -07:00
Jeff Young
5c402a64ab
Use mathematical rotation direction in Move Exactly dialog.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/1897
2021-10-03 00:11:01 +01:00
Jeff Young
2ec1c215cd
Drop selection after hiding items.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/8605
2021-09-21 17:02:34 +01:00
Jeff Young
fdfecf5932
Don't push view control settings to the previous active tool.
...
See further comments in bug report.
Fixes https://gitlab.com/kicad/code/kicad/issues/9147
2021-09-13 13:28:05 +01:00
Seth Hillbrand
56ccaf6482
Constrain move tool when set
...
Move tool works slightly differently from other tools when figuring out
new locations. This uses the global 45 enable flag to set proper item
locations when the user is requesting a 45° constraint on movement
2021-09-06 07:05:25 -07:00
Jeff Young
e6ca9837a2
Clear numbers from non-numberable pads and don't run DRC on them.
...
This was also the last straw on the misnamed PAD::GetName() and
PAD::SetName(), which are now PAD::GetNumber() and PAD::SetNumber().
Fixes https://gitlab.com/kicad/code/kicad/issues/9017
2021-08-24 01:03:06 +01:00
jean-pierre charras
5574682d44
Fp editor: minor fixes:
...
- do not show the paste special context menu: it has no sense in this editor
- Paste command: fix incorrect rotation of pasted FP texts
2021-08-18 17:43:10 +02:00
Jeff Young
5bf0b99813
Capture errant mouse-up from locked dialog in move tool.
...
Don't pass it on to other tools where it causes all kinds of mayhem.
Fixes https://gitlab.com/kicad/code/kicad/issues/7255
2021-08-04 17:42:40 +01:00
Jeff Young
65f6e72b4c
Improve commenting.
2021-08-04 13:55:42 +01:00
Jeff Young
8aea2cbd03
When ignoring click events don't ignore synthetic ones.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/7255
2021-07-29 18:07:04 +01:00
Jeff Young
9271ac1a4f
Don't allow deletion of pads when not in allow-free-pads mode.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/8884
2021-07-29 16:03:25 +01:00
Pradeepa Senanayake
dd31a5383b
Added the double click to footprint editor
2021-07-24 08:53:09 +00:00
Wayne Stambaugh
cf00319c85
More NULL expunging.
2021-07-20 07:27:18 -04:00
Roberto Fernandez Bautista
04ff8cde5e
Drag & Fillet Tracks: Ignore mouse up / click events until move / drag
...
Ensures that any click/mouse up events generated after clicking "OK"
in the "Override locks" dialog are ignored.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/8123
2021-07-05 20:29:25 +01:00
Roberto Fernandez Bautista
ce8132bf4f
Arc Track Drag & Fillet Tracks: Copy lock status to new track(s)
2021-07-05 20:29:25 +01:00
Jeff Young
c6606a0582
Hook up delete to undo last segment when routing.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/8362
2021-06-19 11:37:20 +01:00
Jeff Young
5bb6b1a3cc
Minor cleanup.
2021-06-12 11:39:28 +01:00
Jeff Young
096e342386
Prefix TRACK, ARC and VIA.
2021-06-11 22:07:02 +01:00
luz paz
f968fc8719
Fix source comment / documentation typos
2021-06-09 19:32:58 +00:00
Marek Roszko
10e60acf34
Clean up including of board_design_settings.h
2021-06-06 15:03:42 -04:00
david-beinder
86add3bb85
Fix MSVC C4312 warnings when casting 32bit ints to pointer types on 64bit builds
2021-06-05 02:57:51 +00:00
Ian McInerney
23f8851409
Remove pcb_group include from board header
2021-06-03 20:03:31 +01:00
Jeff Young
8e2fb1bdb9
Treat Cut like a Delete while in a Move.
...
Also fixes problem where second action wasn't getting executed because
the event was getting eaten.
Fixes https://gitlab.com/kicad/code/kicad/issues/8072
2021-05-29 22:10:43 +01:00
Jeff Young
7356f9568d
Move grid disable modifier from ALT to CTRL.
...
Also had to move the H/V/45 disable modifier from CTRL to SHIFT.
Fixes https://gitlab.com/kicad/code/kicad/issues/8124
2021-05-09 20:17:40 +01:00
jean-pierre charras
a5ff27cae7
Pcbnew, EDIT_TOOL::GetAndPlace(): fix and issue, and allows execution only if
...
called inside the board editor.
Fix also a broken behavior: the current action was not cancelled, and if it is
called during a move items (when typing the 'T' key), items were broken.
The actual bug is the fact it is called also in fp editor and footprint wizard frame,
because it is part of EDIT_TOOL action list, common to fp editor, and should not.
But a full change is much more costly than just a filter.
2021-05-09 11:51:57 +02:00
Fabien Corona
094dd2e08c
pcbnew : rotate relatively to selection center
2021-05-04 09:13:20 +00:00
Roberto Fernandez Bautista
98c8f43320
eeschema and pcbnew paste: consistent paste behaviour
...
Duplicates are reannotated on paste in the same way in pcbnew and
eeschema such that when copying and pasting the same block in the
pcb and schematic, the reference designators will match.
2021-05-03 19:38:32 +01:00
Marek Roszko
b243c2280d
enum class PAD_SHAPE_T
2021-05-01 08:22:35 -04:00
Jeff Young
91421f9908
Separate logic for multi-select and click-select when filtering.
...
Also removes a bunch of old implementations of pad locking and
filtering which are no longer needed. (They're now handled by the
uniform locking code.)
Also removes some of the auto-promotion logic. Rotating a footprint
when a pad was selected is going to be surprising whether the pad
is locked or not.
Fixes https://gitlab.com/kicad/code/kicad/issues/8322
2021-04-29 00:07:35 +01:00
Jeff Young
5bf37a9b24
Don't allow selection crossing a parent/child relationship.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/8292
Fixes https://gitlab.com/kicad/code/kicad/issues/7255
2021-04-26 18:47:44 +01:00
Jon Evans
7569fc8aad
Bring back live move of footprint in 3D view if live refresh is on
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/8220
2021-04-22 22:32:41 -04:00
Jeff Young
cc956695ae
Hit test for worksheet before adding Properties to menu.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/8171
2021-04-11 14:18:35 +01:00
Roberto Fernandez Bautista
211fd65c23
Move: Ignore mouse up and click events until a mouse move / drag event
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/8123
2021-04-06 17:29:52 +00:00
Roberto Fernandez Bautista
235688e459
Less restrictive Arc Track Dragging tool
...
Use the connecting straight tracks even if not exactly parallel - allow
an error margin configurable in ADVANCED_CFG (default 1 degree). Also
be less strict about end point matching and use the width of the track
as the criteria to determine suitability.
Finally, delete any short lengths of track at the end of the operation
and amend the arc end points to keep connectivity.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7967
2021-04-06 12:52:01 +00:00
Ian McInerney
83ae28f04f
Fix selection when pasting/duplicating items
...
The item flags weren't getting reset after placing
the new items, so the next operation on them was
having weird behavior.
Fixes https://gitlab.com/kicad/code/kicad/issues/7528
2021-04-03 19:09:21 +01:00
Mikolaj Wielgus
7655533412
Do not move footprint fields twice when performing Move Exactly
...
Fixes https://gitlab.com/kicad/code/kicad/issues/8062
2021-04-02 21:07:59 +00:00
Roberto Fernandez Bautista
7077e59395
Make moving pads independent of footprint much harder with new setting
...
It is still possible to move a pad independent of footprint through
the pad properties dialog. This is a much more conscious decision
than using the move tools.
ADDED: "Allow free pads" preference setting in pcbnew, default to off.
When enabled, allows moving unlocked pads independent of the footprint
(i.e. previous behaviour). When disabled (default), any attempt to move
a pad will move the parent footprint instead.
REMOVED: "Lock pads of newly added footprints" preference setting in
pcbnew. (Pad lock state is now loaded from the footprint definition)
CHANGED: There are now only two possible lock states for a footprint:
locked and unlocked. The lock state of the pads in the footprint is
now independent of the footprint lock state.
Also fixed a latent bug that would allow a pad to be moved when the
parent footprint was locked (see m_selectionTool->RequestSelection
lambdas in edit_tool.cpp)
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7739
2021-03-31 18:28:18 +00:00
Jonathan Haas
a677998f47
Don't select new items after cancelling move following item duplication
...
Fixes https://gitlab.com/kicad/code/kicad/issues/7956
2021-03-22 18:49:43 +01:00
Roberto Fernandez Bautista
50aafb9d2a
Do not auto-refill zones when added or edited
...
The only exception is when using the Zone Properties Dialog and
user preference is enabled
2021-03-21 20:13:20 +00:00
Roberto Fernandez Bautista
f6c4677189
ADDED Option to disable automatic zone filling in pcbnew
...
The new setting is stored as 'editing.auto_fill_zones' and controls
whether zones should be refilled after certain actions or not.
2021-03-21 20:13:20 +00:00
Jonathan Haas
95051c4786
Also duplicate arcs in pcbnew
...
Fixes https://gitlab.com/kicad/code/kicad/issues/7943
2021-03-18 13:35:30 +00:00
Jon Evans
18037e2f65
Rework bitmap system to load from archived PNGs
...
Bitmaps are now identified by an enum class instead of by pointers.
Bitmap loading and caching is now handled by a class in common, and
we no longer compile most bitmaps into the binary, so there is no
longer a bitmaps static library.
Instead, bitmaps are archived to a .tar.gz file which is installed
in ${KICAD_DATA}/resources/images.tar.gz
The source PNGs are checked in to Git as the original CPP files were,
so that people can build without the required dependencies to convert
SVGs to PNGs.
Initial support is also added for dark theme icons, although this
is not yet exposed in the GUI.
Stubs are present for multi-resolution image resources, but this is
not fully-baked yet and could use some refinement.
2021-03-11 08:37:35 -05:00
Dominik Wernberger
e2aa7be4b3
Added a lot of consts and refactored a few lines
2021-03-08 12:49:48 -08:00