Don't rebuild the whole nets grid on show/hide
Besides being slow, this causes the scroll position of the grid to be lost.
This commit is contained in:
parent
13a91dd49d
commit
34c2bbfe51
|
@ -1242,7 +1242,7 @@ void BOARD_INSPECTION_TOOL::doHideNet( int aNetCode, bool aHide )
|
||||||
m_frame->GetCanvas()->RedrawRatsnest();
|
m_frame->GetCanvas()->RedrawRatsnest();
|
||||||
m_frame->GetCanvas()->Refresh();
|
m_frame->GetCanvas()->Refresh();
|
||||||
|
|
||||||
m_frame->GetAppearancePanel()->OnBoardNetSettingsChanged( *m_frame->GetBoard() );
|
m_frame->GetAppearancePanel()->OnNetVisibilityChanged( aNetCode, !aHide );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -948,6 +948,18 @@ void APPEARANCE_CONTROLS::OnBoardNetSettingsChanged( BOARD& aBoard )
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void APPEARANCE_CONTROLS::OnNetVisibilityChanged( int aNetCode, bool aVisibility )
|
||||||
|
{
|
||||||
|
int row = m_netsTable->GetRowByNetcode( aNetCode );
|
||||||
|
|
||||||
|
if( row >= 0 )
|
||||||
|
{
|
||||||
|
m_netsTable->SetValueAsBool( row, NET_GRID_TABLE::COL_VISIBILITY, aVisibility );
|
||||||
|
m_netsGrid->ForceRefresh();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
bool APPEARANCE_CONTROLS::doesBoardItemNeedRebuild( BOARD_ITEM* aBoardItem )
|
bool APPEARANCE_CONTROLS::doesBoardItemNeedRebuild( BOARD_ITEM* aBoardItem )
|
||||||
{
|
{
|
||||||
return aBoardItem->Type() == PCB_NETINFO_T;
|
return aBoardItem->Type() == PCB_NETINFO_T;
|
||||||
|
|
|
@ -224,6 +224,9 @@ public:
|
||||||
///< Update the widget when the active board layer is changed.
|
///< Update the widget when the active board layer is changed.
|
||||||
void OnLayerChanged();
|
void OnLayerChanged();
|
||||||
|
|
||||||
|
/// Notifies the panel when a net has been hidden or shown via the external tool.
|
||||||
|
void OnNetVisibilityChanged( int aNetCode, bool aVisibility );
|
||||||
|
|
||||||
///< Manually update visibility for a given layer
|
///< Manually update visibility for a given layer
|
||||||
void SetLayerVisible( LAYER_NUM aLayer, bool isVisible );
|
void SetLayerVisible( LAYER_NUM aLayer, bool isVisible );
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue