(Particularly useful for those that have no other settings and
otherwise look blank.)
Also replaces "Generator" terminology as it's a bit confusing
(and will only get more confusing with PCBNew Generators).
On Windows, ngspice doesn't output messages to stdout or stderr, it
starts the gui which causes KiCad to hang until ngspice is terminated.
We want to handle immediate responses but not get hung by the external
process. Passing a process class to wxExecute allows us to detach the
process (it will terminate and free itself) while still handling the
immediate output and errors
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15446
Also fixes a bug so that voltages, currents and power dissipations are
only probed if the flag is set -- this keeps ngspice from throwing an
error if you probe something twice (for instance, if you have .probe
commands in text and turn off the auto-probing).
Rewrite the spice exporter to work with the new simulation model
architecture and data model, with many bugfixes related to the latter
two along the way.
Double-calls are no longer needed when using settings. They can
interfere depending on how the system executes the commands.
Removing keeps the last used plugin as the default, rather than the last
selected
Fixes https://gitlab.com/kicad/code/kicad/issues/11094
(cherry picked from commit e8ef863861)
Adding a page in the ctor can generate events that change the default
page. Instead, we set the default after all pages have been added,
avoiding the reset
Fixes https://gitlab.com/kicad/code/kicad/issues/10910
(cherry picked from commit 5314ba6440)
ADDED: with cmake KICAD_MACOSX_APP_BUNDLE option the user can disable
the macOS app bundle creation when compiling on macOS. This permit to
use/install KiCad like any other *nix platform (/usr/bin, /usr/share,
ecc.). By default, cmake build the app bundle.
Calling wxDialog::EndModal() directly from inside the dialog is a
potential bug if the dialog is shown in the modeless or window modal
(quasi-modal). Use the internal button events where possible and
check for the appropriate mode before calling the correct end dialog
function.
wx/wx.h includes all wxWidgets .h files, and sometimes creates collision
names in #define between kicad and windows headers
Moreover, blindly including a lot of useless files is compil time consuming