Enable position-relative tool in footprint editor.

Fixes: lp:1778624
* https://bugs.launchpad.net/kicad/+bug/1778624

(cherry picked from commit 3ee9703)
This commit is contained in:
Jeff Young 2018-06-26 19:03:57 +01:00
parent 5db4a85430
commit da69a7cd9c
2 changed files with 9 additions and 3 deletions

View File

@ -920,6 +920,7 @@ void FOOTPRINT_EDIT_FRAME::setupTools()
m_toolManager->RegisterTool( new MODULE_EDITOR_TOOLS );
m_toolManager->RegisterTool( new ALIGN_DISTRIBUTE_TOOL );
m_toolManager->RegisterTool( new PICKER_TOOL );
m_toolManager->RegisterTool( new POSITION_RELATIVE_TOOL );
m_toolManager->GetTool<PAD_TOOL>()->SetEditModules( true );
m_toolManager->GetTool<SELECTION_TOOL>()->SetEditModules( true );

View File

@ -86,7 +86,14 @@ bool POSITION_RELATIVE_TOOL::Init()
int POSITION_RELATIVE_TOOL::PositionRelative( const TOOL_EVENT& aEvent )
{
const auto& selection = m_selectionTool->RequestSelection( SanitizePadsEnsureEditableFilter );
PCB_BASE_FRAME* editFrame = getEditFrame<PCB_BASE_FRAME>();
CLIENT_SELECTION_FILTER filter = SanitizePadsEnsureEditableFilter;
// Allow pad editing in Footprint Editor
if( editFrame->IsType( FRAME_PCB_MODULE_EDITOR ) )
filter = EnsureEditableFilter;
const auto& selection = m_selectionTool->RequestSelection( filter );
if( m_selectionTool->CheckLock() == SELECTION_LOCKED )
return 0;
@ -96,8 +103,6 @@ int POSITION_RELATIVE_TOOL::PositionRelative( const TOOL_EVENT& aEvent )
m_position_relative_selection = selection;
PCB_BASE_FRAME* editFrame = getEditFrame<PCB_BASE_FRAME>();
if( !m_position_relative_dialog )
m_position_relative_dialog = new DIALOG_POSITION_RELATIVE( editFrame,
m_toolMgr,