Commit Graph

3083 Commits

Author SHA1 Message Date
Jeff Young 8251fca66a performance efficiencies 2023-12-18 17:39:29 +00:00
Wayne Stambaugh 25c03da5a5 Coding policy and Doxygen comment fixes. 2023-12-18 08:32:41 -05:00
Jeff Young 16c8050f3d Fix event/flag race condition. 2023-12-17 21:55:29 +00:00
Wayne Stambaugh eb3fd10af8 Fix obscured object selection issue in board and footprint editors.
This selection improvement feature is hidden behind the advanced
configuration key "PcbSelectionVisibilityRatio".  It is turned off (1.0)
by default.  Value values are from 0.0 to less that 1.0.  From testing,
using a value between 0.1 and 0.3 produces the best results.

This fix uses normal alpha blending described in the link below.  The
current design only uses the alpha of the object's color.  It could be
improved by doing a full color alpha blending but using the color alpha
alone seems to result in satisfactory results.

https://en.wikipedia.org/wiki/Alpha_compositing

Fixes https://gitlab.com/kicad/code/kicad/-/issues/16126
2023-12-17 16:43:56 -05:00
Jeff Young 1b0cc82c56 Move a couple of stragglers to BOARD_COMMIT. 2023-12-17 21:01:31 +00:00
Jeff Young a96b7116d0 Make sure de-selected items get redrawn.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16385
2023-12-17 17:59:43 +00:00
Jeff Young b29a56530c Remove undo-of-ungroup hack.
The hack assumed that the parent group would be the first
deleted item of type group in the undo list.  While this
will be true when undoing a user ungroup command, it will
not be when undoing an ungroup side-effect, such as when a
member of a group is deleted during UpdateFromPCB.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/16384
2023-12-17 15:35:35 +00:00
Jeff Young 9fb06f95a0 Fix msys2 build. 2023-12-16 16:17:24 +00:00
Jeff Young 66a15f6acf Re-factor frame pointer out of generator API. 2023-12-16 16:11:45 +00:00
Jeff Young ea3c87f243 Move group/ungroup to COMMIT infrastructure. 2023-12-16 14:17:25 +00:00
Jeff Young 1df84f4d92 Move some PCB_GENERATOR special-cases to propMgr listeners. 2023-12-15 21:04:33 +00:00
Jeff Young 4844cffc00 Make sure PCB_GENERATOR's lock status follows their members.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16372
2023-12-15 17:37:36 +00:00
Wayne Stambaugh 8687d5092f String and dialog layout fixes. 2023-12-13 11:49:34 -05:00
Wayne Stambaugh 9d6e9b14eb Fix action tool friendly name string capitalization. 2023-12-13 08:15:19 -05:00
Jeff Young ea67430c49 Cleanup. 2023-12-12 13:57:12 +00:00
Ian McInerney 3c0566d318 Don't allow copying markers
Fixes KICAD-5FQ
2023-12-11 22:22:19 +00:00
Jeff Young e801e793dc Prevent copy-elision issues by using smart-pointer.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16335
2023-12-11 16:27:31 +00:00
Jeff Young aa046345eb Add missing case to Selectable().
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16283
2023-12-07 13:41:24 +00:00
Jeff Young 2661e7a8ee Fix over-zealous copy/paste and add a few more comments. 2023-12-06 13:08:22 +00:00
Alex Shvartzkop 111a8d6ab3 Improve/fix Expand connection for graphics. 2023-12-04 09:52:31 +03:00
Jeff Young 1618beba2c Fill empty zones when auto-fill is on.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16234
2023-12-02 20:16:26 +00:00
Jeff Young 6e245d5eb4 Remove special cases for footprint editor. BOARD_COMMIT handles them.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16236
2023-12-02 20:06:57 +00:00
Jeff Young b13590f4c0 Use preview items instead of highlightNets & status popup
The router preview item can be specific to the part that is being
tuned, rather than the whole net.  It's also less visually noisy as
it doesn't dim/undim the rest of the board.

Using kigfx preview items for the status keeps us from having a bunch
of focus issues with the status popup window.
2023-12-02 16:15:43 +00:00
Jeff Young a5454cd7c2 Remove group from view when ungrouping.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16197
2023-11-29 18:21:18 +00:00
Jeff Young 2545999b3d Delete shapes re-combined into a pad.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16193
2023-11-29 16:15:31 +00:00
Ian McInerney 188b9f4dd5 Fix append board dialog
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16214
2023-11-29 14:01:13 +00:00
Alex Shvartzkop f84bab00b4 Fix build; renaming. 2023-11-28 22:18:37 +03:00
Alex Shvartzkop 7eb98a9863 Fixes for tuning patterns and router.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16160
2023-11-28 20:55:39 +03:00
Seth Hillbrand 75c6b0ab28 Added IPC2581 support
IPC2581 is a modern production file exchange system.  It provides
single-file data output for an entire board including BOM and netlist
information.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/1954
2023-11-26 15:30:58 -08:00
Jon Evans 37d9b7fac0 Prevent crash if generator exists but has no items
See https://gitlab.com/kicad/code/kicad/-/issues/15366
2023-11-25 16:01:12 -05:00
Jon Evans 1cb1fd3516 Partial revert "Fix commit/view handling when dragging arcs"
Revert unintended formatting changes

This reverts commit f0988c3c5d.
2023-11-25 15:16:57 -05:00
Jon Evans f0988c3c5d Fix commit/view handling when dragging arcs
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16145
2023-11-25 14:55:47 -05:00
Jeff Young df83e24eb7 Cleanup.
It's been a long time since line style was specific to plotting.
2023-11-25 13:12:45 +00:00
Jon Evans 87ba1f7ea0 Fix expand selection for graphic shapes on graphic layers 2023-11-20 16:14:56 -05:00
jean-pierre charras ed1924b975 Pcbnew, place menu: some enhancements:
- move place dimensions to a sub menu (they are not frequently used, and it
reduce the size of the place menu
- add reset drill origin, similar to reset grid origin.
2023-11-20 13:23:16 +01:00
jean-pierre charras ed9dd55fde DRAWING_TOOL::PlaceImportedGraphics() do not add twice items when adding to new group. 2023-11-16 12:53:00 +01:00
Jeff Young b218617469 Honour bounding-hull setting on closed shapes and chained segments.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16092
2023-11-16 09:07:54 +00:00
jean-pierre charras a663dd7ec4 Pcbnew, import graphics: fixes and enhancements:
- fix regression: allow grouping or not imported items
- store more settings in Pcbnew settings: all options are now stored.
- default tolerance to connect items is now 0.01 mm. 1 mm is a too big value,
and can create serious artifacts in imported outlines.
2023-11-15 20:26:05 +01:00
Alex Shvartzkop 05e954ad5d Fixes for length tuning patterns. 2023-11-12 12:17:08 +03:00
Jeff Young 7e46e85c7d Update copyrights. 2023-11-11 15:29:34 +00:00
Jeff Young 3e58425671 Flip rotation angle when board view is flipped.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15954
2023-11-10 22:30:06 +00:00
jean-pierre charras 2f594e441b Fix a compil warning (shadowed variable). 2023-11-10 10:31:40 +01:00
Jeff Young cc721c4907 Improve encapsulation of group internals.
(It's still leaking into BOARD_COMMIT and some other places, but at
least it no longer leaks into all the edit tools.)

Also fixes some bugs when moving/copying/pasting multiple selections
containing length-tuning patterns.
2023-11-09 14:05:35 +00:00
Jeff Young 78e00ade7a Clearer naming. 2023-11-09 14:05:35 +00:00
Ian McInerney dd933b7d0e Update CERN copyrights 2023-11-08 21:34:14 +00:00
Jeff Young 7788c8f21c Fix textbox mirroring and rotation (again).
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15576

Fixes https://gitlab.com/kicad/code/kicad/-/issues/14159

Fixes https://gitlab.com/kicad/code/kicad/-/issues/14912

Fixes https://gitlab.com/kicad/code/kicad/-/issues/14178
2023-11-06 14:03:58 +00:00
jean-pierre charras d90981d981 Pcbnew: fix Swap command that improperly rotates footprints when flipping.
Fixes #16025
https://gitlab.com/kicad/code/kicad/-/issues/16025
2023-11-05 15:09:48 +01:00
Jeff Young ac172b944a Don't get stuck cycling through invisible layers.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16019
2023-11-03 18:17:36 +00:00
Jeff Young 141b953d12 Show selection before opening menu.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15922
2023-11-03 12:36:30 +00:00
Jeff Young 7f8e397dfb Behave (or assert) when source or target are null or dirty. 2023-11-01 17:11:42 +00:00
Jeff Young d93bb464bf When garbage collecting locally we also need to clear global references. 2023-11-01 12:47:54 +00:00
Wayne Stambaugh 6183a1e4de Coverity warning fixes. 2023-10-30 09:16:24 -04:00
Seth Hillbrand 6d957e9d65 Don't use KiROUND when we should trunc
When calculating the viewport extents, we only need the maximum size
that can be represented.  Anything larger should be truncated.  We do
this in many other places (wx_view_controls, ruler_item,
ds_proxy_view_item, etc) and this brings pcb_selection_tool into
alignment with this, avoiding an unneeded warning message

Fixes https://gitlab.com/kicad/code/kicad/-/issues/15529
2023-10-29 10:42:33 -07:00
Jeff Young fc0017fc95 Normalize rects higher up.
We don't want to normalize footprint children to their board-relative
coordinates.
2023-10-29 11:45:16 +00:00
Ian McInerney 171458a27b Introduce action friendly names
Friendly names can be used to display action information that is clearer
in non-hierarchical contexts (e.g. not in menus).

Fixes https://gitlab.com/kicad/code/kicad/-/issues/8075
2023-10-27 23:58:29 +01:00
Jeff Young fc4bc10d27 Separate out axes definitions between ModEdit and PCBNew.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/5711
2023-10-25 15:01:36 +01:00
jean-pierre charras 85210e5136 Pcbnew, export component placement: better string in menu (.gbr added).
(Was missing in my commit 5bf241a5)
2023-10-25 13:38:07 +02:00
Jeff Young fca1ad5285 Ask user if they want to delete original items after conversion.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15938
2023-10-25 00:11:08 +01:00
Jeff Young 791aa64950 Functionally it's a "reference image".
The implementation happens to be a "bitmap".

Fixes https://gitlab.com/kicad/code/kicad/-/issues/15932
2023-10-24 15:44:21 +01:00
Alex Shvartzkop c8b2e2aa07 closestDist_sq should be ECOORD_MAX initially. 2023-10-23 22:18:45 +03:00
jean-pierre charras 4ffa013467 Fix minor compil and Coverity warnings (not initialized vars) 2023-10-23 20:13:46 +02:00
Mike Williams 91b6bb8088 Grid helpers: remove view items on destruction 2023-10-23 09:39:08 -04:00
Alex Shvartzkop 97901c9ac5 Fix footprints being difficult to select in high-contrast modes.
(regression)
2023-10-23 06:09:13 +03:00
Jeff Young ad676e22b8 Don't push a commit we don't own. 2023-10-22 20:35:14 +01:00
Jeff Young b97d8ddef4 Make offset-zone check multi-layer aware.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15916
2023-10-21 15:08:36 +01:00
Jeff Young f18ce8c6de Fix layer handling for create similar zone. 2023-10-20 22:20:30 +01:00
Jeff Young f5e99338a9 Generators should respond to the selection filter that controls their children.
(Tuning patterns to the track checkbox, stitching patterns to the
vias checkbox, etc.)

Fixes https://gitlab.com/kicad/code/kicad/-/issues/15905
2023-10-20 16:28:05 +01:00
Jeff Young 68a5753c80 Repair Rotate on PCB_GENERATOR items. 2023-10-19 23:34:52 +01:00
Jeff Young 24ddc728e8 Add PCB_ACTIONS::regenerateAllTuning....
... and move GENERATOR_TOOL to RegenerateAllOfType().
2023-10-19 11:20:09 +01:00
Jeff Young 7447700735 Fix typo. 2023-10-19 11:20:09 +01:00
Jeff Young 16ec0faa7a Reduce line-breaking.
Also simplifies handling of generator properties dialogs.
2023-10-19 11:19:57 +01:00
Jeff Young 67f0f6e3b9 Rename class to match current terminology. 2023-10-19 01:31:13 +01:00
Jeff Young b089630b4c Simplify Import Graphics.
Removed no-longer-required differentiation between importing
footprint vs board objects.

Renamed files to match the dialog.

Made Position At and Set Layer optional checkboxes.
Removed Group Items checkbox.  (In the unlikely event that you don't
want a group, do an UnGroup after importing.)

Flattened out labelled-sizers in the dialog.

Removed importers blacklist, which hasn't been active for at least 4
years.

Fixed undo/redo bug that caused items to be no-longer-grouped after
a redo.
2023-10-19 01:31:13 +01:00
Jeff Young e793e30360 Fix typo.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15881
2023-10-17 13:34:58 +01:00
Jeff Young 89011e888c More modern look & feel for tuning status popup.
(Also includes min and max info, and move string processing out
of router.)
2023-10-17 13:30:58 +01:00
Jeff Young 390bd44f18 Cleanup. 2023-10-17 13:30:58 +01:00
Alex Shvartzkop be1008cbd8 ADDED: Heal Shapes; Fix discontinuities in gfx import and Cleanup dialog. 2023-10-17 10:29:43 +03:00
Marek Roszko bee6e6be01 AddMenuLanguageList should live in EDA_BASE_FRAME, its only user 2023-10-16 19:49:52 -04:00
Wayne Stambaugh b5eee9dd7e Coverity warning fixes. 2023-10-16 17:04:14 -04:00
Jeff Young d51e058e24 Move diff-pair netname resolution to BOARD.
Also adds reporting of dp gap constaints and max uncoupled to track
selections, and max uncoupled during routing.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/13748
2023-10-15 22:46:23 +01:00
Jeff Young 2450250ae7 Use "tuning pattern" in the GUI. 2023-10-15 17:59:11 +01:00
Jeff Young d5d07e64c9 Use IsShownOnScreen(), not IsShown(), if you really want to know if its visible. 2023-10-14 23:51:37 +01:00
Jeff Young 504652b972 Regularize RunOnChildren() at the BOARD_ITEM level.
BOARD_ITEM sub-classes which don't have children simply don't
overrid it.
2023-10-14 15:04:18 +01:00
Jeff Young 2bc273f8bc Don't fire event-parameter asserts when looking for a click event.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/KICAD-2CK
2023-10-13 20:31:01 +01:00
Jeff Young a69869f72a Simplify undo/redo for pad edit mode.
Also simplifies high-contrast-mode handling to fix a bug when exiting
pad edit mode via an undo.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/15845
2023-10-13 13:59:31 +01:00
Jeff Young 62d959ed0e Don't assume an error location for PAD::GetEffectivePolygon().
While ERROR_INSIDE was good for plotting, 3D generation, etc., it's
not good for generating router hulls.

Also reverts part of the change to always use polygons for PNS::SOLIDs.  A single shape in a SHAPE_COMPOUND will be faster (and
more accurate).

Fixes https://gitlab.com/kicad/code/kicad/-/issues/14898
2023-10-13 13:59:26 +01:00
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