Turns out project locks would get created and only stick around for a short duration as the default move constructor was letting the og object free the lock.
But if you crashed kicad or managed something weird, you can get a lock file with no override prompt which also creates confusion as some stuff gets set read only.
So lets just fix this up.
- Implement move constructor on lockfile so that the old object will no longer free the lockfile
- Move lock ownership to the project itself, just slightly less weird to handle for the lock override
- Implement the override lock prompt
Adding the missing default page number ("1") allows the CLI plotting and
printing by page number to work correctly even if the schematic hasn't been
saved in the schematic editor.
This also adds a default new schematic UUID and embedded font setting.
Use the fancy new file formatting style.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/20448
* 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
Handle Altium project file format
Parse individual schematic files and layout files
Create top-level schematic file
Link imported UUIDs between schematic symbol and footprints based on
refdes
Create KiCad project
Map Altium layout layers between KiCad
Fixes https://gitlab.com/kicad/code/kicad/-/issues/2117
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
To avoid clipping the launcher buttons, this size was determined by hand
tweaking on Linux so it may be less than optimal on other platforms. This
only affects the very first launch of a new version. Once the frame size
is saved in the configuration file, that is the new size until the user
changes it.
The call to FOOTPRINT_LIST::GetInstance( aKiway ) returns
a null pointer when it fails, rather than throwing. So this
wouldn't actually catch a KiWay failure and avert a segfault.
And no other caller of ReadFootprintFiles is in a try - so either
this function won't throw, or if it does, all callsites need
updating. For now, go with the majority.
- fix broken code KICAD_MANAGER_FRAME::PrintPrjInfo()
- fix issues created by using KISTATUSBAR instead of wxStatusBar
(the user field count differs because there are 4 other fields added)
- do do use a fixed size in KISTATUSBAR for FIELD_OFFSET_BGJOB_TEXT field:
fixed field size does not work fine if the text to display is not known
Fixes#16535https://gitlab.com/kicad/code/kicad/-/issues/16535