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 )
|
void APPEARANCE_CONTROLS::OnBoardItemAdded( BOARD& aBoard, BOARD_ITEM* aBoardItem )
|
||||||
{
|
{
|
||||||
if( aBoardItem->Type() == PCB_NETINFO_T )
|
if( doesBoardItemNeedRebuild( aBoardItem ) )
|
||||||
handleBoardItemsChanged();
|
handleBoardItemsChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void APPEARANCE_CONTROLS::OnBoardItemsAdded( BOARD& aBoard, std::vector<BOARD_ITEM*>& aBoardItems )
|
void APPEARANCE_CONTROLS::OnBoardItemsAdded( BOARD& aBoard, std::vector<BOARD_ITEM*>& aBoardItems )
|
||||||
|
{
|
||||||
|
if( doesBoardItemNeedRebuild( aBoardItems ) )
|
||||||
{
|
{
|
||||||
handleBoardItemsChanged();
|
handleBoardItemsChanged();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void APPEARANCE_CONTROLS::OnBoardItemRemoved( BOARD& aBoard, BOARD_ITEM* aBoardItem )
|
void APPEARANCE_CONTROLS::OnBoardItemRemoved( BOARD& aBoard, BOARD_ITEM* aBoardItem )
|
||||||
{
|
{
|
||||||
if( aBoardItem->Type() == PCB_NETINFO_T )
|
if( doesBoardItemNeedRebuild( aBoardItem ) )
|
||||||
handleBoardItemsChanged();
|
handleBoardItemsChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void APPEARANCE_CONTROLS::OnBoardItemsRemoved(
|
void APPEARANCE_CONTROLS::OnBoardItemsRemoved(
|
||||||
BOARD& aBoard, std::vector<BOARD_ITEM*>& aBoardItems )
|
BOARD& aBoard, std::vector<BOARD_ITEM*>& aBoardItems )
|
||||||
|
{
|
||||||
|
if( doesBoardItemNeedRebuild( aBoardItems ) )
|
||||||
{
|
{
|
||||||
handleBoardItemsChanged();
|
handleBoardItemsChanged();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void APPEARANCE_CONTROLS::OnBoardItemChanged( BOARD& aBoard, BOARD_ITEM* aBoardItem )
|
void APPEARANCE_CONTROLS::OnBoardItemChanged( BOARD& aBoard, BOARD_ITEM* aBoardItem )
|
||||||
{
|
{
|
||||||
if( aBoardItem->Type() == PCB_NETINFO_T )
|
if( doesBoardItemNeedRebuild( aBoardItem ) )
|
||||||
handleBoardItemsChanged();
|
handleBoardItemsChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void APPEARANCE_CONTROLS::OnBoardItemsChanged(
|
void APPEARANCE_CONTROLS::OnBoardItemsChanged(
|
||||||
BOARD& aBoard, std::vector<BOARD_ITEM*>& aBoardItems )
|
BOARD& aBoard, std::vector<BOARD_ITEM*>& aBoardItems )
|
||||||
|
{
|
||||||
|
if( doesBoardItemNeedRebuild( aBoardItems ) )
|
||||||
{
|
{
|
||||||
handleBoardItemsChanged();
|
handleBoardItemsChanged();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void APPEARANCE_CONTROLS::handleBoardItemsChanged()
|
void APPEARANCE_CONTROLS::handleBoardItemsChanged()
|
||||||
|
|
|
@ -463,6 +463,10 @@ private:
|
||||||
void idleFocusHandler( wxIdleEvent& aEvent );
|
void idleFocusHandler( wxIdleEvent& aEvent );
|
||||||
|
|
||||||
void onReadOnlySwatch();
|
void onReadOnlySwatch();
|
||||||
|
|
||||||
|
bool doesBoardItemNeedRebuild( BOARD_ITEM* aBoardItem );
|
||||||
|
|
||||||
|
bool doesBoardItemNeedRebuild( std::vector<BOARD_ITEM*>& aBoardItems );
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue