Copy ratsnest flags when exchanging modules.
Fixes: lp:1834214 * https://bugs.launchpad.net/kicad/+bug/1834214
This commit is contained in:
parent
b858fa38c4
commit
2ca379b281
|
@ -398,8 +398,8 @@ TEXTE_MODULE* getMatchingTextItem( TEXTE_MODULE* aRefItem, MODULE* aModule )
|
|||
|
||||
|
||||
void PCB_EDIT_FRAME::Exchange_Module( MODULE* aSrc, MODULE* aDest, BOARD_COMMIT& aCommit,
|
||||
bool deleteExtraTexts,
|
||||
bool resetTextLayers, bool resetTextEffects )
|
||||
bool deleteExtraTexts, bool resetTextLayers,
|
||||
bool resetTextEffects )
|
||||
{
|
||||
aDest->SetParent( GetBoard() );
|
||||
|
||||
|
@ -423,7 +423,10 @@ void PCB_EDIT_FRAME::Exchange_Module( MODULE* aSrc, MODULE* aDest, BOARD_COMMIT&
|
|||
D_PAD* oldPad = aSrc->FindPadByName( pad->GetName() );
|
||||
|
||||
if( oldPad )
|
||||
{
|
||||
pad->SetLocalRatsnestVisible( oldPad->GetLocalRatsnestVisible() );
|
||||
pad->SetNetCode( oldPad->GetNetCode() );
|
||||
}
|
||||
}
|
||||
|
||||
// Copy reference
|
||||
|
|
|
@ -1466,24 +1466,16 @@ void PCB_EDITOR_CONTROL::ratsnestTimer( wxTimerEvent& aEvent )
|
|||
|
||||
void PCB_EDITOR_CONTROL::calculateSelectionRatsnest()
|
||||
{
|
||||
auto selectionTool = m_toolMgr->GetTool<SELECTION_TOOL>();
|
||||
auto& selection = selectionTool->GetSelection();
|
||||
auto connectivity = board()->GetConnectivity();
|
||||
|
||||
SELECTION_TOOL* selectionTool = m_toolMgr->GetTool<SELECTION_TOOL>();
|
||||
SELECTION& selection = selectionTool->GetSelection();
|
||||
std::shared_ptr<CONNECTIVITY_DATA> connectivity = board()->GetConnectivity();
|
||||
std::vector<BOARD_ITEM*> items;
|
||||
items.reserve( selection.Size() );
|
||||
|
||||
for( auto item : selection )
|
||||
for( EDA_ITEM* item : selection )
|
||||
{
|
||||
auto board_item = static_cast<BOARD_CONNECTED_ITEM*>( item );
|
||||
BOARD_CONNECTED_ITEM* boardItem = static_cast<BOARD_CONNECTED_ITEM*>( item );
|
||||
|
||||
if( board_item->Type() != PCB_MODULE_T
|
||||
&& ( board_item->GetLocalRatsnestVisible()
|
||||
|| displayOptions()->m_ShowModuleRatsnest ) )
|
||||
{
|
||||
items.push_back( board_item );
|
||||
}
|
||||
else if( board_item->Type() == PCB_MODULE_T )
|
||||
if( boardItem->Type() == PCB_MODULE_T )
|
||||
{
|
||||
for( auto pad : static_cast<MODULE*>( item )->Pads() )
|
||||
{
|
||||
|
@ -1491,6 +1483,10 @@ void PCB_EDITOR_CONTROL::calculateSelectionRatsnest()
|
|||
items.push_back( pad );
|
||||
}
|
||||
}
|
||||
else if( boardItem->GetLocalRatsnestVisible() || displayOptions()->m_ShowModuleRatsnest )
|
||||
{
|
||||
items.push_back( boardItem );
|
||||
}
|
||||
}
|
||||
|
||||
connectivity->ComputeDynamicRatsnest( items );
|
||||
|
|
Loading…
Reference in New Issue