GetFill() used count() followed by at(), which could
assert in debug builds and throw in release when a layer
had no fill data.
Narrow the catch(...) in JSON_SETTINGS::Store to
catch(const std::exception&) so unexpected non-standard
exceptions propagate instead of being silently swallowed.
When the first point of a PADS pour polygon is an arc
endpoint, the pending arc radius is zero because no
prior vertex set it. Compute the radius from the arc
center and endpoint as a fallback.
Batch all VOIDOUT regions into a single SHAPE_POLY_SET
before subtracting from the fill polygon.
JSON_SETTINGS::Load already wraps each parameter load in try/catch
to handle malformed or missing settings gracefully. Apply the same
defensive pattern to Store, which was unprotected. This prevents
nlohmann::json exceptions (such as out_of_range when intermediate
JSON path segments are missing) from propagating out during settings
serialization.
Fixes KICAD-1313
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
Also fix the previous code for clearing unknown keys to use
a JSON pointer so that it functions correctly when the JSON path
is more than one level deep.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/18734
The Load and MatchesFile methods never change the aSettings parameter.
They also immediately dereference the pointer unchecked, so make it a
ref so that the client code (single call site) becomes formally
responsible for never passing a nullptr.
- Fixes early load during NESTED_SETTINGS construction within
SCHEMATIC_SETTINGS, now failing due to missing migrations at that
object construction point
- Adds missing (NOOP) migration for NET_SETTINGS schema versions 1 -> 2
[ADDED]: A panel to the schematic editor that allows quick access to all
of the items connected to the currently highlighted net.
This is an initial swag at implementing a full net navigator feature. For
now it only shows the currently highlighted net nodes. The incremental
net list advanced setting must be enabled in order to use this feature due
to performance reasons. There are still some issues with saving the panel
position which will be addressed in the future.
Initial code for serializing wxAuiPaneInfo settings to and from JSON have
be implemented.
WxString does not allocate space for wide strings needed during
conversion unless the string is explicitly wide. This can cause buffer
over/underflow
Fixes https://gitlab.com/kicad/code/kicad/issues/10605
(cherry picked from commit 7601a3385f)
Cases where fp was left open could lead to dangling files until KiCad is
closed. Stack-based file stream automatically closes after parsing and
on exception
Fixes https://gitlab.com/kicad/code/kicad/issues/9336
This was leaking windows headers and partial wx headers to 1084 compilation units......
This also means math/util.h is leaking to 1084 compilation units which seems a bit high too.
Add a reset button that will only show up if the user
edits the JSON configuration for grids. This is a temporary
measure until we have a real grid editor GUI in V7.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7595