Filter appearance control updates on bulk changes
This commit is contained in:
parent
ad02156aea
commit
eb2472650c
|
@ -948,45 +948,73 @@ void APPEARANCE_CONTROLS::OnBoardNetSettingsChanged( BOARD& aBoard )
|
|||
}
|
||||
|
||||
|
||||
bool APPEARANCE_CONTROLS::doesBoardItemNeedRebuild( BOARD_ITEM* aBoardItem )
|
||||
{
|
||||
return aBoardItem->Type() == PCB_NETINFO_T;
|
||||
}
|
||||
|
||||
|
||||
bool APPEARANCE_CONTROLS::doesBoardItemNeedRebuild( std::vector<BOARD_ITEM*>& aBoardItems )
|
||||
{
|
||||
bool rebuild = std::any_of( aBoardItems.begin(), aBoardItems.end(),
|
||||
[]( const BOARD_ITEM* a )
|
||||
{
|
||||
return a->Type() == PCB_NETINFO_T;
|
||||
} );
|
||||
|
||||
|
||||
return rebuild;
|
||||
}
|
||||
|
||||
|
||||
void APPEARANCE_CONTROLS::OnBoardItemAdded( BOARD& aBoard, BOARD_ITEM* aBoardItem )
|
||||
{
|
||||
if( aBoardItem->Type() == PCB_NETINFO_T )
|
||||
if( doesBoardItemNeedRebuild( aBoardItem ) )
|
||||
handleBoardItemsChanged();
|
||||
}
|
||||
|
||||
|
||||
void APPEARANCE_CONTROLS::OnBoardItemsAdded( BOARD& aBoard, std::vector<BOARD_ITEM*>& aBoardItems )
|
||||
{
|
||||
if( doesBoardItemNeedRebuild( aBoardItems ) )
|
||||
{
|
||||
handleBoardItemsChanged();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void APPEARANCE_CONTROLS::OnBoardItemRemoved( BOARD& aBoard, BOARD_ITEM* aBoardItem )
|
||||
{
|
||||
if( aBoardItem->Type() == PCB_NETINFO_T )
|
||||
if( doesBoardItemNeedRebuild( aBoardItem ) )
|
||||
handleBoardItemsChanged();
|
||||
}
|
||||
|
||||
|
||||
void APPEARANCE_CONTROLS::OnBoardItemsRemoved(
|
||||
BOARD& aBoard, std::vector<BOARD_ITEM*>& aBoardItems )
|
||||
{
|
||||
if( doesBoardItemNeedRebuild( aBoardItems ) )
|
||||
{
|
||||
handleBoardItemsChanged();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void APPEARANCE_CONTROLS::OnBoardItemChanged( BOARD& aBoard, BOARD_ITEM* aBoardItem )
|
||||
{
|
||||
if( aBoardItem->Type() == PCB_NETINFO_T )
|
||||
if( doesBoardItemNeedRebuild( aBoardItem ) )
|
||||
handleBoardItemsChanged();
|
||||
}
|
||||
|
||||
|
||||
void APPEARANCE_CONTROLS::OnBoardItemsChanged(
|
||||
BOARD& aBoard, std::vector<BOARD_ITEM*>& aBoardItems )
|
||||
{
|
||||
if( doesBoardItemNeedRebuild( aBoardItems ) )
|
||||
{
|
||||
handleBoardItemsChanged();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void APPEARANCE_CONTROLS::handleBoardItemsChanged()
|
||||
|
|
|
@ -463,6 +463,10 @@ private:
|
|||
void idleFocusHandler( wxIdleEvent& aEvent );
|
||||
|
||||
void onReadOnlySwatch();
|
||||
|
||||
bool doesBoardItemNeedRebuild( BOARD_ITEM* aBoardItem );
|
||||
|
||||
bool doesBoardItemNeedRebuild( std::vector<BOARD_ITEM*>& aBoardItems );
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue