Add composite update callback to BOARD_LISTENER

Required for net inspector otherwise composite operations (such
as undo / redo, and length tuning) can result in multiple add /
remove events firing which results in inconsistent length state.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/17527
(for 9.0)
This commit is contained in:
JamesJ
2024-04-04 22:29:47 +00:00
committed by Jon Evans
parent ca5ca2858c
commit 951065390e
12 changed files with 85 additions and 24 deletions
+4 -16
View File
@@ -483,14 +483,8 @@ void BOARD_COMMIT::Push( const wxString& aMessage, int aCommitFlags )
} );
}
if( bulkAddedItems.size() > 0 )
board->FinalizeBulkAdd( bulkAddedItems );
if( bulkRemovedItems.size() > 0 )
board->FinalizeBulkRemove( bulkRemovedItems );
if( itemsChanged.size() > 0 )
board->OnItemsChanged( itemsChanged );
if( bulkAddedItems.size() > 0 || bulkRemovedItems.size() > 0 || itemsChanged.size() > 0 )
board->OnItemsCompositeUpdate( bulkAddedItems, bulkRemovedItems, itemsChanged );
if( m_isBoardEditor )
{
@@ -717,14 +711,8 @@ void BOARD_COMMIT::Revert()
boardItem->ClearEditFlags();
}
if( bulkAddedItems.size() > 0 )
board->FinalizeBulkAdd( bulkAddedItems );
if( bulkRemovedItems.size() > 0 )
board->FinalizeBulkRemove( bulkRemovedItems );
if( itemsChanged.size() > 0 )
board->OnItemsChanged( itemsChanged );
if( bulkAddedItems.size() > 0 || bulkRemovedItems.size() > 0 || itemsChanged.size() > 0 )
board->OnItemsCompositeUpdate( bulkAddedItems, bulkRemovedItems, itemsChanged );
if( m_isBoardEditor )
{