Two race conditions may have caused intermittent false "Library not found in
library table" errors when "remember open files" was enabled. First,
PreloadLibraries had a gap between checking and setting the in-progress flag and
second, SYMBOL_LIBRARY_ADAPTER::AsyncLoad didn't have a mutex
Fixes https://gitlab.com/kicad/code/kicad/-/issues/22764
Gets rid of the SetRoot() because we don't have roots anymore so this
was confusing. We now use SetTopLevelSheets() to add sheets to the
virtual root. Ensure that the hierarchy is maintained on each
transition
Allows activating a display panel that shows a webpage designed to
provide instances of symbols, footprints, 3d models and spice models to
the designer.
The webpage can be installed via PCM or directly in the panel. Webpages
should be registered with the KiCad project in order to avoid a warning
when showing content.
Allows multiple, top-level schematic sheets. Records of the sheets are
stored in the project file. All top-level sheets live under a virtual
root sheet in the hierarchy. This virtual root is suppressed for export
and general visibility
Fixes https://gitlab.com/kicad/code/kicad/-/issues/2063
The scope, recursion, reset options and message filters remain in the
user preferences. Others including numbering, sort order and reuse are
schematic preferences.
Also, the oddball subunit display remains here but it doesn't really
belong in annotation.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17942
(This particular case happens when the user cancels
the progress dialog while loading symbols before the
symbol picker has been displayed. 3.5K people have
done this 13K times on MSW.)
* Manage the settings using the settings manager for better lifetimes
* Better architect the internals and JSON to make it easier to identify
the various tool types
(They'll just point to temp files anyway.)
Also moves schematic netlist fetching to
MAIL_SCH_GET_NETLIST.
Eeschema's generateSchematicNetlist() hasn't
worked in some time.
Also suppresses parity error counts when parity
not run due to failure to find or load schematic.
Also writes out ERC/DRC reports even when they're
set to fail the job.
Recommendation is to avoid using the year nomenclature as this
information is already encoded in the git repo. Avoids needing to
repeatly update.
Also updates AUTHORS.txt from current repo with contributor names
The sheet list is returned as a copy of the cached list rather than a
reference to prevent external code from changing the list. While not as
performant, it eliminates the risk of the sheet list being altered in
ways that could break the schematic. The sheet list should only be
updated by calling SCHEMATIC::RefreshHierarchy() when any appropriate
sheet changes are made.
Note to developers: there is something inherently different about how the
QA tests are loading and handling schematics versus the schematic editor.
Using the cached sheet list for the SCHEMATIC object will cause some QA
test to fail. This is why SCHEMATIC::Hierarchy() has not replaced
SCHEMATIC::BuildSheetListSortedByPageNumbers() everywhere.
Also removes the side-effect that SCH_SHEET_LIST's
c'tor would sort the list (and write virtual page
numbers) anytime the starting sheet was the root.
Also, definitely don't build a SHEET_LIST (sorted or
otherwise) if you're not even going to use it.
Also don't build SCH_SHEET_LISTs on idle events. Better
to just always have the Next Sheet button enabled (we
already beep if you click it and there's no next sheet).
Also, use a SCREEN_LIST when you can. It's much cheaper
to create.
ADDED: Horizontal/vertical zoom for simulator plots, via mouse wheel,
toolbar buttons, menu commands, and hotkeys.
ADDED: Simulator preferences panel, populated with mouse wheel
and trackpad settings that control pan and zoom of simulator plots.
ADDED: Zoom In/Out Horizontally/Vertically commands that can be bound
to hotkeys.
CHANGED: Simulator plot scroll wheel gestures are no longer hard-coded
and can now be configured via the new Simulator preferences panel.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16597
Other unreported bugs that were fixed:
- Fixed wierd, jumpy simulator plot view limiting behavior.
- Fixed Zoom In Center and Zoom Out Center commands not preserving
the simulator plot center point.
- Fixed simulator plot nudging when exported as PNGs.
- Fixed rectangular selection zoom being able to exceed simulator plot
view limits.
Notes:
- Provided new SIM_PREFERENCES struct to be used for future
simulator preferences set via the simulator preferences dialog.
- Bundled pre-existing EESCHEMA_SETTINGS::SIMULATOR settings into
EESCHEMA_SETTINGS::SIMULATOR::VIEW.
- Replaced mpWindow::EnableMouseWheelPan with more general
SetMouseWheelActions.
- Refactored and tidied up wxMathPlot's mpWindow code involved with
fitting, zooming, and panning.
- Consolidated long lists of duplicated member variable initializers to
a new mpWindow private delegated constructor.
- Provided provisional Zoom In/Out Horizontally/Vertically toolbar
icons that need improvement by a graphics designer.
- Provided gitignore entries for the Qt Creator IDE