125 Commits

Author SHA1 Message Date
Mark Roszko
9d32d208b8 Fix project lock both working and not working.
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
2025-06-01 20:20:49 -04:00
Wayne Stambaugh
598850b1f0 Fix project archiving.
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
2025-04-05 15:53:59 -04:00
Ian McInerney
85810510f4 Tweak toolbar settings a bit
* 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
2025-02-28 01:57:37 +00:00
Ian McInerney
7e2a81da15 Initial JSON work 2025-02-28 01:57:37 +00:00
Jon Evans
5426bfcdcd Don't autosave future formats of project settings
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19910

(cherry picked from commit 7d689e0c616c8af4b056f20ce3c95c37624e3df7)
2025-02-10 19:20:56 -05:00
Jon Evans
a429afe4e9 Fix a few more cases where migrated project files were being saved implicitly 2025-02-04 18:37:31 -05:00
Marek Roszko
6652d3eca7 Remove the long path adjustment for now
Some bugs between archive vs backup project
2025-01-28 06:36:29 -05:00
Wayne Stambaugh
e09b095533 Common folder housekeeping part 3. 2025-01-16 11:50:08 -05:00
Ian McInerney
6be3401b92 Add more global extensions and switch archiver to use them 2025-01-05 21:59:53 +00:00
Marek Roszko
9e2122d1f2 qa_api bypasses the normal pgm setup, test for gui using wxtheapp 2025-01-05 11:21:27 -05:00
Marek Roszko
cb948302e2 Guard the cwd change for gui only 2025-01-04 19:25:05 -05:00
Marek Roszko
4dfedf4fb4 Set the cwd to the active project path 2025-01-04 19:22:29 -05:00
Seth Hillbrand
0b2d4d4879 Revise Copyright statement to align with TLF
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
2025-01-01 14:12:04 -08:00
Marek Roszko
0e1b47427c Add a windows specific hack to make backups work past max length
Since backups are most likely to encounter max path limitations compared to other things we do in kicad
2024-12-29 19:54:11 -05:00
Jeff Young
f40cb8dcb8 Remove a couple of fixed-version-number stragglers.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/18809
2024-12-26 17:53:03 +00:00
JamesJCode
95bbcaffbf Fix some compiler warnings 2024-10-03 07:11:59 +01:00
Marek Roszko
d74caace0a Initial jobset creation and running within the CLI and GUI.
Incomplete, just pushing this before feature freeze, much fixing left
2024-09-30 20:04:53 -04:00
Mike Williams
2c99bc6c6d new feature: Schematic Design Blocks
Added to advanced config, default to off.
EnableDesignBlocks=1 in kicad_advanced to test

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/2263
2024-09-05 08:35:49 -04:00
JamesJCode
84c0453ca9 Check for >= 2 filenames when comparing backup archives on close
Fixes a vector out-of-bounds error
2024-07-16 18:33:14 +01:00
Seth Hillbrand
ffe496abf3 Cleanup !1322 for Project Backup
Do conservative check for time offset before making the expensive
backup.  Don't clear and re-check the file list for a single file change
2024-07-11 10:48:13 -07:00
Harry Best
cc5fb60d93 CHANGED: Backup project only when different
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
2024-07-11 10:48:13 -07:00
Seth Hillbrand
d2701323a8 Don't sort on lost references
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
2024-04-17 11:35:50 -07:00
Jon Evans
7b0bb59b37 Remove hard-coded versioned env vars in most places 2024-02-15 15:31:08 +00:00
Jon Evans
febe759e49 Do not mess with KIPRJMOD when loading aux projects
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16810
2024-02-08 18:28:20 -05:00
Jon Evans
9d57637a1a Fix clobbering of common settings
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16905
2024-02-07 18:31:43 -05:00
Jon Evans
169114fd07 Fix path from ba25f881c6 2024-02-07 08:55:03 -05:00
Jon Evans
ba25f881c6 Save common settings if we just created them
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16775
2024-02-06 21:33:44 -05:00
Marek Roszko
9a890cdba9 Kick the wildcards and file exts into a static class, export it from kicommon 2023-12-27 21:10:01 -05:00
Wayne Stambaugh
922aee1532 Coding policy fixes. 2023-12-20 07:17:23 -05:00
Jon Evans
c6c808a7fa Support system-installed color themes
Install to ${KICAD_DATA}/colors/

Fixes https://gitlab.com/kicad/code/kicad/-/issues/15920
2023-10-31 23:05:08 -04:00
Marek Roszko
c006482feb Add SETTINGS_MANAGER::GetUserSettingsPath back because swig 2023-09-24 20:10:32 -04:00
Marek Roszko
121ea99824 Move the settings path to PATHS to allow shifting other classes into kicommon 2023-09-23 20:06:58 -04:00
Seth Hillbrand
c7758999af Handle LOCKFILE logistics for ro
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.
2023-05-31 17:04:32 -07:00
Seth Hillbrand
122be418bb Upgrade file locking
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
2023-05-24 13:51:54 -07:00
Jon Evans
2ab47ee1e9 Allow for settings to be added during load
Fixes https://gitlab.com/kicad/code/kicad/-/issues/14691
2023-05-07 08:48:07 -04:00
Alex
b89545e484 GTK: Fix settings import paths showing up twice. 2023-03-19 12:51:37 +03:00
Salvador E. Tropea
13de3c0656 Use constants for the names of the built-in colors
- Avoid repetition and errors from typos
- Allow simple changes
- Simpler data type handling, the constants are wxString

(Cherry-picked from f135881bd6378ccd92fd4d333fe0d65c9033d634 in 7.0)
2023-03-07 10:34:42 +00:00
Salvador E. Tropea
915446a472 Create the built-in colors in the constructor
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)
2023-02-22 12:52:44 +00:00
Marek Roszko
719be61627 Silence some kicad-cli loading errors on clean installs 2023-01-31 20:57:31 -05:00
Marek Roszko
088cadfefc Attempt to select PCM themes for cli by their display name
Fixes https://gitlab.com/kicad/code/kicad/-/issues/13648
2023-01-28 17:07:06 -05:00
Seth Hillbrand
a9ed47f06c Update KICAD6->KICAD7 2023-01-23 22:21:12 +00:00
Marek Roszko
0ff32d20cd wxS more things 2023-01-22 09:41:42 -05:00
Marek Roszko
1edf84d756 More wxS ugh 2023-01-17 07:43:04 -05:00
Alex
53dedb2c99 Prefer later versions in import of previous settings 2023-01-08 00:24:23 +05:00
Jeff Young
f5770fe7e0 Actually free the projects before the settings.
Fixes https://gitlab.com/kicad/code/kicad/issues/10973
2022-12-01 00:05:21 +00:00
Jeff Young
a0b6247a06 Try a different order of destruction.
Fixes https://gitlab.com/kicad/code/kicad/issues/10973
2022-11-16 00:42:38 +00:00
Marek Roszko
3fe004fd1b New kicad-cli will now be the cli interface 2022-10-04 22:24:13 -04:00
Seth Hillbrand
f1261e71d4 Replace boost::optional with std::optional 2022-08-25 15:50:47 -07:00
Jeff Young
6f49b57f9b Cleanup & performance enhancements. 2022-08-01 13:09:51 +01:00
jean-pierre charras
993c446fdf Fix some warnings detected by PVS-STUDIO (most are not used vars) 2022-07-25 18:23:52 +02:00