This is meant as a stopgap for 5.0, with plans to add proper scaled
icons in the 6.0 cycle. A function KiScaledBitmap() is added, which
works like KiBitmap() except it scales the bitmap according to the
calling window's font size. Controls have been added to all the main
applications to let the user select scaling manually (these were omitted
from smaller apps that didn't already have a place to put them).
In addition, in eeschema only, the pixel height of the system font is
shown in the options dialog for diagnostics. This is only for collecting
feedback before 5.0 release from users with different displays and will
be removed.
File names with spaces were causing invalid symbol names in both the
rescue library and the cache which would cause both libraries to fail
to load because library symbol names are not escaped so the spaces
tripped up the library parser. Replace the spaces in the file names
with hyphens and in both the rescuer and the remapping code so the
library nickname in the symbol library table does not contain spaces.
Update the symbol library table dialog to prevent users from defining
library nicknames with spaces. This is different than the footprint
library table which allows nicknames with spaces. This solution is
a temporary fix until the new symbol library and schematic file formats
are implemented.
Fix off by one row in illegal nickname error message in the symbol
library table editor.
Crash was caused by removal of the selected item from the
wxDataViewModel, which was later accessed in
COMPONENT_TREE::GetSelectedLibId(). To avoid the problem, the selection
is validated before regenerating the tree widget.
Fixes: lp:1740952
* https://bugs.launchpad.net/kicad/+bug/1740952
This commit is a partial revert of aa81f5b9 & 445ac505. LIB_ID should
not be modified when a library is assigned to its part, as the library
nickname cannot be evaluated during the assignment and might be
different than its filename.
Fix a bug where the full LIB_ID was not being used to look up the name
of the symbol in the cache library preventing the rescue to work when
rescuing symbol library table projects.
Add information as to why a symbol was rescued rather than only showing
what symbols were rescued.
Do not add rescue suffix to symbol name for symbol library table rescues
because if a symbol name exists in multiple libraries that need rescued
at the same time will cause subsequent symbol rescues to be overwritten.
Append the nickname of the schematic symbol library to prevent symbol
name clashes in the rescue library.
Verify the library symbol of the field being edited still exists rather
than use an assertion because it is entirely feasible that the library
symbol or library containing this symbol has been deleted and will cause
a segfault. Unfortunately there is no way to determine if the symbol is
a power symbol or not so just set it as a regular symbol so the user can
still edit the schematic symbol field.
Fixes lp:1742111
https://bugs.launchpad.net/kicad/+bug/1742111
When a LIB_PART object is removed, it deletes all of its aliases.
When the last one is removed, it tries to report the name of the
parent part, but as it has no aliases - it cannot return a valid name.
Use the symbol found in the library when the symbol is not in the cache
library.
Add an assert to prevent dereferncing a null pointer in the future even
thought this should not happen as the rescue algorithm does not add a
candidate when a symbol cannot be found in either the cache or any other
library.
Fixes lp:1741964
https://bugs.launchpad.net/kicad/+bug/1741964
Calling wxListBox::SetSelection( wxNOT_FOUND ) changes the internal
state of the widget without the intended visual effect (show nothing
selected). It leads to a situation when the default choice is overridden
with wxNOT_FOUND, even though the list box shows a valid value.
As there is no point in calling wxListBox::SetSelection( wxNOT_FOUND ),
the confusing call has been removed.
Fixes: lp:1738875
This patch saves hotkeys to default file when a hotkeys file is
imported, so they remain persistent in future sessions.
Also, a few minor tidy ups (e.g. c++11 nullptr) internal to
common/hotkeys_basic.cpp.
In high-contrast mode, items that don't exist on the current layer are
not selectable, but this is problematic since there are library
components that only exist in the silkscreen layer (logos, etc).
By adding one of the silkscreen layers to the ViewGetLayers() output,
these components are now editable when viewing the silkscreen layer in
high-contrast mode. Silkscreens attached to footprints that have pads
or drawings on non-silkscreen layers are still not selectable.
Fixes: lp:1741350
* https://bugs.launchpad.net/kicad/+bug/1741350
Also, remove a wxPanel border as it makes device-independent sizing
nearly impossible. For some reason wxPanel::GetClientSize() is returning
garbage here and breaks centering text without fudge factors. I think it
still looks good without the border, maybe better.