Don't show separator in Select tool if not needed
If the SELECTION_TOOL's Select... menu is not shown, the separator under it should also not be shown, so use the same SELECTION_CONDITIONS to enforce this.
This commit is contained in:
parent
f1c5b9a9ae
commit
378f5cce33
|
@ -91,27 +91,30 @@ SELECTION_TOOL::~SELECTION_TOOL()
|
||||||
|
|
||||||
bool SELECTION_TOOL::Init()
|
bool SELECTION_TOOL::Init()
|
||||||
{
|
{
|
||||||
|
using S_C = SELECTION_CONDITIONS;
|
||||||
|
|
||||||
|
auto showSelectMenuFunctor = ( S_C::OnlyType( PCB_VIA_T ) || S_C::OnlyType( PCB_TRACE_T ) )
|
||||||
|
&& S_C::Count( 1 );
|
||||||
|
|
||||||
m_selectMenu = new SELECT_MENU;
|
m_selectMenu = new SELECT_MENU;
|
||||||
m_selectMenu->SetTool( this );
|
m_selectMenu->SetTool( this );
|
||||||
|
|
||||||
m_menu.AddMenu( m_selectMenu, _( "Select..." ), false,
|
m_menu.AddMenu( m_selectMenu, _( "Select..." ), false, showSelectMenuFunctor );
|
||||||
( SELECTION_CONDITIONS::OnlyType( PCB_VIA_T ) || SELECTION_CONDITIONS::OnlyType( PCB_TRACE_T ) ) &&
|
// only show separator if there is a Select menu to show above it
|
||||||
SELECTION_CONDITIONS::Count( 1 ) );
|
GetMenu().AddSeparator( showSelectMenuFunctor, 1000 );
|
||||||
|
|
||||||
m_menu.AddSeparator( SELECTION_CONDITIONS::ShowAlways, 1000 );
|
m_menu.AddItem( COMMON_ACTIONS::zoomCenter, S_C::ShowAlways, 1000 );
|
||||||
|
m_menu.AddItem( COMMON_ACTIONS::zoomIn, S_C::ShowAlways, 1000 );
|
||||||
m_menu.AddItem( COMMON_ACTIONS::zoomCenter, SELECTION_CONDITIONS::ShowAlways, 1000 );
|
m_menu.AddItem( COMMON_ACTIONS::zoomOut , S_C::ShowAlways, 1000 );
|
||||||
m_menu.AddItem( COMMON_ACTIONS::zoomIn, SELECTION_CONDITIONS::ShowAlways, 1000 );
|
m_menu.AddItem( COMMON_ACTIONS::zoomFitScreen , S_C::ShowAlways, 1000 );
|
||||||
m_menu.AddItem( COMMON_ACTIONS::zoomOut , SELECTION_CONDITIONS::ShowAlways, 1000 );
|
|
||||||
m_menu.AddItem( COMMON_ACTIONS::zoomFitScreen , SELECTION_CONDITIONS::ShowAlways, 1000 );
|
|
||||||
|
|
||||||
PCB_BASE_FRAME* frame = getEditFrame<PCB_BASE_FRAME>();
|
PCB_BASE_FRAME* frame = getEditFrame<PCB_BASE_FRAME>();
|
||||||
|
|
||||||
m_zoomMenu = new ZOOM_MENU( frame );
|
m_zoomMenu = new ZOOM_MENU( frame );
|
||||||
m_menu.AddMenu( m_zoomMenu, _( "Zoom" ), false, SELECTION_CONDITIONS::ShowAlways, 1000 );
|
m_menu.AddMenu( m_zoomMenu, _( "Zoom" ), false, S_C::ShowAlways, 1000 );
|
||||||
|
|
||||||
m_gridMenu = new GRID_MENU( frame );
|
m_gridMenu = new GRID_MENU( frame );
|
||||||
m_menu.AddMenu( m_gridMenu, _( "Grid" ), false, SELECTION_CONDITIONS::ShowAlways, 1000 );
|
m_menu.AddMenu( m_gridMenu, _( "Grid" ), false, S_C::ShowAlways, 1000 );
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue