ADDED: Back annotation algorithm,
eeschema back annotation dialog
CHANGED: added some minor helper methods to SCH_REFERENCE_LIST and SCH_REFERENCE,
split SCH_REFERENCE_LIST::CheckAnnotation on 2 parts to reuse code
Bus submenus weren't sending events because tool wasn't set.
Net names need to be unescaped for display.
Unfolding wasn't drawing the new wire segments.
SCH_LINE_WIRE_BUS_TOOL could get caught in an infinite event handling loop.
Fixes https://gitlab.com/kicad/code/kicad/issues/3796
Scope: NETLIST_ITEM, CONNECTION_TYPE, ELECTRICAL_PINTYPE,
NET_CONNECTION, NETLIST_ITEM, GRAPHIC_PINSHAPE
Note, the pin type enum had PT_ added to the front to prevent
shadowing of the INPUT symbol on msys2 (see discussion at
c17c9960d8)
dynamic_cast could not resolve the cast chain leading to a null undo
point. Since we know the item to be LIB_ITEM, we can use static_cast
anyway and avoid the overhead.
Fixes#3771 | https://gitlab.com/kicad/code/kicad/issues/3771
This also removes vector cover types which do nothing except obfuscate
the underlying implementation.
Mainly changes SCH_SHEET_PINS and CONFIG_PARAM_ARRAY (which will soon
be replaced by Jon's new stuff).
* Ensure the lib edit undo checks for pointer validity
* Assert that the frames are the correct type (satisfies coverity)
* Convert C casts to C++ casts
It served us (mostly) well for more than a decade. It helped KiCad grow
before the std:: came into decent shape or speed. It was a good little
list.
RIP DLIST 2008-2020
This moves EESchema DLIST structures to rtree. These changes are more
fundamental than the pcbnew changes from 9163ac543888c01d11d1877d7c1
and 961b22d60 as eeschema operations were more dependent on passing
drawing list references around with SCH_ITEM* objects.
For legacy reasons, it stored left and right "spin" as flipped integers in the file format.
But the code handled the flip in multiple locations rather than just doing it on file io.
This change unifies the internal code and does the mapping in the file I/O.
* Split up the thirdparty code into the thirdparty folder (#3637)
* Create a new kimath static library containing all the math functions
This is part of cleaning the build system for #1906.
ADD: User can now decide to keep the hierarchy navigator open while working
on a schematic.
This behavior can be configured in eeschema->preferences->eeschema->Editing options.
When dragging we'll create new line segments between selection-edge
objects and things outside the selection that they're attached to.
These new lines have their IS_NEW flags set, but shouldn't fool us
into thinking that the selection contains pasted (or placed) items.
ADDED: a config option to select (when clicking on a pin) the parent symbol
or only the pin.
Previously, when cliking on a pin, the parent symbol was selected.
Allowing the pin selection is mandatory in cross probing, and to display the pin
characteristics in some cases, for instance if a pin is flagged by the ERC tooL.
There is no need to create a new root symbol and re-parent all derived
symbols when renaming a root symbol. Just rename the buffered root
symbol.
Test for duplicate symbol names when validating the properties dialog
information to prevent broken symbol pointers.
Fix a field drawing bug when editing derived symbols.
Fix bug to insure duplicate symbol names cannot exist in a library.
Fixes kicad/code/kicad#3654
Fixes kicad/code/kicad#3672
Apparently the schematic and symbol library editors now have common
selection filtering so checking for a valid LIB_EDIT_FRAME when
filtering for the schematic editor frame prevented all schematic
object from being selected.
The symbol editor selection criteria did not include LIB_FIELD objects
which allowed the root symbol name to be changed causing broken derived
symbol links. Disable the symbols fields from being edited when a
derived part is shown in the editor to prevent this.
Add a missing warning that deleting a root symbol used to derive other
symbols would also delete all derived symbols from a library. Give the
user a chance to cancel the delete operation in this case.
Fixes kicad/code/kicad#3654
Don't clobber value file when load aliases in legacy symbol library cache
parser.
Use actual symbol library LIB_PART pointer rather than a flattened copy
of the symbol. This fixed a bug when displaying the parent field in the
message panel for derived symbols.
Simplify the flatten code by copying the parent and updating the lesser
information from the inherited symbol.
This change completely removes the LIB_ALIAS design pattern an replaces
it by allowing LIB_PART objects to inherit from other LIB_PART objects.
The initial implementation only allows for single inheritance and only
supports the mandatory fields in the derived part because that is all
that the current symbol library file format will support. Once the new
file format is implemented and saving to the old file format is deprecated,
more complex inheritance will be added. The LIB_ALIAS information saved
in the document files was move into the LIB_PART object. This change
impacts virtually every part of the schematic and symbol library editor
code so this commit message is woefully incomplete.
REMOVE: Removed the symbol aliases concept from the schematic and symbol
editors and the symbol viewer.
NEW: Replace the symbol alias concept with simple inheritance that allows
a library symbol to be derived from another library symbol.
When dragging a bus the entry is connected to the bus so the wire
connected to the entry (if any) needs to stretch.
While an entry can connect in the middle of bus, it cannot connect
in the middle of a wire.
Fixes: lp:1849973
* https://bugs.launchpad.net/kicad/+bug/1849973
Copy/Paste should keep the original items' designation for all units and
conversion type. If it was specified in the original copy, we should
keep the same specification when pasting (but update for the current
frame)
The new connectivity algorithm had a tendency to cleanup
globally, but that could insert undo records from other sheets
into the current screen's undo stack. Needless to say, this
was a recipie for segfaults.
Fixes: lp:1846247
* https://bugs.launchpad.net/kicad/+bug/1846247