When importing settings from a board with more copper layers and applying it
to a board with less copper layers, if the user has ticked the checkbox
"Layer settings", then KiCad will delete the inner copper layers. Only
when the user clicks OK does it then warn that it found deleted items on inner
layers. The message is too generic and comes after the layers have already
been deleted.
This Merge Request tries to address this by warning them early. The changes are:
1 - Added code to check if user is trying to import settings from a
board with less copper layers than the current loaded board. This
results in KiCad deleting inner copper layers. Now it presents a
warning dialog that explains the current settings will result in deleted
inner layers, and lets the user stop the import process before making any changes.
2 - Made "Import Settings" dialog disable "Import Settings" button
until at least one import option checkbox is checked.
3 - Made "Select All" button on "Import Settings" dialog toggle
between "Select All" and "Deselect All" on each click.
Items 2&3 were added to improve the overall import settings usability
experience.
Fixes issue https://gitlab.com/kicad/code/kicad/-/issues/4904
BuildConnectivity updates the ratsnest after it completes. By compiling
the ratsnest before connectivity, we update it twice with the dirty flag
being reset after connectivity updates.
Adds the missing default layer to the default board setups for two
layers with parts on single side (either top or bottom)
Fixes: lp:1841294
* https://bugs.launchpad.net/kicad/+bug/1841294
(cherry picked from commit 8b3a2984bf)
The standard DIM() macro was not typesafe as it happily deferred errors
to runtime that can be caught at compile time. Replacing it with a
generic C++11 constexpr allows for typecasting, comparison and compile
time error checking.