pcbnew: Add context menu to measure tool

Fixes: lp:1831063
* https://bugs.launchpad.net/kicad/+bug/1831063
This commit is contained in:
Ian McInerney 2019-06-02 11:12:11 +01:00 committed by Seth Hillbrand
parent 63fb408478
commit 208a8553a5
1 changed files with 16 additions and 1 deletions

View File

@ -281,6 +281,21 @@ bool EDIT_TOOL::Init()
menu.AddItem( PCB_ACTIONS::updateFootprints, singleModuleCondition );
menu.AddItem( PCB_ACTIONS::exchangeFootprints, singleModuleCondition );
// Populate the context menu displayed during the edit tool (primarily the measure tool)
auto activeToolCondition = [ this ] ( const SELECTION& aSel ) {
return ( frame()->GetToolId() != ID_NO_TOOL_SELECTED );
};
auto frame = getEditFrame<PCB_BASE_FRAME>();
auto& ctxMenu = m_menu.GetMenu();
// "Cancel" goes at the top of the context menu when a tool is active
ctxMenu.AddItem( ACTIONS::cancelInteractive, activeToolCondition, 1000 );
ctxMenu.AddSeparator( activeToolCondition, 1000 );
if( frame )
m_menu.AddStandardSubMenus( frame );
return true;
}
@ -1279,7 +1294,7 @@ int EDIT_TOOL::MeasureTool( const TOOL_EVENT& aEvent )
else if( evt->IsClick( BUT_RIGHT ) )
{
m_menu.ShowContextMenu( selection() );
m_menu.ShowContextMenu();
}
}