Swap: disallow swapping tracks / wires

Also fix missed shortcut change for S -> Shift-S

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/12538
This commit is contained in:
Mike Williams 2022-09-29 17:03:40 -04:00
parent 979b4a4eb7
commit c1da59b560
3 changed files with 14 additions and 4 deletions

View File

@ -990,9 +990,6 @@ const std::vector<KICAD_T> swappableItems = {
SCH_SYMBOL_T,
SCH_SHEET_T,
SCH_BITMAP_T,
SCH_BUS_BUS_ENTRY_T,
SCH_BUS_WIRE_ENTRY_T,
SCH_LINE_T,
SCH_JUNCTION_T,
SCH_NO_CONNECT_T
};

View File

@ -285,6 +285,19 @@ int EDIT_TOOL::Swap( const TOOL_EVENT& aEvent )
sTool->FilterCollectorForMarkers( aCollector );
sTool->FilterCollectorForHierarchy( aCollector, true );
sTool->FilterCollectorForFreePads( aCollector );
// Iterate from the back so we don't have to worry about removals.
for( int i = aCollector.GetCount() - 1; i >= 0; --i )
{
BOARD_ITEM* item = aCollector[i];
switch( item->Type() )
{
case PCB_TRACE_T: aCollector.Remove( item ); break;
default: break;
}
}
},
true /* prompt user regarding locked items */ );

View File

@ -338,7 +338,7 @@ TOOL_ACTION PCB_ACTIONS::mirrorV( "pcbnew.InteractiveEdit.mirrorVertically",
TOOL_ACTION PCB_ACTIONS::swap( "pcbnew.InteractiveEdit.swap",
AS_GLOBAL,
'S', "",
MD_SHIFT + 'S', "",
_( "Swap" ), _( "Swaps selected items' positions" ),
BITMAPS::swap );