This Reset() override was originally added to fix a bug when opening
a new schematic in stand-alone. However, we now do that sort of
cleanup in SCH_EDIT_FRAME::doCloseWindow().
Fixes https://gitlab.com/kicad/code/kicad/issues/14470
* Add compare method to COLOR4D object.
* Add unit test to validate COLOR4D comparison method.
* Add missing color test in text attribute comparison method.
* Add unit test for text attribute object.
* Remove unnecessary headers from text attribute header.
* Move text attribute code into separate source file.
The simulator has advanced considerably, and it is seeing lots of active
development, so make it a required part of KiCad. Additionally, the
build without the simulator has actually been broken for a while, so no
one clearly is building without ngspice right now.
1) More REPORTER, less exception processing
2) Remove UI calls from SPICE_MODEL
3) Don't replace netlist with errors; show both
4) Don't bail out of netlist generation after single error
Fixes https://gitlab.com/kicad/code/kicad/issues/14295
Don't assume the dialog is mode-less and call Destroy() from within a
dialog method. This will most assuredly crash if the dialog is shown
modally or quasi-modally.
Don't leak memory for mode-less dialogs created on the stack. Make sure
when the parent frame window is closed that all mode-less dialog memory
is cleaned up. Dialogs are not child windows like controls and toolbars
so their memory does not automatically get cleaned up when the parent
window is destroyed.
Do not directly access frame parent window's pointer in dialog destructors.
Apparently the tear down order when destroying mode-less dialogs is not
guaranteed so the parent window may get deleted before the dialog causing
a crash when accessing the parent window pointer from the dialog dtor.
Do not close mode-less dialogs in the parent frame's destructor. This
doesn't guarantee that the dialog(s) will be destroyed before the parent
but it may reduce some careless mode-less dialog event handling in the
future.
(They should only be used when we collect more info before performing
the command. If the command is something like showing the simulator,
then there should be no elipsis as we don't collect more info before
showing the window.)
Also improves a few of the menu tooltips.
Also adds selection cleared event to handled events.
And a small performance boost to not scan items for selection changes
when find is not seleciton-based.
Pass 'false' as aStartAtCurrent to ReannotateByOptions(). Causes Pasing() symbols to start at the first available refdes after the currently
configured annotate start number, m_annotateStartNum.
Fixes#13342