CHANGE: In Eeschema, when placing a component directly over an existing
wire, the wire is automatically removed where it shorted pins.
This helps workflow in Eeschema, allowing one to quickly add components
to existing lines.
Fixes: lp:1678449
* https://bugs.launchpad.net/kicad/+bug/1678449
Removed cut & copy toolbar icons in the schematic editor, as they
were inaccessible. One cannot have an item selected and move the
mouse outside the canvas area due to autopanning.
Added paste icon to the library editor.
The GTK+ file dialog is case sensitive however it does support regular
expressions. Most of the file dialog wildcards are lower case so only
files with the lower case extensions will show up in the file dialog.
This code adds a method to convert file extensions of any case to the
appropriate (sch -> [sS][cC][hH]) regular expression on GTK+ builds so
all file extension case combinations will show up in the file dialog.
A note to developers: make sure to add a file extension when setting
when setting the default file argument. If you do don't set an
extension, the GTK+ file dialog will happily append the regular
expression as the file extension which is surely not what you want.
There are still a few known places (mostly gerbview) where there are
some complex wildcard code that has not been converted.
Fixes lp:1720542
https://bugs.launchpad.net/kicad/+bug/1720542
The old symbol library list save/load code does not get called in the
schematic project file configuration code. Use the LibNamesAndPaths
static function from the PART_LIBS object.
Bump schematic file version from 3 to 4 which represents the switch to
the library table symbol linking which is incompatible with all previous
versions.
Refresh the schematic after running remapping dialog manually.
Remove all symbol libraries from the project file after remapping to
prevent symbols that should be loaded from the cache being loaded from
a library further up the search order. Save the project file to clear
all of the libraries so they never get reloaded again.
Remove the symbol library management dialog and menu entries.
Rename the symbol library table dialog menu entry.
Remove all symbol libraries from default project file to prevent clashes
with the cache library.
Fix illegal symbol naming in Eagle plugin.
Refactor rescue objects so that they can support derivation.
Factor out legacy rescuer code to perform legacy project rescues.
Create new symbol library table rescuer for rescuing symbol library table
based projects.
Perform the correct rescue type on project load.
Add symbol library table remapping support to the tools menu for run on
demand as applicable.
Add flag to SCH_SCREENS::UpdateSymbolLinks() to allow forcing the symbol
link updates when the library modification hash has not changed.
Simplify some of the library editing code. There have been a few minor
changes in the behavior of the editor. If the current symbol is deleted
from the library, the next symbol in the library is not loaded. The
deleted symbol is cleared and the current symbol is empty.
Change component to symbol to align with the preferred terminology
discussed on the developer's mailing list.
Add separate update UI event for save library as to enable the menu entry
whenever a library is selected.
Change the select symbol list dialog to a single column using the LIB_ID
format LIB_NICKNAME:LIB_ITEM_NAME so that the selection can be parsed by
LIB_ID.
Add method to expand URI to LIB_TABLE_BASE.
Override wxApp::OnExceptionInMainLoop() in debug builds to make debugging
easier when an unhandled exception occurs in a wxUpdateUIEvent handler.
Change SCH_SCREENS::HasNoFullyDefinedLibIds() to return false when the
schematic has no symbols to prevent the remapping dialog from being run.
Use SCH_COMPONENT part reference when creating netlist rather than looking
up the library symbol.
Create a new dialog to edit global and project specific symbol library
tables.
Add menu entries for new symbol library table editor in schematic editor
and symbol library editor main frame menus.
Add command event handler for symbol library table editor dialog to
SCH_BASE_FRAME so it is accessible from derived frames.
Fix bug in default environment variables initialization. A test for
existing user defined environment variables was preventing any new
default environment variables added to the list from being initialized.
- Allows grouping of matched components
- Bulk edit of components in a spreadsheet window
- User can choose to save / undo changes
- All changes are pushed to the undo stack in a single operation
- Export table to HTML / CSV output
The executable name constants are only used by two files, they do not
have to be in common.h.
Also converted to const wxString for better type-safety and removed
old-style wxT macros.
Use LIB_ID instead of wxString for storing the library symbol information
in the schematic symbol in preparation for the upcoming symbol library table
implementation.
Change the FindLibAlias and FindLibPart functions in the PART_LIBS object
instead of wxString. Please note that only the library ID name is used to
search the list of libraries. The library nickname is ignored. Once the
symbol library table is implemented and full LIB_IDs are defined, the
library search code will no longer be used and will only be kept to load
older schematics that have not been converted.
Move SCH_LEGACY_PLUGIN_CACHE definition so that the legacy plugin knows
how to properly delete the cache object.
Rename PART_LIB GetEntryNames() and RemoveEntry() to GetAliasNames() and
RemoveAlias() respectively for improved readability.
Rename PART_LIBS FindLibraryEntry() to FindLibraryAlias() improved
readability.
Remove commented out PART_LIBS::FindLibraryEntries().
Remove PART_LIB::GetFirstEntry() and update all effect code accordingly.
Remove unused PART_LIB::SetFileName() method.
Remove unused PART_LIBS::RemoveAllLibraries() method.
netlist generation: remove option "replace IC and U ref by X" (broken option).
All component refs are now prefixed by the Spice_Primitive field value.
Therefore the netlist used by Kicad ngsipce simulator and the spice netlist generated from dialog are the same.
(note: like previously, forbidden chars like ( and ) are replaced by _ in netnames)
* Derive SCH_SHEET_LIST from std::vector rather than using internal array
management. Change all internal code to use iterators or array operator
in loops.
* Allow creation of empty SCH_SHEET_LIST for external population for plotting
and printing.
* Clean up print an plot code to take advantage of new SCH_SHEET_LIST behavior.
* Make BuildSheetList() public so list can be populated after creation.
* Update all instances of SCH_SHEET_LIST with the appropriate SCH_SHEET
object on initialization.
* Create const and non-const version of SCH_SHEET_PATH::GetSheet().
* Derive SCH_SHEET_PATH from std::vector< SCH_SHEET* > and remove unnecessary
assignment operator and list management functions.
* Remove function BuildSheetPathInfoFromSheetPathValue() since it was
effectively an assignment operation.
* Replace all calls to BuildSheetPathInfoFromSheetPathValue() with assignment
operator.
* Replace list management functions with vector management functions.
* Fix a error message that wasn't translatable.
* Remove wxDC and EDA_DRAW_FRAME parameters from SCH_SCREEN::SchematicCleanUp()
function call.
* Update all code that calls SCH_SCREEN::SchematicCleanUp() with wxDC and/or EDA_DRAW_FRAME
parameters.
* Fix a display refresh bug when incrementally inserting bus entries created in my last commit.
IsDanglingStateChanged() appears to be broke for bus entries.
* Add const and non-const version of GetRootSheet() to SCH_SHEET.
* Add GetSheetPaths() function to SCH_SHEET which behaves the same way
as SCH_SHEET_LIST except it uses standard C++ containers and is a much
simpler design.