Hook up delete to undo last segment when routing.
Fixes https://gitlab.com/kicad/code/kicad/issues/8362
This commit is contained in:
parent
d26449cc29
commit
c6606a0582
|
@ -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 );
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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" ),
|
||||||
|
|
Loading…
Reference in New Issue