Browse Source

Re-create missing exclusion markers if DRC was cancelled.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/14919
newinvert
Jeff Young 2 years ago
parent
commit
93789e75b9
  1. 10
      pcbnew/tools/drc_tool.cpp
  2. 2
      pcbnew/tools/drc_tool.h

10
pcbnew/tools/drc_tool.cpp

@ -87,7 +87,7 @@ void DRC_TOOL::ShowDRCDialog( wxWindow* aParent )
if( !m_drcDialog )
{
m_drcDialog = new DIALOG_DRC( m_editFrame, aParent );
updatePointers();
updatePointers( false );
if( show_dlg_modal )
m_drcDialog->ShowModal();
@ -96,7 +96,7 @@ void DRC_TOOL::ShowDRCDialog( wxWindow* aParent )
}
else // The dialog is just not visible (because the user has double clicked on an error item)
{
updatePointers();
updatePointers( false );
m_drcDialog->Show( true );
}
}
@ -197,16 +197,16 @@ void DRC_TOOL::RunTests( PROGRESS_REPORTER* aProgressReporter, bool aRefillZones
m_editFrame->ShowSolderMask();
// update the m_drcDialog listboxes
updatePointers();
updatePointers( aProgressReporter->IsCancelled() );
}
void DRC_TOOL::updatePointers()
void DRC_TOOL::updatePointers( bool aDRCWasCancelled )
{
// update my pointers, m_editFrame is the only unchangeable one
m_pcb = m_editFrame->GetBoard();
m_editFrame->ResolveDRCExclusions( false );
m_editFrame->ResolveDRCExclusions( aDRCWasCancelled );
if( m_drcDialog )
m_drcDialog->UpdateData();

2
pcbnew/tools/drc_tool.h

@ -102,7 +102,7 @@ private:
/**
* Update needed pointers from the one pointer which is known not to change.
*/
void updatePointers();
void updatePointers( bool aDRCWasCancelled );
EDA_UNITS userUnits() const { return m_editFrame->GetUserUnits(); }

Loading…
Cancel
Save