Remove nags and make Sel Layer and add via commands uniform.
Fixes https://gitlab.com/kicad/code/kicad/issues/8686
This commit is contained in:
parent
3347531f70
commit
c159500101
|
@ -128,10 +128,19 @@ static const TOOL_ACTION ACT_SelLayerAndPlaceBlindVia(
|
||||||
AS_CONTEXT,
|
AS_CONTEXT,
|
||||||
MD_ALT + '<', LEGACY_HK_NAME( "Select Layer and Add Blind/Buried Via" ),
|
MD_ALT + '<', LEGACY_HK_NAME( "Select Layer and Add Blind/Buried Via" ),
|
||||||
_( "Select Layer and Place Blind/Buried Via..." ),
|
_( "Select Layer and Place Blind/Buried Via..." ),
|
||||||
_( "Select a layer, then add a blind or buried via at the end of currently routed track."),
|
_( "Select a layer, then add a blind or buried via at the end of currently routed track." ),
|
||||||
BITMAPS::select_w_layer, AF_NONE,
|
BITMAPS::select_w_layer, AF_NONE,
|
||||||
(void*) ( VIA_ACTION_FLAGS::BLIND_VIA | VIA_ACTION_FLAGS::SELECT_LAYER ) );
|
(void*) ( VIA_ACTION_FLAGS::BLIND_VIA | VIA_ACTION_FLAGS::SELECT_LAYER ) );
|
||||||
|
|
||||||
|
static const TOOL_ACTION ACT_SelLayerAndPlaceMicroVia(
|
||||||
|
"pcbnew.InteractiveRouter.SelLayerAndPlaceMicroVia",
|
||||||
|
AS_CONTEXT,
|
||||||
|
0, "",
|
||||||
|
_( "Select Layer and Place Micro Via..." ),
|
||||||
|
_( "Select a layer, then add a micro via at the end of currently routed track." ),
|
||||||
|
BITMAPS::select_w_layer, AF_NONE,
|
||||||
|
(void*) ( VIA_ACTION_FLAGS::MICROVIA | VIA_ACTION_FLAGS::SELECT_LAYER ) );
|
||||||
|
|
||||||
static const TOOL_ACTION ACT_CustomTrackWidth( "pcbnew.InteractiveRouter.CustomTrackViaSize",
|
static const TOOL_ACTION ACT_CustomTrackWidth( "pcbnew.InteractiveRouter.CustomTrackViaSize",
|
||||||
AS_CONTEXT,
|
AS_CONTEXT,
|
||||||
'Q', LEGACY_HK_NAME( "Custom Track/Via Size" ),
|
'Q', LEGACY_HK_NAME( "Custom Track/Via Size" ),
|
||||||
|
@ -456,6 +465,7 @@ bool ROUTER_TOOL::Init()
|
||||||
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_SelLayerAndPlaceMicroVia, 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 );
|
||||||
|
|
||||||
|
@ -853,22 +863,6 @@ int ROUTER_TOOL::handleLayerSwitch( const TOOL_EVENT& aEvent, bool aForceVia )
|
||||||
10000, wxICON_ERROR );
|
10000, wxICON_ERROR );
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Can only place through vias on 2-layer boards
|
|
||||||
if( ( viaType != VIATYPE::THROUGH ) && ( layerCount <= 2 ) )
|
|
||||||
{
|
|
||||||
frame()->ShowInfoBarError( _( "Only through vias are allowed on 2 layer boards." ) );
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Can only place microvias if we're on an outer layer, or directly adjacent to one
|
|
||||||
if( ( viaType == VIATYPE::MICROVIA ) && ( currentLayer > In1_Cu )
|
|
||||||
&& ( currentLayer < layerCount - 2 ) )
|
|
||||||
{
|
|
||||||
frame()->ShowInfoBarError( _( "Microvias can only be placed between the outer layers "
|
|
||||||
"(F.Cu/B.Cu) and the ones directly adjacent to them." ) );
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Convert blind/buried via to a through hole one, if it goes through all layers
|
// Convert blind/buried via to a through hole one, if it goes through all layers
|
||||||
|
@ -1898,6 +1892,7 @@ void ROUTER_TOOL::setTransitions()
|
||||||
Go( &ROUTER_TOOL::onViaCommand, ACT_PlaceMicroVia.MakeEvent() );
|
Go( &ROUTER_TOOL::onViaCommand, ACT_PlaceMicroVia.MakeEvent() );
|
||||||
Go( &ROUTER_TOOL::onViaCommand, ACT_SelLayerAndPlaceThroughVia.MakeEvent() );
|
Go( &ROUTER_TOOL::onViaCommand, ACT_SelLayerAndPlaceThroughVia.MakeEvent() );
|
||||||
Go( &ROUTER_TOOL::onViaCommand, ACT_SelLayerAndPlaceBlindVia.MakeEvent() );
|
Go( &ROUTER_TOOL::onViaCommand, ACT_SelLayerAndPlaceBlindVia.MakeEvent() );
|
||||||
|
Go( &ROUTER_TOOL::onViaCommand, ACT_SelLayerAndPlaceMicroVia.MakeEvent() );
|
||||||
|
|
||||||
Go( &ROUTER_TOOL::onLayerCommand, PCB_ACTIONS::layerTop.MakeEvent() );
|
Go( &ROUTER_TOOL::onLayerCommand, PCB_ACTIONS::layerTop.MakeEvent() );
|
||||||
Go( &ROUTER_TOOL::onLayerCommand, PCB_ACTIONS::layerInner1.MakeEvent() );
|
Go( &ROUTER_TOOL::onLayerCommand, PCB_ACTIONS::layerInner1.MakeEvent() );
|
||||||
|
|
Loading…
Reference in New Issue