Commit c29ee59c authored by Mark Roszko's avatar Mark Roszko
Browse files

Centralize error count update logic, clear the count on marker deletion.

parent 1d80fb74
Loading
Loading
Loading
Loading
+18 −22
Original line number Diff line number Diff line
@@ -88,8 +88,21 @@ void DIALOG_ERC::Init()
    m_WriteResultOpt->SetValue( m_writeErcFile );

    SCH_SCREENS screens;
    int markers = screens.GetMarkerCount();
    int warnings = screens.GetMarkerCount( WAR );
    updateMarkerCounts( &screens );

    DisplayERC_MarkersList();

    // Init Panel Matrix
    ReBuildMatrixPanel();

    // Set the run ERC button as the default button.
    m_buttonERC->SetDefault();
}

void DIALOG_ERC::updateMarkerCounts( SCH_SCREENS *screens )
{
    int markers = screens->GetMarkerCount();
    int warnings = screens->GetMarkerCount( WAR );

    wxString num;
    num.Printf( wxT( "%d" ), markers );
@@ -100,14 +113,6 @@ void DIALOG_ERC::Init()

    num.Printf( wxT( "%d" ), warnings );
    m_LastWarningCount->SetValue( num );

    DisplayERC_MarkersList();

    // Init Panel Matrix
    ReBuildMatrixPanel();

    // Set the run ERC button as the default button.
    m_buttonERC->SetDefault();
}

/* Delete the old ERC markers, over the whole hierarchy
@@ -117,6 +122,8 @@ void DIALOG_ERC::OnEraseDrcMarkersClick( wxCommandEvent& event )
    SCH_SCREENS ScreenList;

    ScreenList.DeleteAllMarkers( MARK_ERC );
    updateMarkerCounts( &ScreenList );

    m_MarkersList->ClearList();
    m_parent->GetCanvas()->Refresh();
}
@@ -521,18 +528,7 @@ void DIALOG_ERC::TestErc( wxArrayString* aMessagesList )
    }

    // Displays global results:
    wxString num;
    int markers = screens.GetMarkerCount();
    int warnings = screens.GetMarkerCount( WAR );

    num.Printf( wxT( "%d" ), markers );
    m_TotalErrCount->SetValue( num );

    num.Printf( wxT( "%d" ), markers - warnings );
    m_LastErrCount->SetValue( num );

    num.Printf( wxT( "%d" ), warnings );
    m_LastWarningCount->SetValue( num );
    updateMarkerCounts(&screens);

    // Display diags:
    DisplayERC_MarkersList();
+1 −0
Original line number Diff line number Diff line
@@ -62,6 +62,7 @@ private:
    void ChangeErrorLevel( wxCommandEvent& event );
    void ReBuildMatrixPanel();
    void setDRCMatrixButtonState( wxBitmapButton *aButton, int aState );
    void updateMarkerCounts( SCH_SCREENS *screens );
};