PCB: block unroute and move individually when already moving

This commit is contained in:
Mike Williams 2022-11-28 09:39:40 -05:00
parent 4f6b853756
commit 3042633f4a
1 changed files with 6 additions and 4 deletions

View File

@ -156,7 +156,8 @@ bool EDIT_TOOL::Init()
[ this ]( const SELECTION& aSelection ) [ this ]( const SELECTION& aSelection )
{ {
return !frame()->IsCurrentTool( PCB_ACTIONS::move ) return !frame()->IsCurrentTool( PCB_ACTIONS::move )
&& !frame()->IsCurrentTool( PCB_ACTIONS::moveWithReference ); && !frame()->IsCurrentTool( PCB_ACTIONS::moveWithReference )
&& !frame()->IsCurrentTool( PCB_ACTIONS::moveIndividually );
}; };
auto noItemsCondition = auto noItemsCondition =
@ -192,8 +193,9 @@ bool EDIT_TOOL::Init()
menu.AddItem( PCB_ACTIONS::move, SELECTION_CONDITIONS::NotEmpty menu.AddItem( PCB_ACTIONS::move, SELECTION_CONDITIONS::NotEmpty
&& notMovingCondition ); && notMovingCondition );
menu.AddItem( PCB_ACTIONS::unrouteSelected, SELECTION_CONDITIONS::NotEmpty menu.AddItem( PCB_ACTIONS::unrouteSelected, SELECTION_CONDITIONS::NotEmpty
&& SELECTION_CONDITIONS::OnlyTypes( unroutableTypes ) ); && SELECTION_CONDITIONS::OnlyTypes( unroutableTypes )
menu.AddItem( PCB_ACTIONS::moveIndividually, SELECTION_CONDITIONS::NotEmpty && notMovingCondition );
menu.AddItem( PCB_ACTIONS::moveIndividually, SELECTION_CONDITIONS::MoreThan( 1 )
&& notMovingCondition ); && notMovingCondition );
menu.AddItem( PCB_ACTIONS::breakTrack, SELECTION_CONDITIONS::Count( 1 ) menu.AddItem( PCB_ACTIONS::breakTrack, SELECTION_CONDITIONS::Count( 1 )
&& SELECTION_CONDITIONS::OnlyTypes( trackTypes ) ); && SELECTION_CONDITIONS::OnlyTypes( trackTypes ) );
@ -212,7 +214,7 @@ bool EDIT_TOOL::Init()
menu.AddItem( PCB_ACTIONS::mirrorV, SELECTION_CONDITIONS::NotEmpty menu.AddItem( PCB_ACTIONS::mirrorV, SELECTION_CONDITIONS::NotEmpty
&& !singleFootprintCondition ); && !singleFootprintCondition );
menu.AddItem( PCB_ACTIONS::swap, SELECTION_CONDITIONS::MoreThan( 1 ) ); menu.AddItem( PCB_ACTIONS::swap, SELECTION_CONDITIONS::MoreThan( 1 ) );
menu.AddItem( PCB_ACTIONS::packAndMoveFootprints, SELECTION_CONDITIONS::MoreThan( 1 ) menu.AddItem( PCB_ACTIONS::packAndMoveFootprints, SELECTION_CONDITIONS::MoreThan( 1 )
&& SELECTION_CONDITIONS::HasType( PCB_FOOTPRINT_T ) ); && SELECTION_CONDITIONS::HasType( PCB_FOOTPRINT_T ) );
menu.AddItem( PCB_ACTIONS::properties, propertiesCondition ); menu.AddItem( PCB_ACTIONS::properties, propertiesCondition );