Hook up delete to undo last segment when routing.

Fixes https://gitlab.com/kicad/code/kicad/issues/8362
This commit is contained in:
Jeff Young 2021-06-19 11:36:37 +01:00
parent d26449cc29
commit c6606a0582
3 changed files with 25 additions and 25 deletions

View File

@ -83,12 +83,6 @@ enum VIA_ACTION_FLAGS
#undef _ #undef _
#define _(s) s #define _(s) s
static const TOOL_ACTION ACT_UndoLastSegment( "pcbnew.InteractiveRouter.UndoLastSegment",
AS_CONTEXT,
WXK_BACK, "",
_( "Undo last segment" ), _( "Stops laying the current track." ),
BITMAPS::checked_ok );
static const TOOL_ACTION ACT_EndTrack( "pcbnew.InteractiveRouter.EndTrack", static const TOOL_ACTION ACT_EndTrack( "pcbnew.InteractiveRouter.EndTrack",
AS_CONTEXT, AS_CONTEXT,
WXK_END, "", WXK_END, "",
@ -447,23 +441,23 @@ bool ROUTER_TOOL::Init()
menu.AddSeparator(); menu.AddSeparator();
menu.AddItem( PCB_ACTIONS::routeSingleTrack, notRoutingCond ); menu.AddItem( PCB_ACTIONS::routeSingleTrack, notRoutingCond );
menu.AddItem( PCB_ACTIONS::routeDiffPair, notRoutingCond ); menu.AddItem( PCB_ACTIONS::routeDiffPair, notRoutingCond );
menu.AddItem( ACT_EndTrack, SELECTION_CONDITIONS::ShowAlways ); menu.AddItem( ACT_EndTrack, SELECTION_CONDITIONS::ShowAlways );
menu.AddItem( ACT_UndoLastSegment, SELECTION_CONDITIONS::ShowAlways ); menu.AddItem( PCB_ACTIONS::routerUndoLastSegment, SELECTION_CONDITIONS::ShowAlways );
menu.AddItem( PCB_ACTIONS::breakTrack, notRoutingCond ); menu.AddItem( PCB_ACTIONS::breakTrack, notRoutingCond );
menu.AddItem( PCB_ACTIONS::drag45Degree, notRoutingCond ); menu.AddItem( PCB_ACTIONS::drag45Degree, notRoutingCond );
menu.AddItem( PCB_ACTIONS::dragFreeAngle, notRoutingCond ); menu.AddItem( PCB_ACTIONS::dragFreeAngle, notRoutingCond );
// Add( ACT_AutoEndRoute ); // fixme: not implemented yet. Sorry. // Add( ACT_AutoEndRoute ); // fixme: not implemented yet. Sorry.
menu.AddItem( ACT_PlaceThroughVia, SELECTION_CONDITIONS::ShowAlways ); menu.AddItem( ACT_PlaceThroughVia, SELECTION_CONDITIONS::ShowAlways );
menu.AddItem( ACT_PlaceBlindVia, SELECTION_CONDITIONS::ShowAlways ); menu.AddItem( ACT_PlaceBlindVia, SELECTION_CONDITIONS::ShowAlways );
menu.AddItem( ACT_PlaceMicroVia, SELECTION_CONDITIONS::ShowAlways ); menu.AddItem( ACT_PlaceMicroVia, SELECTION_CONDITIONS::ShowAlways );
menu.AddItem( ACT_SelLayerAndPlaceThroughVia, SELECTION_CONDITIONS::ShowAlways ); menu.AddItem( ACT_SelLayerAndPlaceThroughVia, SELECTION_CONDITIONS::ShowAlways );
menu.AddItem( ACT_SelLayerAndPlaceBlindVia, SELECTION_CONDITIONS::ShowAlways ); menu.AddItem( ACT_SelLayerAndPlaceBlindVia, SELECTION_CONDITIONS::ShowAlways );
menu.AddItem( ACT_SwitchPosture, SELECTION_CONDITIONS::ShowAlways ); menu.AddItem( ACT_SwitchPosture, SELECTION_CONDITIONS::ShowAlways );
menu.AddItem( ACT_SwitchRounding, SELECTION_CONDITIONS::ShowAlways ); menu.AddItem( ACT_SwitchRounding, SELECTION_CONDITIONS::ShowAlways );
menu.AddSeparator(); menu.AddSeparator();
@ -473,10 +467,10 @@ bool ROUTER_TOOL::Init()
return m_router->Mode() == PNS::PNS_MODE_ROUTE_DIFF_PAIR; return m_router->Mode() == PNS::PNS_MODE_ROUTE_DIFF_PAIR;
}; };
menu.AddMenu( m_trackViaMenu.get(), SELECTION_CONDITIONS::ShowAlways ); menu.AddMenu( m_trackViaMenu.get(), SELECTION_CONDITIONS::ShowAlways );
menu.AddMenu( m_diffPairMenu.get(), diffPairCond ); menu.AddMenu( m_diffPairMenu.get(), diffPairCond );
menu.AddItem( PCB_ACTIONS::routerSettingsDialog, SELECTION_CONDITIONS::ShowAlways ); menu.AddItem( PCB_ACTIONS::routerSettingsDialog, SELECTION_CONDITIONS::ShowAlways );
menu.AddSeparator(); menu.AddSeparator();
@ -1109,7 +1103,7 @@ void ROUTER_TOOL::performRouting()
updateEndItem( *evt ); updateEndItem( *evt );
m_router->Move( m_endSnapPoint, m_endItem ); m_router->Move( m_endSnapPoint, m_endItem );
} }
else if( evt->IsAction( &ACT_UndoLastSegment ) ) else if( evt->IsAction( &PCB_ACTIONS::routerUndoLastSegment ) )
{ {
m_router->UndoLastSegment(); m_router->UndoLastSegment();
updateEndItem( *evt ); updateEndItem( *evt );

View File

@ -1711,7 +1711,7 @@ int EDIT_TOOL::Remove( const TOOL_EVENT& aEvent )
{ {
if( isRouterActive() ) if( isRouterActive() )
{ {
wxBell(); m_toolMgr->RunAction( PCB_ACTIONS::routerUndoLastSegment, true );
return 0; return 0;
} }

View File

@ -1349,6 +1349,12 @@ TOOL_ACTION PCB_ACTIONS::routerTuneDiffPairSkew( "pcbnew.LengthTuner.TuneDiffPai
TOOL_ACTION PCB_ACTIONS::routerInlineDrag( "pcbnew.InteractiveRouter.InlineDrag", TOOL_ACTION PCB_ACTIONS::routerInlineDrag( "pcbnew.InteractiveRouter.InlineDrag",
AS_CONTEXT ); AS_CONTEXT );
TOOL_ACTION PCB_ACTIONS::routerUndoLastSegment( "pcbnew.InteractiveRouter.UndoLastSegment",
AS_CONTEXT,
WXK_BACK, "",
_( "Undo Last Segment" ), _( "Walks the current track back one segment." ),
BITMAPS::checked_ok );
TOOL_ACTION PCB_ACTIONS::inlineBreakTrack( "pcbnew.InteractiveRouter.InlineBreakTrack", TOOL_ACTION PCB_ACTIONS::inlineBreakTrack( "pcbnew.InteractiveRouter.InlineBreakTrack",
AS_GLOBAL, 0, "", AS_GLOBAL, 0, "",
_( "Break Track" ), _( "Break Track" ),