Performance update for pcbnew net inspector
Forces full rebuild of nets list for bulk updates over a certain size. This is more performant than iterating over all items in a bulk update.
This commit is contained in:
parent
f51e775f26
commit
54919e6854
|
@ -963,11 +963,20 @@ void PCB_NET_INSPECTOR_PANEL::OnBoardItemsAdded( BOARD& aBoar
|
||||||
if( !IsShownOnScreen() )
|
if( !IsShownOnScreen() )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
// Rebuild full netlist for large changes
|
||||||
|
if( aBoardItems.size() > 25 )
|
||||||
|
{
|
||||||
|
buildNetsList();
|
||||||
|
m_netsList->Refresh();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
for( BOARD_ITEM* item : aBoardItems )
|
for( BOARD_ITEM* item : aBoardItems )
|
||||||
{
|
{
|
||||||
OnBoardItemAdded( aBoard, item );
|
OnBoardItemAdded( aBoard, item );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void PCB_NET_INSPECTOR_PANEL::OnBoardItemRemoved( BOARD& aBoard, BOARD_ITEM* aBoardItem )
|
void PCB_NET_INSPECTOR_PANEL::OnBoardItemRemoved( BOARD& aBoard, BOARD_ITEM* aBoardItem )
|
||||||
|
@ -1037,11 +1046,19 @@ void PCB_NET_INSPECTOR_PANEL::OnBoardItemsRemoved( BOARD& aBo
|
||||||
if( !IsShownOnScreen() )
|
if( !IsShownOnScreen() )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
if( aBoardItems.size() > 25 )
|
||||||
|
{
|
||||||
|
buildNetsList();
|
||||||
|
m_netsList->Refresh();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
for( BOARD_ITEM* item : aBoardItems )
|
for( BOARD_ITEM* item : aBoardItems )
|
||||||
{
|
{
|
||||||
OnBoardItemRemoved( aBoard, item );
|
OnBoardItemRemoved( aBoard, item );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void PCB_NET_INSPECTOR_PANEL::OnBoardNetSettingsChanged( BOARD& aBoard )
|
void PCB_NET_INSPECTOR_PANEL::OnBoardNetSettingsChanged( BOARD& aBoard )
|
||||||
|
|
Loading…
Reference in New Issue