169 Commits

Author SHA1 Message Date
Seth Hillbrand 265b00d994 Try to fix DRC rule editor slow load on Windows
During LoadExistingRules, each call to AppendNewRuleTreeItem
triggered SelectItem, which fired the selection-changed handler.
That handler created a full PANEL_DRC_RULE_EDITOR per rule,
compiling 14 regex patterns, instantiating Scintilla, running
layout, then immediately destroying it when the next rule was
appended.  Also fix other potential slow downs
2026-03-12 09:56:49 -07:00
Jeff Young 4da7c180c2 Apply KiCad look & feel to DRC Rules Editor. 2026-03-07 19:28:46 +00:00
Damjan Prerad e2a9f06420 Fix uninitialized m_isNew causing asterisk on all DRC Rule Editor tree items
The default constructor of RULE_EDITOR_DATA_BASE left m_isNew
uninitialized. On Linux, the garbage memory value was assigned
causing IsNew() to return true for every rule and appending
astersix to all tree items.

Fix by adding a default member initializer: m_isNew = false.
2026-02-26 11:34:41 +01:00
Damjan Prerad cf80df280c Fix ghost windows appearing in macOS Mission Control when using DRC Rule Editor
Clicking on rules in the tree created a wxDragImage each time, which on
macOS opens a hidden full-screen window. These windows were never cleaned
up and piled up as ghost windows in Mission Control.

Removed wxDragImage and replaced drag feedback with a highlight
on the drop target item.
2026-02-26 00:13:34 +01:00
Seth Hillbrand d7460bc5fe Fix rule editor dialog sizing inflation
DIALOG_SHIM::Show() and finishDialogSettings() both
call SetSizeHints(), which computes the best size from
the full unconstrained scrolled content area. This
inflated the dialog to unusable heights.

Move size correction logic into the base class by
overriding Show() to cap minimum height at 500px and
resetting to m_initialSize after finishDialogSettings().
Remove the duplicate size fixups from the derived DRC
editor's TransferDataToWindow(). Increase default
initial height from 680 to 800.
2026-02-19 21:59:39 -08:00
Damjan Prerad 391b87cfa8 Add vertical scrolling to DRC Rule Editor content panel
Wrap the right side content area in a wxScrolledWindow so that rule
panels remain accessible when many constraints are added.
RefreshContentScrollArea() function is called on resize,
rule switch and and dynamic condition changes.
2026-02-18 11:45:38 +01:00
Damjan Prerad 8d199c16a8 Add Ctrl+S keyboard shortcut to save DRC rules in rule editor
When the DRC Rule Editor dialog is shown modeless, Cmd+S is processed before the dialog receives the key event.
Redirect the save action in BOARD_EDITOR_CONTROL::Save() to the rule editor's OnSave() when focus is inside the dialog. Also, add an OnCharHook override in RULE_EDITOR_DIALOG_BASE to handle the modal dialog case.
2026-02-15 14:01:19 -08:00
Seth Hillbrand d0dc87f558 Clean up DRC rule editor layer selection
When selecting a layer, not all rules should allow all layers.

Additionally, modify the Close to Close/Discard based on unsaved changes
2026-02-15 14:01:01 -08:00
Jeff Young 02f97cbb1d Allow multiple conditions of same type. 2026-01-28 17:37:14 +00:00
Seth Hillbrand a3a12399f2 Add graphical editor for custom design rules 2026-01-12 21:42:45 -08:00
Alex Shvartzkop c4556d6595 Use newer SetImages API for tree icons instead of wxImageList. 2026-01-01 20:15:44 +03:00
Jeff Young 5686440ef2 Our Mac wxWidgets branch reports itself as 3.2 but has some 3.3 fixes in it. 2026-01-01 15:19:32 +00:00
Jeff Young e3a99a324a Don't let previously saved dialog values override color.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/22603
2025-12-31 13:32:38 +00:00
Jeff Young 1f9965bd60 Add control handling to toolbar customisation. 2025-12-29 20:30:35 +00:00
Jeff Young 2ad5e15f4a Fix bug where Mac tree icons are 2X bigger than grid icons. 2025-12-28 21:17:09 +00:00
Jeff Young c3d681de3b Implement up/down arrows for custom toolbar definitions. 2025-12-28 21:17:09 +00:00
Jeff Young 47e40148de Support double-click in toolbar customisation dialog. 2025-12-28 21:17:09 +00:00
Jeff Young 728590e2d7 Allow evaluation of text for colors. 2025-12-15 20:58:35 +00:00
Seth Hillbrand 044332a889 Allow editing hotkeys where they are
Help->List Hotkeys should allow changing the hotkeys not just listing
2025-10-30 12:37:48 -07:00
Jon Evans 6e99b45a6e Remove obsolete code 2025-10-15 22:18:53 -04:00
Jon Evans 266c8c8754 Refactor and consolidate startup wizard
- Add welcome page
- Add settings migration
- Add library table configuration
- Combine sentry and updates into a privacy step
- Support in single-top mode
2025-10-15 22:18:52 -04:00
Marek Roszko d2f927dd7e ADDED: Central startup wizard to prompt for initial settings 2025-10-15 22:18:52 -04:00
Jeff Young 730e5dab66 Move WX_GRID_AUTOSIZER into WX_GRID and use in more places.
Also fixes some bugs around skipping of events.

Also fixes some bugs around hidden columns.
2025-09-26 12:13:45 +01:00
Jeff Young e9ccae85f2 ADDED: Update Symbol/Footprint from Library... buttons to diff dialogs.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/21646
2025-09-24 11:36:49 +01:00
Mark Roszko 1e9025a4dc Move to a fixed enum for page sizes as well as well as holding a list of types accessible in a vector.
Drops some hardcoded size names in places among other bits.

Woooo committed pushed at 36000 feet.
2025-09-13 20:12:53 +02:00
Seth Hillbrand ec7b831be3 ADDED: Search feature for html message box
Allow search for text in e.g. the custom rules examples

Fixes https://gitlab.com/kicad/code/kicad/-/issues/21550
2025-08-29 10:29:11 -07:00
Seth Hillbrand 29c4d9b197 Add width/height adjustment to reference image
Allows setting specific width or height on a reference image instead of
just scale

Fixes https://gitlab.com/kicad/code/kicad/-/issues/18567
2025-08-26 11:22:32 -07:00
Seth Hillbrand bfe805a221 Add user-controlled scaling factor
Lets the user decide what 100% zoom is for their system based on a
slider.

This is inspired by Inkscape's custom scaling widget

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19256
2025-08-25 14:37:07 -07:00
Jeff Young 8c3026cf1a Naming conventions. 2025-08-25 12:13:38 +01:00
Jeff Young a7772e3b91 CHANGED: flatten image properties dialogs.
Also moves scale to UNIT_BINDER for correct locale
handling.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/17837
2025-08-23 20:32:11 +01:00
Jeff Young 42735b775d Remove unreachable PASTE_MODE.
Also, don't depend on enum order.

Fixes KICAD-YJ8.
2025-08-21 12:29:34 +01:00
Seth Hillbrand 23c1a68da8 Make printing consistent with plotting.
How you ask?  Plot first -> then read the PDF and print directly to the
platform-specific printers.  Roundabout?  Yes.  Better than wx printing?
Darnbetcha.

Also allows multi-size page printing and proper margins and print
preview

Fixes https://gitlab.com/kicad/code/kicad/-/issues/1831
2025-08-16 20:07:45 -07:00
Jeff Young d5f16adde1 ADDED: maintenance page to preferences. 2025-08-15 16:57:46 +01:00
Jeff Young 9ff30873fc Prettify spacemouse preferences panel. 2025-08-15 16:57:46 +01:00
Jeff Young 60b4202766 CHANGED: Rework lock overrides architecture.
We now use a checkbox in the aux toolbar rather
than a query dialog (with "remember setting" checkbox).
2025-08-13 10:30:26 +01:00
Seth Hillbrand 0a5de5010f ADDED: Spacemouse support for Linux
Uses libspnav to handle spacemouse data.  Overlays on existing
spacemouse framework to handle view activation

Fixes https://gitlab.com/kicad/code/kicad/-/issues/16133
2025-08-12 07:04:54 -07:00
John Beard 6c648c5ea6 Assign netclass dialog: use TransferDataToWindow 2025-08-12 20:01:02 +08:00
John Beard d1aa7b148a Eeschema/Pcbnew: allow multiple nets to be assigned to a netclass at once
There is only a simplistic multi-net pattern expression
generator here (A|B|...) with a single prefix detected
rather than anything too fancy.

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/21451
2025-08-12 20:00:33 +08:00
Jeff Young 38023a33b2 Give some more dialogs separate hashkeys for separate usages. 2025-08-11 17:19:12 +01:00
Jeff Young 6947b3b233 Even more open-coded dialog state-saving cleanup. 2025-08-11 17:19:12 +01: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 66ee17cdcd Start removing old open-coded dialog state saving.
(State saving is now handled uniformly in DIALOG_SHIM.)
2025-08-08 13:54:26 +01:00
Jeff Young 1b8119056f More code sharing. 2025-07-26 21:24:37 +01:00
Jeff Young f3050bd7ed Nullptr safety; performance; formatting. 2025-06-08 16:33:05 +01:00
JamesJCode f1344e921a Final purge of 'tuning profile' -> 'delay profile' in time-domain code
Only mention remains in the delay profile settings JSON
2025-04-19 00:30:34 +01: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
Dmitry Rezvanov a3fae053c4 pcbnew: Add sorting functionality for netclass assignments
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/18819
2025-04-15 09:32:16 -07:00
jean-pierre charras f8ec23db00 WX_PT_ENTRY_DIALOG: enhancements: fix min size and add reset button.
It is used to enter a point position and a grid origin.
The new button (only in grid origin dialog) allows reset the position.
2025-04-03 13:19:20 +02:00
JamesJCode ede5faee72 Implement dynamic assignment of component classes 2025-03-15 14:33:47 +00:00
Jeff Young 31b788c04f Add a bit of protection from integer overflows.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19660
2025-03-11 15:11:31 +00:00