Editing a footprint and saving to board vs. saving to library - not the best UX
Description
While opening and editing footprints from the libraries and footprints from the board with the same editor is logical and reasonable, KiCad isn't very informative about these workflows for newcomers. We can't expect everyone to think that if a footprint is opened from the board the changes won't go to the library. Especially when the editor is opened from a footprint's context menu there's only "Open in Footprint Editor". Several people, including me earlier, have fallen to trap of opening a footprint from a board and forgetting or not knowing it's not saved to the library.
There are several things which indicate that the footprint will be saved to the board only, but because users don't read and think through everything carefully, it may go unnoticed, especially because the UI for both board and library editing are similar, only some icons and texts are changed.
A user suggested keeping two different icons in the toolbar, disabling the one which can't be used (save to board, save to library). That would give a better indication that they are different actions.
I proposed adding an infobar notification. It could be shown when the footprint is opened from the board, and/or after saving it to the board. It would tell that the footprint was changed on the board (but not in the library).
https://forum.kicad.info/t/save-changes-on-footprint-to-library-and-board/24392
Conceptually what KiCad now does is that it changes the meaning of certain UI items based on a "mode of operation" which isn't a good thing. People should not need to explicitly read texts or visually process images to notice that something in some location behaves differently that in another situation.
KiCad Version
Application: Pcbnew
Version: (5.99.0-2908-g9a4f92dfd), debug build
Libraries:
wxWidgets 3.0.4
libcurl/7.68.0 OpenSSL/1.1.1f zlib/1.2.11 brotli/1.0.7 libidn2/2.2.0 libpsl/0.21.0 (+libidn2/2.2.0) libssh/0.9.3/openssl/zlib nghttp2/1.40.0 librtmp/2.3
Platform: Linux 5.4.0-42-generic x86_64, 64 bit, Little endian, wxGTK
Build Info:
Date: Aug 21 2020 08:55:28
wxWidgets: 3.0.4 (wchar_t,wx containers,compatible with 2.8) GTK+ 3.24
Boost: 1.71.0
OCE: 6.9.1
Curl: 7.68.0
Compiler: GCC 9.3.0 with C++ ABI 1013
Build settings:
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=OFF
KICAD_USE_OCE=ON
KICAD_SPICE=OFF
KICAD_STDLIB_DEBUG=OFF
KICAD_STDLIB_LIGHT_DEBUG=OFF
KICAD_SANITIZE=OFF