Toggle to enable auto-synchronization (footprint library <-> PCB)
Description
I find myself spending quite some time doing synchronization footprint library to PCB, etc. manually. Sometimes I also start editing a footprint and then I notice, crap, I am editing the footprint of component J1, I forgot the second click on edit library footprint, after clicking on edit footprint of this component. So this is a feature suggestion: I wish there was a button (toggle) to enable auto-synchronization, which is how I would like KiCad to work most of the time, that would behave in the same way than the symbol editor works: if I change the symbol in the library, then it automatically gets updated across the schematic sheet. The same for footprints would be nice. This synch mode could behave as follows:
- If I click on the PCB footprint on CTRL+E, it automatically edits the footprint in the library, not the actual footprint on the PCB. Actually, this would match more coherently with the behaviour in EEschema, if you press CTRL+E, it edits the symbol library.
- If I save the footprint in the footprint library editor, it automatically updates all FP of this type appearing in the board.
- It prevents editing a single PCB footprint, it always takes you to the library first
- (Consequence of above) It prevents you having two footprints with the same identifier but different properties (and obviously then out of synch with FP library).
So to say, that synchronization with the libraries is guaranteed to avoid mistakes as well as extra time taking care of synch oneself. Basically what the behaviour of the symbol editor in eeschema is. As if the PCB file and and schematic were just doing #include "header.h"
and all the important info were in the libraries.
Related to: #4469
Maybe the sync toggle button would open a pop menu with checkboxes depending on what features you want to synch: PCB<->schematic, PCB<->fp libraries, etc.
Steps to reproduce
- Open a PCB.
- Click on a component and press CTRL + E.
- (Alternatively, press on E, and then on Edit footprint)
- Do some changes and save.
- Go back to PCB
- Oh no, this only changed this footprint, not all footprints with the same identifier.
- Undo change.
- Click on component and press E
- Click on Edit Library Footprint
- Redo 4 and 5, and 8
- Click on Update FP from library
- Update FP matching this identifier
KiCad Version
Application: KiCad
Version: 5.1.5-52549c5~86~ubuntu18.04.1, release build
Libraries:
wxWidgets 3.0.4
libcurl/7.58.0 OpenSSL/1.1.1 zlib/1.2.11 libidn2/2.0.4 libpsl/0.19.1 (+libidn2/2.0.4) nghttp2/1.30.0 librtmp/2.3
Platform: Linux 4.15.0-72-generic x86_64, 64 bit, Little endian, wxGTK
Build Info:
wxWidgets: 3.0.4 (wchar_t,wx containers,compatible with 2.8) GTK+ 3.22
Boost: 1.65.1
OpenCASCADE Community Edition: 6.9.1
Curl: 7.58.0
Compiler: GCC 7.5.0 with C++ ABI 1011
Build settings:
USE_WX_GRAPHICS_CONTEXT=OFF
USE_WX_OVERLAY=ON
KICAD_SCRIPTING=ON
KICAD_SCRIPTING_MODULES=ON
KICAD_SCRIPTING_PYTHON3=ON
KICAD_SCRIPTING_WXPYTHON=ON
KICAD_SCRIPTING_WXPYTHON_PHOENIX=ON
KICAD_SCRIPTING_ACTION_MENU=ON
BUILD_GITHUB_PLUGIN=ON
KICAD_USE_OCE=ON
KICAD_USE_OCC=OFF
KICAD_SPICE=ON