Defaults to fully expanded but stores the names for nodes that are
collapsed in project local settings. Because project local settings are
generally changed by modifying views or selection filters, these should
be saved on close rather than only when the project is saved
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19276
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
Use simplified file extension and name checks rather than a regular
expression to determine which files to archive.
Fix incorrect use of wxFileName which generates invalid paths when the
last folder in the path contains dots.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/20431
* 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
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
Makes a test backup file and compares to the existing zip file backup to
see if the files have changed since it was made. If so, the new file is
kept. If not, we discard the new file and continue
Fixes https://gitlab.com/kicad/code/kicad/-/issues/12453
The arraystring reference is lost when we don't keep the wxFileName
variable in scope.
This also adds removing invalid paths and checking for correct version
before sorting
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17749
We need to check if a lockfile is valid to determine if we should
override the lock. Valid() is true if the lockfile couldn't be created
b/c of permissions or if the lockfile could be created and acquired.
wxSingleInstanceChecker is meant for running programs, not file locking.
This implements an RAII class for file locking that stores the lock
files next to the file being locked, allowing it to be easily found and
removed. Also includes the ability to override the lock, with
information about the original owner
Fixes https://gitlab.com/kicad/code/kicad/-/issues/14734
- Avoid repetition and errors from typos
- Allow simple changes
- Simpler data type handling, the constants are wxString
(Cherry-picked from f135881bd6378ccd92fd4d333fe0d65c9033d634 in 7.0)
This is needed so Python scripts can get built-in colors using the
SETTINGS_MANAGER.GetColorSettings() member.
Otherwise calling it with a built-in name crashes.
(cherry picked from commit aee6d9d01c28912c5a0b3e5b9d0b88a66eee6d49)