Simulation: Signal list is not updated when "exclude from simulation" unchecked and simulation rerun
Description
With a simple example project, first set R3 to be excluded from simulation.
Then run simulation transient 1us step 2ms total time with the following result:
This is correct so far, and R3 is omitted from the simulation. Now keep the simulation window open, in schematic editor uncheck "exclude from simulation" for R3, and then press the play button in the simulation window to rerun the simulation with the following result:
Now the amplitude of the blue sine wave has been updated to correspond to the result with R3 included in the simulation, and r3 is also included in the raw output from ngspice shown under the waveforms, but the signal list to the right of the waveform has not been updated with the signals corresponding to the inclusion of R3. There should be at least I(R3) and P(R3) in this case, and in other cases than this particular simple example, new V(XX) will also be created. These should be shown (they are already present in ngspice - it is only an issue of updating the GUI to show them).
Note 1: The settings that have previously been made in the signal list should be remembered - in this case plot V(Net-R1-+) and plot V(Net-R1--) should stay checked, and only the new signals added.
Note 2: This affects both 8.0 stable and 8.99 nightly (master).
Note 3: In the opposite case, when R3 was present and a signal plot or cursor checkbox checked, and then R3 excluded from the simulation, the cursor and signal checkboxes and cursor positions for R3 should be remembered (as long as R3 is still in the schematic), such that next time R3 is included, it's signal(s) is(are) also plotted again if it(they) were last time it was included. This is important for workflow efficiency when different circuit configurations are compared.
(If the simulation window is closed before R3 is included in the simulation and then reopened, the signal list will be updated to include R3, but this is a major inconvenience and kills the efficiency in certain workflows. The signal list should be updated, without clearing the settings that have already been made in it!, when the simulation is simply rerun without closing/opening the window.)
Example project from 8.0:
Test_20240329_sim_signal_update.zip
Steps to reproduce
- Draw simple schematic according to screenshot.
- Mark R3 as exclude from simulation (in properties panel for example).
- Klick simulation icon in schematic editor.
- Create new simulation TRAN with suitable (arbitrary, does not affect the issue) time step (1u) and final time (2m).
- Run simulation.
- Go back to schematic editor, leaving simulation window open.
- Uncheck "exclude from simulation" for R3
- Go back to simulator and rerun simulation with play button. The waveforms will update but the signal list does not show R3.
KiCad Version
Application: x86_64 on x86_64
Version: 8.0.1-1.fc39, release build
Libraries:
wxWidgets 3.2.4
FreeType 2.13.1
HarfBuzz 8.2.1
FontConfig 2.14.2
libcurl/8.2.1 OpenSSL/3.1.1 zlib/1.2.13 brotli/1.1.0 libidn2/2.3.7 libpsl/0.21.2 (+libidn2/2.3.4) libssh/0.10.6/openssl/zlib nghttp2/1.55.1 OpenLDAP/2.6.6
Platform: Fedora Linux 39 (KDE Plasma), 64 bit, Little endian, wxGTK, X11, KDE, wayland
Build Info:
Date: Mar 14 2024 00:00:00
wxWidgets: 3.2.4 (wchar_t,wx containers) GTK+ 3.24
Boost: 1.81.0
OCC: 7.6.3
Curl: 8.2.1
ngspice: 42
Compiler: GCC 13.2.1 with C++ ABI 1018
Build settings: