Commit Graph

376 Commits

Author SHA1 Message Date
Jeff Young c51b1dad72 Generalize infobar MESSAGE_TYPE handling and use for DRC errors.
Fixes https://gitlab.com/kicad/code/kicad/issues/8782
2021-08-01 21:51:39 +01:00
Jeff Young 6aaf4413b3 Fix kicad_string.h / string.cpp mismatch.
They don't define a KiCad string class, so the header file name was
somewhat misleading. But the fact that they didn't match definitely
made coding more difficult.
2021-07-29 16:03:25 +01:00
Jeff Young dd5676f4bc Implement a safer (RAII) tool re-entrancy guard.
Fixes https://gitlab.com/kicad/code/kicad/issues/8873
2021-07-27 16:37:34 +01:00
Jeff Young 0fb864d596 Pull some name changes back from 7.0 to ease merging. 2021-07-21 20:58:59 +01:00
Wayne Stambaugh cf00319c85 More NULL expunging. 2021-07-20 07:27:18 -04:00
jean-pierre charras 9a865b1989 Fix a typo and a minor compil warning 2021-06-28 14:37:35 +02:00
Jeff Young 7efca0113d Reset m_inDrawingTool on exit.
Fixes https://gitlab.com/kicad/code/kicad/issues/8653
2021-06-22 13:02:45 +01:00
Jeff Young b72545a432 Implement more aggressive re-entrancy blocking for drawing tools.
A similar strategy was already implemented in Eeschema.

Also adds some safety around clearing of autopan and mouse capture.

Fixes https://gitlab.com/kicad/code/kicad/issues/6909
2021-06-20 11:09:55 +01:00
Jeff Young 096e342386 Prefix TRACK, ARC and VIA. 2021-06-11 22:07:02 +01:00
Jeff Young 16b0147af8 Prefix DIMENSION types. 2021-06-11 17:59:44 +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
Ian McInerney 23f8851409 Remove pcb_group include from board header 2021-06-03 20:03:31 +01:00
Seth Hillbrand ba73456d49 Allow point editor to persist
After drawing a graphic, allow the control points to persist when
exiting the tool.

The effect of this is to make the first "Esc" press a
"return-to-select-tool" event without modifying the selection or control
points from within the drawing tools.  The section "Esc" press, when in
the selection tool will clear the selection and the control points
2021-05-25 16:47:54 -07:00
Jeff Young 0d8a9a1091 Make sure that a tool never exits with autopan or capture.
Fixes https://gitlab.com/kicad/code/kicad/issues/8459
2021-05-21 14:53:58 +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
Marek Roszko 21fde9b629 enum class PCB_SHAPE_TYPE_T 2021-04-30 22:36:12 -04:00
Jeff Young dc0cf3b802 Clean up a confusing API.
AllowDRCViolations is kept in any mode as a *setting*, but only
controls router behaviour when the mode is mark obstacles.

Fixes https://gitlab.com/kicad/code/kicad/issues/7795
2021-04-10 11:08:02 +01:00
Jeff Young 3fd3be9843 Layer fixes for PCBNew drawing tools.
1) Implement layer changes for dimension drawing tool
2) Ensure drawing layer is visible for (1) and for the text drawing
tool.

Fixes https://gitlab.com/kicad/code/kicad/issues/8106
2021-04-07 15:02:48 +01:00
Jeff Young e50b450092 Formatting and organisation. 2021-04-07 14:50:29 +01:00
Jeff Young ec45855aed Make sure drawing layer is visible.
Fixes https://gitlab.com/kicad/code/kicad/issues/8106
2021-04-06 00:06:23 +01:00
jean-pierre charras d3bf20e80b Pcbnew, place free via: take netcode from the pad, if the via is inside a pad.
Fixes #8089
https://gitlab.com/kicad/code/kicad/issues/8089
2021-04-02 17:19:44 +02:00
Jon Evans c04e19f9ac Include optimization: move some things from common.h to point-of-use 2021-03-20 12:09:18 -04:00
jean-pierre charras 3ba7fc0cc2 Move board stackup table drawing code from drawing_tool.cpp to drawing_stackup_table_tool.cpp
This avoid a too large drawing_tool.cpp file.
Remove also values in internal units and convert them to mm.
2021-03-14 17:44:16 +01:00
Fabien Corona f428ce03f2 ADDED: pcbnew - stackup / characteristics table 2021-03-13 20:19:46 +00:00
Jeff Young 93db7a130a Offset 3D models when moving footprint origin.
Fixes https://gitlab.com/kicad/code/kicad/issues/7868
2021-03-12 17:37:38 +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
Jonathan Haas 274d4e2eb4 Fix orientation of orthogonal dimensions
When drawing and editing orthogonal dimensions, take distance and
relative position to the end points into account.

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

Fixes https://gitlab.com/kicad/code/kicad/issues/7189
2021-03-08 00:13:38 +00:00
Jon Evans 1fc399fa31 Fix a few more cases of picking up wrong mouse positions
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7745
2021-03-03 20:09:24 -05:00
Marek Roszko b82fcbcad6 More exception var disuse warnings 2021-02-26 19:30:58 -05:00
Seth Hillbrand 0bab025832 Fixup toolchaining for immediate mode
The move tool can stack on others, so when we re-enter the previous tool
this caused another immediate action.  We flag re-entry in the tool
stack to check for this and avoid unexpected tool starts
2021-02-24 10:44:54 -08:00
Seth Hillbrand 0518d9c546 Add more force-immediate tools 2021-02-23 17:05:03 -08:00
Jeff Young 34c2028e7b Assign via net before running DRC checks.
Fixes https://gitlab.com/kicad/code/kicad/issues/7579
2021-02-17 19:39:56 +00:00
Jeff Young d66de5bb35 Exclude footprints and groups from VIA_PLACER DRC testing.
(Their children need to get tested, but not the parent objects
themselves.)

Fixes https://gitlab.com/kicad/code/kicad/issues/7569
2021-02-17 14:08:53 +00:00
Jeff Young b7672d3c92 Respece router Allow DRC Violations in free via placer.
Also don't check for collision on non-copper layers, but do check
for hole clearance violations.

Fixes https://gitlab.com/kicad/code/kicad/issues/7532
2021-02-14 22:32:12 +00:00
Jeff Young e2f8b1a4b1 Interpreting wxDialog::ShowModal()'s retval as bool is never what you want.
Fixes https://gitlab.com/kicad/code/kicad/issues/7454
2021-02-08 17:40:57 +00:00
Mikolaj Wielgus 5aaedd86ed Add "Limit graphic lines to 45 deg" to line drawing tool context menu
Fixes https://gitlab.com/kicad/code/kicad/issues/7181
2021-02-08 16:20:38 +00:00
Jeff Young 6272b48481 Make sure layer gets passed in to rules evaluation. 2021-02-08 14:53:49 +00:00
Jeff Young 8571687f51 Upgrade place via tool to new DRC.
Fixes https://gitlab.com/kicad/code/kicad/issues/7358
2021-02-01 23:00:13 +00:00
Seth Hillbrand 386ead30c5 All circle and arc tools to select all at first
Non-layer elements can be logical centers for the circle and arc tools.
We allow the non-layer to snap for the center points and revert to only
on-layer elements after

Fixes https://gitlab.com/kicad/code/kicad/issues/7327
2021-01-29 10:14:44 -08:00
Jeff Young 35978adef9 Don't run dimension updates while parsing files.
They mess up the geometry when only partial values are provided.

Fixes https://gitlab.com/kicad/code/kicad/issues/7177
2021-01-19 16:09:44 +00:00
Jeff Young 68efdb2fff Push shared parts of GRID_HELPERs into common. 2021-01-16 23:18:10 +00:00
Roberto Fernandez Bautista 00918c68f5 Don't do clever snapping logic when drawing a circle
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7131
2021-01-16 08:39:20 +00:00
Jon Evans 70c397a9b4 Implement free vias fully
CHANGED: manually-placed (stitching) vias won't have their nets automatically updated
(unless the via is placed directly on a track segment)

CHANGED: stitching vias can be placed on footprint pads and pick up their nets

Fixes https://gitlab.com/kicad/code/kicad/-/issues/5484
2020-12-20 16:29:50 -05:00
Jeff Young acfbcb4beb Make distinction between PCBNew-wide tools and Board-specific tools.
The old names were really hard to keep straight (even for me, who named
many of them).
2020-12-16 13:32:46 +00:00
Jeff Young 22a6b36257 Don't allow dbl-click to leak through to other tools.
This only applies if the tool doesn't handle properties (which also
handles double-click events).

Fixes https://gitlab.com/kicad/code/kicad/issues/6735
2020-12-14 22:15:43 +00:00
Jeff Young 60ecd4698c Nets don't have properites; netclasses do. 2020-12-08 13:05:39 +00:00
Jeff Young e882753ebf Grid snapping fixes.
1) Uniformly honour the GAL grid snap settings
2) Make more uniform use of GRID_HELPERs
3) Smarten EDIT_LINE for mid-point snapping

Fixes https://gitlab.com/kicad/code/kicad/issues/6558
2020-12-03 19:55:58 +00:00
Jeff Young 3c521942ed Smarten isEmpty checks to include nothing-but-whitespace.
Fixes https://gitlab.com/kicad/code/kicad/issues/6567
2020-12-01 16:39:06 +00:00
Jeff Young 0293f880ec Fix a bunch of group issues with importing graphics.
Groups do not own their children; they only reference them.  That
being said, they do own *selection* and *moving* of their children.
This might address some of 6493, but in any case will be a
pre-requisite for fixing it.

Fixes https://gitlab.com/kicad/code/kicad/issues/6493
2020-11-27 22:03:14 +00:00