Jon Evans
c9a660a80c
Rework JSON integration to speed up build
2021-06-05 17:08:38 -04:00
Marek Roszko
cf2bb5692a
Remove the wxLog calls from math/util.h for now
...
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.
2021-06-01 18:44:22 -04:00
Jon Evans
5b040f16a3
Refactor environment variable storage
...
CHANGED: Environment variables defined outside of KiCad will no longer
be saved in the settings file. Paths can be configured via
the Configure Paths dialog and those changes will be saved in
the settings file if the new path is different from the default
and the path variable was not defined in the system environment.
2021-05-01 13:39:43 -04:00
Jon Evans
e7d3bf29aa
Don't save project for legacy board without explicit action
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7368
2021-04-21 21:27:23 -04:00
Jon Evans
693413b47e
Fix project saving in pcbnew standalone when project is new
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/8244
2021-04-20 20:59:51 -04:00
Jeff Young
f7cc6d1e1e
Fix save as and save copy as for project files.
2021-04-13 17:56:50 +01:00
Jon Evans
c1573744be
Lock project files when opening; open locked projects read-only
...
Also clean up an include-what-you-use problem
Fixes https://gitlab.com/kicad/code/kicad/-/issues/8037
2021-04-02 19:29:56 -04:00
Jeff Young
676d862bee
Don't allow really narrow widths for tree control.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5479
2021-03-30 20:59:11 +01:00
Jon Evans
0377eea45e
Do not migrate hotkeys from old versions
...
We don't have a migration handler that can resolve conflicts
and tell the difference between hotkey changes that KiCad made
that we want users to adapt to, and hotkey changes made by the
user.
So, the least-bad option for 6.0 is to just not migrate old
hotkey config files.
See https://gitlab.com/kicad/code/kicad/-/issues/7816
2021-03-29 18:14:24 -04:00
Jon Evans
cc8413c841
Tweak default zoom settings for Windows
...
Acceleration seems to be worse than constant on many
systems, so let's turn it off by default.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/5434
2021-03-21 19:46:23 -04:00
Jon Evans
c04e19f9ac
Include optimization: move some things from common.h to point-of-use
2021-03-20 12:09:18 -04:00
Jon Evans
7231f1dc68
Fix caching strategy
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7960
2021-03-19 12:13:00 -04:00
Jon Evans
472d0e03fc
Remove unused color layer
2021-03-18 22:30:24 -04:00
Jon Evans
405fa183b2
Add icon theme selection behind advanced config flag
2021-03-11 08:37:35 -05:00
Jon Evans
dbb6d0fb4a
Move paste and mask clearance settings back to board file
...
These are needed for correct Gerber plotting so need to be stored
along with the board file
2021-02-28 14:04:28 -05:00
Wayne Stambaugh
50712f7280
Attempt to fix Coverity issue 305290.
2021-02-24 14:32:34 -05:00
Jon Evans
aedc65f20f
Fix footprint editor default grid
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7659
2021-02-23 20:07:46 -05:00
Jeff Young
efae25e24e
Splitter bar for netclass setup.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/7668
2021-02-23 15:06:41 +00:00
Jeff Young
cad5198ab7
Worksheet -> (industry standard) Drawing Sheet.
2021-02-22 17:35:46 +00:00
Jon Evans
f1039dfb94
Disable project saving outside explicit save actions
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7589
2021-02-21 21:31:45 -05:00
Jon Evans
6fa0ac45af
Re-enable custom grid settings for Pcbnew
...
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
2021-02-21 15:33:13 -05:00
Jon Evans
5433adda2e
Add extra search paths for importing settings in FlatPak builds
2021-02-14 15:04:42 -05:00
Jon Evans
9ce255dc77
Use a different color for front and back courtyards
2021-02-09 20:15:30 -05:00
Wayne Stambaugh
5ecef204cd
Coding policy fixes.
...
Using "this->" violates coding policy section 2.7.
2021-02-09 11:35:43 -05:00
Jon Evans
d25341901c
Skip backup if project folder isn't writeable
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7405
2021-02-03 19:17:32 -05:00
Jon Evans
3ac5fd6342
Get rid of wx popups when opening a read-only project
2021-02-03 19:17:32 -05:00
Marek Roszko
47ada0ffba
Remove duplicate LAYER_VIA_THROUGH entry in theme
2021-02-01 11:51:42 -05:00
Jeff Young
a235103e48
Redo pad & via painting (again).
...
New strategy isolates all draw/don't draw decisions to the ViewGetLOD
routines, and all dimmed/not dimmed to PCB_RENDER_SETTINGS::GetColor.
The actual drawing in PCB_PAINTER is more-or-less conditon free.
Also adds new layers for pad and via hole walls so that they can be
controlled for high-contrast mode.
Also changes the drawing paradigm so that the pads are drawn even when
not on the high contrast layer, just in low contrast. The hole wall
is drawn in high contrast. This actually makes things clearer to the
user (although to be honest was done to keep from having to re-render
pads when the high contrast layer changes since we have two separate
layers now that we can adjut colours on).
Fixes https://gitlab.com/kicad/code/kicad/issues/7328
2021-01-30 16:31:27 +00:00
Marek Roszko
4c14406788
Further path refinements
2021-01-27 21:48:02 -05:00
Marek Roszko
a47e8af0d0
Fix up naming of the kiplatform helpers
2021-01-27 19:12:20 -05:00
Marek Roszko
6d4bae1136
Make calculateUserSettingsPath a little more compact and use kiplatform
2021-01-27 19:12:20 -05:00
Jon Evans
bea310569b
Fix parsing of track/via user sizes from legacy boards
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/6134
2021-01-26 21:51:36 -05:00
Jeff Young
fa93cd8faa
Remove colour setting for internal layer.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/7149
2021-01-19 11:28:15 +00:00
Jeff Young
a36f655dcd
Consistent formatting.
2021-01-11 22:09:36 +00:00
Jeff Young
50889a9ed6
Promote mouse drag settings to full enums.
2021-01-11 22:09:36 +00:00
Jeff Young
6c648df4c6
Support 3 drag vs. select options, and unifiy with other drag prefs.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5493
2021-01-11 11:50:14 +00:00
Jon Evans
decca8baba
Do not migrate the versioned env variables
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/6914
2021-01-02 10:47:06 -05:00
Werni
599c35edce
Fix memory leak in COLOR_SETTINGS
2020-12-24 00:24:44 +00:00
Jon Evans
81ce1a07ee
Fix a few issues with builtin color themes
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/6754
2020-12-20 14:43:41 -05:00
Marek Roszko
3ae87ba613
Use wxFFileOutputStream in place of previous wxFFile switch
...
wxFFile with fwrite still has a chance of partial writes.
wxFFileOutputStream provides WriteAll which will iterate until all bytes written or error.
2020-12-12 10:46:30 -05:00
Marek Roszko
b4e4e1cf5e
Use wxFFile instead of wxFile for saving json settings/json_settings.cpp
...
wxFile is dangerous, it's ::Write method is a direct map to the write syscall. It does not handle partial writes!
This must be handled in our code which we don't.
2020-12-12 10:00:49 -05:00
Jeff Young
de9d1eb93e
Don't write local settings of imported project into current settings.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/6552
2020-11-30 23:10:21 +00:00
Jon Evans
c085375531
Create color settings path if missing
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/5274
2020-10-25 17:09:58 -04:00
Marek Roszko
1d559108c8
Move LOCALE_IO out of common.h
2020-10-23 21:49:42 -04:00
Jon Evans
7fcef7268b
Handle read-only settings files better
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/5688
2020-10-22 20:31:04 -04:00
Seth Hillbrand
4085757aeb
Remove beginning/ending spaces in translations
...
Adding space padding makes translations more difficult by increasing
string counts
2020-10-20 12:08:04 -07:00
Jon Evans
f8d38fc6c0
Slight tweak to schematic background color
2020-10-19 20:55:34 -04:00
Jon Evans
a28f154cc5
Fix fallback color theme name
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/6064
2020-10-19 12:02:55 -04:00
Jon Evans
c388bf0f92
Update default color theme
...
Blue is the new green :)
ADDED: built-in read-only color themes support
Classic theme is still available for those who love it
Fixes https://gitlab.com/kicad/code/kicad/-/issues/1991
Fixes https://gitlab.com/kicad/code/kicad/-/issues/4259
2020-10-18 14:12:54 -04:00
Jon Evans
728c207105
Deduplicate settings migration handling
2020-10-05 23:21:57 -04:00
Jon Evans
76bfa47a77
Allow creating new projects when doing a Save As in eeschema
2020-10-05 22:36:26 -04:00
Ian McInerney
43c14face0
Switch to showing metric/imperial units in comboboxes and menus
...
This will always show 1 unit from each system, with the primary unit
being the current frame unit and the secondary unit being the
most recent unit used from the other system. These are saved in
the settings, so they are saved between runs.
2020-10-05 20:26:33 +01:00
jean-pierre charras
b38cef409b
Rename CopyFile() to KiCopyFile() to avoid name colliding with a windows header.
...
Using CopyFile() that can collide with a windows header create hard to
understand errors, including link errors.
Renaming this function avoids these strange errors.
2020-10-03 10:08:21 +02:00
Jon Evans
45d7f2b6f5
Expose via holes to color theme properly
2020-10-02 21:12:59 -04:00
Jon Evans
4a17205e76
Turn off "prefer selection to dragging" by default
2020-10-01 18:24:07 -04:00
Jon Evans
0c5aabc7f7
Add an option to not migrate library tables when migrating settings
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/3924
2020-09-24 20:54:31 -04:00
Wayne Stambaugh
564f363c57
Pcbnew: fix user defined layer bugs.
2020-09-24 10:19:10 -04:00
Jon Evans
690575e2b6
Improve edit point legibility with a hover state
2020-09-23 21:27:23 -04:00
Jon Evans
e8369c94df
SETTINGS_MANAGER: Don't try to retrieve system paths in headless mode
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/5748
2020-09-22 20:25:44 -04:00
Ian McInerney
9e6a1225db
Catch exception when creating app settings objects
...
These settings objects could be created in a constructor/destructor
so we should catch the exception since those are noexcept.
Also change the settings trace to match the other kicad traces
as KICAD_SETTINGS
2020-09-21 12:07:51 +01:00
Ian McInerney
e0c2531f53
Catch exception inside JSON_SETTINGS constructor
...
This exception will probably never be thrown in real life,
but the constructors are normally noexcept, so throwing
any exception from the json library causes Coverity to
have a fit.
2020-09-20 23:50:09 +01:00
Jon Evans
375f1b8129
Avoid throwing exception when starting from scratch
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/5661
for some reason
2020-09-18 20:41:27 -04:00
Ian McInerney
a53f3899d4
Initialize variables properly
2020-09-18 11:17:37 +01:00
Jon Evans
ae7877c6cb
Migrate dimension precision
2020-09-11 21:12:36 -04:00
Seth Hillbrand
f493e270ea
ADDED: Menu option to enable/disable snap to grid
...
You can now enable and disable snap to grid when drawing/editing across
all apps. You can also tie snap to grid to the visibility of the grid
to allow rapid enable/disable via grid display.
2020-09-10 20:09:30 -07:00
jean-pierre charras
276d77a1d7
SETTINGS_MANAGER: Fix bug: ensure the destination folder exists.
...
Better fix than a0df876d
For new users, if this folder does not exist, saving colors does not work,
because if this folder does not exist, it is not created.
2020-09-05 13:04:49 +02:00
jean-pierre charras
a0df876d58
SETTINGS_MANAGER::SaveColorSettings(): Ensure the destination folder exists.
...
For new users, this folder noes not exists, and saving colors does not work.
If this folder does not exist, it is not created.
2020-09-04 19:49:19 +02:00
Mario Luzeiro
820e3089a2
3D-Viewer: use the correct opacity meaning in the color settings
2020-09-01 01:08:38 +00:00
Mario Luzeiro
40d5746df6
3D-Viewer: Parameterize body board transparency
...
Fix/workarround raytracing render issues related with refraction
2020-09-01 01:08:38 +00:00
Mario Luzeiro
0302fe5570
3D-Viewer: Parameterize soldermask transparency
2020-09-01 01:08:37 +00:00
Jeff Young
2697fc3864
Remove canvas-switching from OSX.
...
The Cairo renderer doesn't work on Retina displays.
Fixes https://gitlab.com/kicad/code/kicad/issues/4788
2020-08-31 18:48:25 +01:00
Jon Evans
9f7bca38b3
A better way of handling standalone project files
2020-08-30 16:04:39 -04:00
Jeff Young
20211eed49
Unroll a level of prefs for fieldname templates.
...
It was playing havoc with the saving of project and global templates
without one overwriting the other.
Fixes https://gitlab.com/kicad/code/kicad/issues/5415
2020-08-30 18:58:18 +01:00
Jon Evans
046fef2cc1
Only load an empty project if we don't have one already
...
We may have multiple projects if one of them is a temporary
project used for importing settings
Fixes https://gitlab.com/kicad/code/kicad/-/issues/5423
2020-08-30 12:27:20 -04:00
Jon Evans
cd54ba7b01
Fix project unloading in LoadProject
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/5380
2020-08-26 20:46:20 -04:00
Jon Evans
dc7e1783b3
Make sure a project is loaded at all times
...
For now, much of KiCad depends on Prj() working, so when we
are asked to unload a project, immediately load the null project
so that nothing breaks.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/5374
2020-08-26 18:37:34 -04:00
Mark Roszko
89e74140eb
Save file / window states for kicad project locally
2020-08-24 02:01:14 +00:00
jean-pierre charras
c80d029681
json_settings.cpp: add more log traces on errors, when trying to save a json config.
...
pcb_calculator: fix a minor cosmetic issue: disabled wxStaticTexts are not very readable
on wxWidgets 3.1.4, so do not use disabled wxStaticTexts.
2020-08-23 15:01:52 +02:00
Jon Evans
eb9756840d
Better defaults for brightness factors
...
Also store them in the JSON so they can be tweaked
2020-08-18 20:55:39 -04:00
Jeff Young
8234e70e77
Remove unused footprint text front & back colours.
2020-08-17 23:55:31 +01:00
Jeff Young
aceed2b0a4
Cleaner look for colour swatches and the undefined colour.
2020-08-17 18:31:20 +01:00
Jon Evans
92174d414c
Ensure pads and zones come up visible by default
...
These visibility layers didn't exist until now
2020-08-16 10:17:20 -04:00
Jon Evans
bd14f8a82a
ADDED: New appearance control widget for PcbNew
...
Featuring:
- Layer view presets
- Per-type opacity for tracks, vias, pads, zones
- Net and netclass color and visibility controls
CHANGED: Simplified object visibilty controls
Fixes https://gitlab.com/kicad/code/kicad/-/issues/1951
Fixes https://gitlab.com/kicad/code/kicad/-/issues/1981
Fixes https://gitlab.com/kicad/code/kicad/-/issues/2003
Fixes https://gitlab.com/kicad/code/kicad/-/issues/2173
Fixes https://gitlab.com/kicad/code/kicad/-/issues/2254
Fixes https://gitlab.com/kicad/code/kicad/-/issues/4325
2020-08-15 15:24:28 -04:00
Jon Evans
2fc9c7233d
Add color layer for schematic aux items
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/4825
2020-08-09 17:39:52 -04:00
Ian McInerney
c458b50fd9
Ensure the environment variables are synchronized between KiCad and Python
...
Before this, the environment variables inside Python wouldn't reflect
the updates to them made after the interpreter was started in Pcbnew.
This will call into Python and set the variables when they are changed,
since Python can't synchronize itself when running in an embedded
interpreter.
Fixes https://gitlab.com/kicad/code/kicad/issues/5071
2020-08-09 19:56:12 +01:00
Jon Evans
43ab43ec9e
Fix a few issues with Close Project
...
A new empty project needs to be reopened for now
Footprint info cache write only works with a project for now
2020-08-09 11:13:50 -04:00
Peter Montgomery
4d460ec073
Delete 3D cache files with GUI settable number of days
...
KiCad stores 3D cache files but never gets rid of any of them.
This patch adds a new function called 'CleanCacheDir()'. Any cache
files older than the passed 'number of days' parameter are deleted.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/1928
2020-08-09 10:41:45 +00:00
Jon Evans
79e40cf765
Fix a few issues with Close Projects MR
...
Store list of previously open projects only in kicad.json
Keep all management of open projects in SETTINGS_MANAGER
Also add kicadSettings() for convenience
2020-08-08 16:00:49 -04:00
jean-pierre charras
f46c1ccb32
Fix another incorrect (and useless) conversion of a wxString to and from std::string.
...
This useless conversion breaks non ASCII8 strings.
2020-08-07 19:44:34 +02:00
jean-pierre charras
ea71d9db81
Fix incorrect (and useless) conversion of a wxString to and from std::string.
...
This useless conversion breaks non ASCII8 strings.
2020-08-05 18:34:49 +02:00
jean-pierre charras
a146cd9e2e
JSON_SETTINGS: add more wxLogTrace() calls.
2020-08-03 08:44:34 +02:00
jean-pierre charras
df4226f896
Settings management: try to fix full filename issues when using non ASCII7 chars.
...
The fix convert all std::string storing a path to wxString (unicode support)
wxString were already used at many place to store paths, but not all.
For internal calculations mixing char strings and wide char strings is a recipe
for bug: any missing conversion between UTF8 and wxString breaks paths.
2020-08-02 21:31:03 +02:00
Jon Evans
aae40148dc
Switch to ordered_json and enable ignore_comments parser option
2020-08-02 13:11:16 +00:00
Jeff Young
a58a75366e
Give up on a cross-platform solution to non-ascii filenames.
...
Sometime it might be worth giving another go at it, but for now I
just put conditional compilation in.
Fixes https://gitlab.com/kicad/code/kicad/issues/5024
2020-08-01 19:47:29 +01:00
Jeff Young
689910ab0a
Add missing include.
2020-08-01 15:57:44 +01:00
jean-pierre charras
91e00e14a9
JSON_SETTINGS: partial fix of non ascii7 filenames on Windows.
...
It should work with ASCII8 filenames, but the member
m_filename is probably not always correctly initialized in all cases.
2020-08-01 16:08:39 +02:00
Jeff Young
61c817377f
Support for wchar_t Windows filenames in JSON settings.
2020-07-31 21:01:13 +01:00
Jeff Young
6e4d4401ae
Make sure to translate UTF8 std::string to wchars for wxString.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5024
2020-07-31 14:48:45 +01:00
Mark Roszko
8324cb30b7
Save the wxDisplay index to set the position of windows correctly
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/4338
2020-07-27 02:53:56 +00:00
Jeff Young
f97c50bfde
Give excluded DRC items their own layer.
...
(And fix a bug with the new mulit-layer zones and rule-based keepouts
at the same time which prevented me from testing it.)
Fixes https://gitlab.com/kicad/code/kicad/issues/4954
2020-07-24 01:28:25 +01:00