CHANGED: Ctrl-middle mouse button double click should perform
'Zoom to Objects' in Eeschema, but a change in modifier key handling
broke it. This MR restores the functionality.
Fixes https://gitlab.com/kicad/code/kicad/issues/7803
This fix required sorting all of the LIB_PART draw items to ensure
accurate comparison between the symbols stored in the schematic and the
original library symbols. This has a noticeable impact on symbol library
load performance. It may also cause significant changes the next time
the library is saved due to changes in the draw item sorting. Hashing
may be a better solution here but this addressed the immediate problem.
A skeleton method SCH_SCREEN::SwapSymbolLinks() was added because there
is most likely an issue with orphaned symbols in the schematic library
symbol cache during undo/redo operations. More testing is required to
verify this.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7263
The move tool can stack on others, so when we re-enter the previous tool
this caused another immediate action. We flag re-entry in the tool
stack to check for this and avoid unexpected tool starts
I think the guessSelectionCandidates narrows down to a single item
in 99.9% of cases, so we can probably remove this entirely. But for
now it's safer just to fix it.
When a user clicks on the "Add Component", "Add Power" or "Add Footprint"
icon, they want to add the item. Requiring an extra click on the screen
before selecting the component/footprint is not needed.
Original architecture was to pass KICAD_T in to specify what kind of
object you wanted. That didn't work well with things like cursor
shape so it was moved to setting booleans based on the ACTION. When
I cleared out the old KICAD_T stuff I missed one case where it was
still used. That is now corrected as well.
Fixes https://gitlab.com/kicad/code/kicad/issues/7651
Also allows some symbol lib operations when we know the context even
if the library itself isn't selected. (For instance, select a symbol,
copy, paste.)
Adds ability to start new commit to eeschema, allowing all
AddItemsToUndoList to always append without foreknowledge. Keeps newly
split wires on the tool until placed
Fixes https://gitlab.com/kicad/code/kicad/issues/7512
The automatic wire tool was not working in the gridless mode because the
grid snapping on/off logic present in `EE_GRID_HELPER`, based on the
value of `m_enableGrid`, was not taking into account that another check,
but for the global KiCad setting, would be performed in the `Align()`
method, which is inherited from `GRID_HELPER`.
I've modified all tests of `m_enableGrid` value to also take the global
setting into account, and moved checks for it to `Align()` method, as
it's more consistent this way.
I've also removed an override of the `Align()` method in the
`PCB_GRID_HELPER` class, as it was made redundant by my changes.
Fixes https://gitlab.com/kicad/code/kicad/issues/7402
For unknown reasons, the move tool was not clearing the stack when
called from the edit tool. This moves the call to move tool to after
clearing the edit tool from the stack. The move tool handles cleanup,
so we skip the original reason for waiting on the move tool before
finalizing the edit tool routines
Fixes https://gitlab.com/kicad/code/kicad/issues/7481