35 Commits

Author SHA1 Message Date
Seth Hillbrand
6e2b20ed0e Update BS Threadpool to 5.0 2025-09-10 13:02:24 -07:00
John Beard
299a6c6c7b Netinfo: avoid transitive string_utils.h include
Put the string manipuuation utils in the cpp, and
remove string_utils.h from the includes of netinfo.h.

This spams that header into about 350 files, not all of which
need it. Then go round and tidy up the places (most exporters
and dialogs) where CPP files weren't including string_utils.h
when they used it, as well as some other order-sensitive
include issues that turned up.
2025-08-12 20:00:15 +08:00
Jeff Young
cd325198c1 Give WX_TEXT_ENTRY_DIALOG a title- and label-specific hash.
This keeps us from attempting to save/restore control
state between different usage cases.
2025-08-11 17:19:12 +01:00
Jeff Young
bcc12a7372 Formatting. 2025-07-11 14:41:24 +01:00
Jeff Young
5b91a24380 Retire WINDOW_FREEZER in favour of wxWindowUpdateLocker.
Also pulls out previous fix to a Sentry issue I can
no longer find, at least until I figure out what
went wrong.
2025-07-11 13:21:04 +01:00
Jeff Young
53c90b0469 Upgrade ShowPlayer re-entrancy guard (KICAD-XAC). 2025-07-10 17:54:42 +01:00
Mark Roszko
1922cab5f4 Kill the near-global spread of length_delay_calculation.h 2025-06-14 13:32:18 -04:00
JamesJCode
eb17ebee4e Implement time-domain length tuning
- Adds time and delay units
- Adds time domain tuning parameters entry and storage
- Adds pad-to-die delay property
- Adds time domain parameter interface for length / delay calculations
- Adds unit tracking for numerical constants through LIBEVAL
   - Will need future work to truly propagate through binary expressions
- Adds time domain tuning to meander placers
- Adds time delay display to net inspector panel
- Modifies DRC to handle time domain constraints
2025-04-17 21:46:56 +01:00
JamesJCode
9920751eb7 Fix net inspector thaw location to not break selection on MSW 2025-03-31 21:06:52 +01:00
JamesJCode
1202838135 Freeze net inspector data view when rebuilding the list of nets
Attempt to fix #20521 but it is very hard to reproduce

Fixes https://gitlab.com/kicad/code/kicad/-/issues/20521
2025-03-31 20:47:03 +01:00
JamesJCode
906c24bc6d Unify length calculation between router, board / frame, and DRC 2025-03-30 09:18:41 +01:00
JamesJCode
7a4325e610 Net inspector groups should be case insensitive 2025-03-30 00:04:37 +00:00
Jeff Young
6c97a40b8c Attempt to fix lack of initialisation on GTK/MSW.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/20050
2025-03-17 11:42:11 +00:00
Graham Keeth
812a3ff83e Add ellipses in net inspector menus 2025-02-22 21:33:24 +00:00
Jon Evans
914c015494 Fix compile warnings 2025-02-10 17:55:24 -05:00
JamesJCode
2f9bf31529 Add bulk change optimisation to composite update in net inspector 2025-02-09 16:46:18 +00:00
JamesJCode
6bc77195bd Move net inspector bulk update threshold to advanced config 2025-02-09 16:46:18 +00:00
JamesJCode
e6cead5218 Fix incorrectly named bulk board update argument 2025-02-09 16:46:18 +00:00
JamesJCode
71517dfa24 Fix persistence of expanded groups in PCB net inspector panel
Ensures expanded groups are maintained while:
- Handling bulk board updates
- When loading a new project / board
2025-02-08 18:08:39 +00:00
JamesJCode
00e4d72d4b Move ownership of listener cleanup to BOARD itself
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19736
2025-01-27 21:55:11 +00:00
Jeff Young
95b872f074 Formatting. 2025-01-13 19:14:25 +00:00
Seth Hillbrand
0b2d4d4879 Revise Copyright statement to align with TLF
Recommendation is to avoid using the year nomenclature as this
information is already encoded in the git repo.  Avoids needing to
repeatly update.

Also updates AUTHORS.txt from current repo with contributor names
2025-01-01 14:12:04 -08:00
Alex Shvartzkop
1997d8410e Fix "CheckMenuItem() failed, item not in the menu?" assert in net inspector on MSW.
Menu items should be added to the menu first and then checked on MSW.
2024-11-23 14:03:02 +03:00
Seth Hillbrand
10e1ba9c6b Fix layer ordering issue in net inspector
B_Cu is always the last layer, so if we are incrementing, we need to
check for matches, not index comparison

Fixes https://gitlab.com/kicad/code/kicad/-/issues/18933
2024-10-18 11:45:07 -07:00
Seth Hillbrand
5e0abadb23 Reorganize layer numbering
F_Cu = 0
B_Cu = 2
Remaining internal copper layers are even and incrementing

Non-copper layers are odd and incrementing.

This means that we can no longer do things like:
for( PCB_LAYER_ID layer = F_Cu; layer <= B_Cu; ++layer)
Instead, we have the class LAYER_RANGE:
for( PCB_LAYER_ID layer : LAYER_RANGE( F_Cu, B_Cu) )

Similarly, gt/lt tests should not refer to the integer value of the
layer.  We have functions such as IsCopperLayer to test whether a layer
is copper or not.

When using the connectivity RTree, the third dimension is layer, so we
provide B_Cu with the special INT_MAX value, ensuring that elements
between F_Cu and B_Cu will be identified.  There is a new, special
function GetBoardLayer() for interfacing with CN_ITEMS

Similarly, PNS layers remain unchanged and sequential.  A set of
interface functions is provided to map PNS layers to Board layers and
back.  This allows the PNS_LAYER_RANGE to function as expected
2024-09-06 23:07:58 +00:00
Jeff Young
89fa83bcc2 Formatting. 2024-05-25 12:05:13 +01:00
Jeff Young
397ae3bafd Support wildcards and regEx's in Net Inspector.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/18071
2024-05-24 12:24:05 +01:00
JamesJ
a321a86f38 Update net inspector after connectivity update when loading board
Fixes issue where if the net inspector was open when a board was
loaded, the track data would not be updated until a board edit
action triggered an update.
2024-04-04 22:29:47 +00:00
JamesJ
951065390e Add composite update callback to BOARD_LISTENER
Required for net inspector otherwise composite operations (such
as undo / redo, and length tuning) can result in multiple add /
remove events firing which results in inconsistent length state.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/17527
(for 9.0)
2024-04-04 22:29:47 +00:00
Mike Williams
2acf928723 PCB: fix net inspector assert on column show/hide menu
Also handle 0-width columns coming in from settings. GTK seems to have
an issue where these columns are impossible to resize even if they are
made visible.
2024-04-03 13:15:47 -04:00
JamesJ
54919e6854 Performance update for pcbnew net inspector
Forces full rebuild of nets list for bulk updates over a certain
size. This is more performant than iterating over all items in
a bulk update.
2024-03-24 20:29:15 +00:00
JamesJ
67d6e6afdf Only update net inspector when panel is shown.
Pcbnew can hang for a long time when undoing operations involving
large numbers of board items. This provides an interim workaround
(and replicated the behaviour of the search panel) by only
computing track statistics updates incrementally if the inspector
is displayed.

Partially fixes https://gitlab.com/kicad/code/kicad/-/issues/17561
(if net inspector is not shown)
2024-03-24 12:11:36 +00:00
JamesJ
de85b2217b Re-centralise handling of sort column in net inspector list.
- Includes GTK crash fix from a5ef4f1b
- Additionally removes an unneccesary re-sort when rebuilding columns
- Correctly saves column state when using pcbnew standalone
2024-03-21 21:07:08 +00:00
Jon Evans
a5ef4f1bef Net inspector: fix crash when switching boards on GTK
Can't invalidate columns while they are the sorting key
2024-03-20 23:04:28 -04:00
JamesJ
a763d613e5 Move Net Inspector dialog to a widget panel in pcbnew
Introduces some updates to the inspector, and a number of bug fixes:

- Correctly handles changes in board stackup
- Correctly handles unit change events
- Correctly handles language change events
- All layout / panel settings are stored to the project settings
- Retains ability to create net report
- Simple filter searches on net name and net class name (stored in settings)
- Allows hide / show of columns (stored in settings)
- Grouping by netclass (stored in settings)
- Optional filtering by net name (stored in settings)
- Optional filtering by net class (stored in settings)
- Custom grouping by net name match
2024-03-19 01:02:01 +00:00