Commit Graph

577 Commits

Author SHA1 Message Date
Alex Shvartzkop d552ce00aa Optimize redrawNetnames.
Using RTree is slower in this case.

RTree: 25 ms when moving cursor
This method: 5 ms when panning/zooming

(cherry picked from commit 62fb5697b4)
2024-06-20 18:49:32 +03:00
Jeff Young 245894e8eb Pull netname bug fixes and performance improvements back from master. 2024-06-14 19:01:37 +01:00
Jeff Young cde18d7ae7 The user can cancel the opening of many editors.
Don't play dice with the devil.

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

(cherry picked from commit a99377c1ec)
2024-05-09 23:36:32 +01:00
Mike Williams ce2ea3f3ae PCB: update footprint field when changing footprints
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/17598
2024-04-02 08:18:23 -04:00
Jeff Young 9d40374baf Don't capture references to local variables for CallAfter.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16934
2024-02-22 23:36:27 +00:00
Alex Shvartzkop f1caa262a6 Separate actions for single track and differential pair length tuning. 2024-02-08 14:58:28 +00:00
Jeff Young 1ff36f23b8 Clean up stale TODOs. 2024-02-05 15:49:57 +00:00
Jeff Young 1597882c1f Allow creation of groups with a single member.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16586
2024-01-19 17:32:00 +00:00
Marek Roszko 7c8ee26a38 FromDIP the pcb aui sizes 2024-01-17 22:02:05 -05:00
Marek Roszko b4bfdf95d3 Explicitly add 48, 128, 256 to icon bundles for each app 2024-01-16 17:21:44 -05:00
Marek Roszko d0236ca751 Make DRC exclusions work in cli & python DRC
The way exclusions work is actually silly, and you can end up with your project file losing them too.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/11562
2024-01-10 19:55:44 -05:00
Marek Roszko 9a890cdba9 Kick the wildcards and file exts into a static class, export it from kicommon 2023-12-27 21:10:01 -05:00
Jon Evans 7d25675e2b Fix handling of dimensions in footprint updater
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16448
2023-12-26 14:08:39 -05:00
Jeff Young 1b0cc82c56 Move a couple of stragglers to BOARD_COMMIT. 2023-12-17 21:01:31 +00:00
Jeff Young 66a15f6acf Re-factor frame pointer out of generator API. 2023-12-16 16:11:45 +00:00
Jeff Young 1df84f4d92 Move some PCB_GENERATOR special-cases to propMgr listeners. 2023-12-15 21:04:33 +00:00
Wayne Stambaugh 8687d5092f String and dialog layout fixes. 2023-12-13 11:49:34 -05:00
Jon Evans 8a474879c5 Make sure DRC engine works at startup
If we wait to initialize this until later, some
routing operations will not work properly as the
constraints will be empty
2023-12-10 23:00:19 -05:00
Jeff Young 6d43ef5678 Don't specify sizes when we don't need to.
However, in some places we *do* have to because otherwise wxWidgets
will pick a minimum size for us (and it's rather large).

Fixes https://gitlab.com/kicad/code/kicad/-/issues/16039
2023-11-07 14:53:41 +00:00
Alex Shvartzkop 847ab093c8 ADDED: Project chooser dialog for EasyEDA Pro import. 2023-10-30 09:35:27 +03: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
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 1b676985f6 Retire length tuning tool in favour of first-class meanders. 2023-10-12 17:54:34 +01:00
Alex Shvartzkop a4832dd3c8 ADDED: Interactive meander objects for length tuning. 2023-10-08 02:41:17 +00:00
Alex Shvartzkop 546c7ed218 Introduce GENERATOR_TOOL. 2023-10-08 02:41:17 +00:00
Alex Shvartzkop be72e07e61 Introduce PCB_GENERATOR. 2023-10-08 02:41:17 +00:00
Jeff Young e1c51ed192 A few performance improvements from profiling.
Most of them are very small; the removal of the Fracture() in
DRC_TEST_PROVIDER_COPPER_CLEARANCE::testZonesToZones() is the only
significant one.
2023-09-29 21:54:59 +01:00
Jeff Young 974da4ea7c Push most of DIALOG_CHOOSE_SYMBOL down into PANEL_SYMBOL_CHOOSER.
Includes a dialog wrapper (DIALOG_SYMBOL_CHOOSER) and a frame
wrapper (SYMBOL_CHOOSER_FRAME).
2023-09-29 00:13:12 +01:00
Jeff Young 1047130046 Push most of footprint chooser into PANEL_FOOTPRINT_CHOOSER.
Create 2 wrappers for it: DIALOG_FOOTPRINT_CHOOSER and
FOOTPRINT_CHOOSER_FRAME.  The first now gets called from wxGrid
editors, text button editors (such as Change Footprints), etc.

Retire FOOTPRINT_VIEWER_FRAME_MODAL.  FOOTPRINT_VIEWER_FRAME still
exists, but has very few uses at this point.
2023-09-27 16:02:13 +01:00
Jeff Young bf493f32f5 Nullptr safety for various panels.
Also moves preference saving out to parent as different parents
save different settings.
2023-09-25 12:35:54 +01:00
Jeff Young c2c71facb1 Tidy up shutdown of APPEARANCE_CONTROLS.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15024
2023-09-24 18:27:06 +01:00
Marek Roszko 22b733209d Fail GAL on its header leaking audit
Maybe we should rethink directly accessing GAL so much, but at least 600 files didn't need GAL leaked into them due to view_overlay.h
2023-09-18 19:52:27 -04:00
Jeff Young ef92429ac2 Implement changed notifiers for textvar, netclasses and severities.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15440
2023-09-17 17:35:15 +01:00
Jeff Young 5842e9c57e Smarten the UpdateAllItemsConditionally() tests in SetActiveLayer().
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15329
2023-09-15 17:44:43 +01:00
Marek Roszko 7505fd0f37 Profile can live in core 2023-09-07 07:47:01 -04:00
Josue Huaroto cef0f176d3
Add Unselect all in menu 2023-09-06 23:44:39 +00: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
Alex Shvartzkop b1b66f66f4 Prevent crash when a python script tries to use pcbnew too early.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15414
2023-08-25 00:09:56 +03:00
Mike Williams d9c2e0ab54 PCB: start of grid overrides
Only works for moves.
2023-08-24 10:29:09 -04:00
Jeff Young cf22d5b99b Preferences setting for force-show-fields-when-fp-selected.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15215
2023-08-20 18:10:28 +01: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
Jeff Young c3c7f731df Fix usage of AUI SetAuiPaneSize() hack in FOOTPRINT_EDIT_FRAME.
This brings it in line with PCB_EDIT_FRAME, which seems to work
reasonably well.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/14297
2023-07-16 22:29:21 +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
Jeff Young 879e6c302d Redraw via mask layers when switching Tented Vias on/off.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15164
2023-07-10 23:29:54 +01:00
jean-pierre charras 2c068ab86d Fix incorrect comment. No code change. 2023-07-01 14:17:57 +02:00
jean-pierre charras 011a8f29a3 Pcbnew, Update footprint: fix broken initialization of fields (especially ref and value)
- Revert commit 86e0e1cc, broken
- add comments to avoid a similar mistake
- ensure Reference and Value are correctly handled.
Fixes #15091
https://gitlab.com/kicad/code/kicad/-/issues/15091
2023-07-01 12:29:02 +02: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 b3d7aea4df dyn_cast<PCB_TEXT*> won't find PCB_FIELDs.
We really should get rid of dyn_cast entirely....

Fixes https://gitlab.com/kicad/code/kicad/-/issues/15052
2023-06-24 15:48:57 +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
Mike Williams 86e0e1cccb PCB, Change Footprint: actually update text attributes 2023-06-20 18:34:52 +00:00