Change the behavior of the remapping algorithm to remap even if a
project symbol library table exists in the project file in case a
previous attempt to remap failed. The existing symbol library table
is backed up to the back folder and rebuilt.
Fixes lp:1741983
https://bugs.launchpad.net/kicad/+bug/1741983
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.
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
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.
Dialogs displaying a lot of scrollable data should use SetSizeInDU()
instead, as FinishDialogSettings() will set a minimum size equal to
whatever can contain all the data (making it overflow the screen for
large amounts).
- Add helper methods for DPI-independent sizes
- Make splitter sashes visible on macOS
- Remove SetSizeInChars() - wx has a built-in way that I missed
- DIALOG_CHOOSE_COMPONENT: DPI-indep splitter sizes
- DIALOG_RESCUE_EACH: DPI-indep default size and sensible HTML window
size
- COMPONENT_TREE: DPI-indep sizing
- DIALOG_FP_LIB_TABLE, DIALOG_SYMBOL_LIB_TABLE
Create separate folder in project path to backup files changed during
remapping.
Add time stamp to backup file names in case multiple remappings are
performed.
Add backup file information to report panel instead of using debug
trace messages.
Disable the remap button if the user does not have write privileges to
the current project path.
The Windows drive specifier C: was being interpreted as a valid URL by
wxURI which was performing a URL comparison instead of a file comparison
which always failed in LIB_TABLE_BASE::FindRowByURI(). Change test for
URI to search string for "://" to determine if the comparison should be
a URI (string) comparison or a file (wxFileName) comparison.
Don't run final rescue unless the user performs the remapping.
Improve dialog layout and fix UI policy issues with all of the dialog
boxes in the common, 3D viewer, CvPcb, and Eeschema code paths.
Updated the use of component to symbol.
Replace all instances of "component" and "part" with "symbol" when
referring to schematic and library symbols.
Replace all instances of "component" with "footprint" when referring to
board and library footprints.
Minor dialog layout fixes to some of the dialogs impacted by the UI
string changes.
The remapping utility would create a new project specific library when a
symbolic link pointed to a library already defined in the symbol library
table. Now the comparison checks to see if the library path and file
name are actually a symbolic link if the file names are not the same when
the symbol library table entry is a file name rather than a URL. URLs
are simple string comparisons.
Disable the remap button after the remapping completed.
Remove some commented out code from the edit symbol in schematic dialog.
Fixes lp:1738634
https://bugs.launchpad.net/kicad/+bug/1738634
If a schematic contains two symbols with the same name from different
libraries, the cache will contain the last symbol saved with that name.
Prepend the library nickname with the original schematic symbol library
nickname when saving the cache library to prevent name collisions.
This is the last of the object save/load code that was not moved into
the SCH_LEGACY_PLUGIN object. All schematic and library I/O is now
performed in the SCH_LEGACY_PLUGIN object and as been removed from the
schematic and library objects.
The old single symbol file format has been replaced with the normal
symbol library file format since there was no difference between them
except the SYMBOL token. The SYMBOL token was no longer being read
since the introduction of the SCH_LEGACY_PLUGIN symbol library loader.
Update the Doxygen comments in all of the modified files.
Changes to the schematic shouldn't be made
where the user isn't looking. Removing the
cleanup in ERC and netlisting prevents
unintended consequences
CHANGE: ERC and Netlist calls do not modify schematic
Make the user prompt an HTML control for improved layout.
Fix some column title sizing issues. This is not a complete fix but
it seems better than the default sizing done by wxWidgets.
Use symbol terminology instead of part and/or component.
Create trace string source files for a common place for them and their
Doxygen comments.
Don't back up schematic files unless the user requests a remap.
Back up all files that could be changed by a remap including the
schematic file(s), cache library, project file, and rescue library
files.
Use an HTML control instead of a static text control for improved layout
of the user remap prompt.
Improve the user prompt in the remap dialog to make it clear that changes
will be made to project files.
Remove the placeholders for the upcoming s-expression schematic and
symbol library file format plugin type. The lack of a valid plugin
implementation was causing an undefined plugin type string in the
plugin type selection cell when new rows were added to the table.
Fixes lp:1733116
https://bugs.launchpad.net/kicad/+bug/1733116