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
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.
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.
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.
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.
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.
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
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
- 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