From 3b35bfc0a59a0939677a8aadddaa24198dca56fc Mon Sep 17 00:00:00 2001 From: Jeff Young Date: Mon, 14 Dec 2020 13:33:51 +0000 Subject: [PATCH] Don't write out synthetic severities (they're headings). Fixes https://gitlab.com/kicad/code/kicad/issues/6726 --- common/dialogs/panel_setup_severities.cpp | 10 +++++----- common/dialogs/panel_setup_severities.h | 6 +++--- eeschema/dialogs/dialog_erc.cpp | 2 +- eeschema/erc_settings.cpp | 18 ++++++++---------- eeschema/erc_settings.h | 8 ++++---- include/board_design_settings.h | 4 ++-- include/eda_base_frame.h | 2 +- include/pcb_base_frame.h | 2 +- pcbnew/board_design_settings.cpp | 12 +++++------- pcbnew/dialogs/dialog_drc.cpp | 6 +++--- pcbnew/drc/drc_results_provider.h | 8 ++++---- pcbnew/pcb_base_frame.cpp | 2 +- pcbnew/swig/pcbnew_scripting_helpers.cpp | 6 +++--- 13 files changed, 41 insertions(+), 45 deletions(-) diff --git a/common/dialogs/panel_setup_severities.cpp b/common/dialogs/panel_setup_severities.cpp index b455f419c9..a950e77f58 100644 --- a/common/dialogs/panel_setup_severities.cpp +++ b/common/dialogs/panel_setup_severities.cpp @@ -30,7 +30,7 @@ PANEL_SETUP_SEVERITIES::PANEL_SETUP_SEVERITIES( PAGED_DIALOG* aParent, std::vector> aItems, - std::map& aSeverities, + std::map& aSeverities, RC_ITEM* aPinMapSpecialCase ) : wxPanel( aParent->GetTreebook() ), m_severities( aSeverities ), @@ -147,7 +147,7 @@ PANEL_SETUP_SEVERITIES::PANEL_SETUP_SEVERITIES( PAGED_DIALOG* aParent, } -void PANEL_SETUP_SEVERITIES::ImportSettingsFrom( std::map& aSettings ) +void PANEL_SETUP_SEVERITIES::ImportSettingsFrom( std::map& aSettings ) { for( const RC_ITEM& item : m_items ) { @@ -222,7 +222,7 @@ bool PANEL_SETUP_SEVERITIES::TransferDataFromWindow() if( !m_buttonMap[ errorCode ][0] ) // this entry does not actually exist continue; - int severity = RPT_SEVERITY_UNDEFINED; + SEVERITY severity = RPT_SEVERITY_UNDEFINED; if( m_buttonMap[ errorCode ][0]->GetValue() ) severity = RPT_SEVERITY_ERROR; @@ -236,8 +236,8 @@ bool PANEL_SETUP_SEVERITIES::TransferDataFromWindow() if( m_pinMapSpecialCase ) { - int pinMapCode = m_pinMapSpecialCase->GetErrorCode(); - int severity = RPT_SEVERITY_UNDEFINED; + int pinMapCode = m_pinMapSpecialCase->GetErrorCode(); + SEVERITY severity = RPT_SEVERITY_UNDEFINED; if( m_buttonMap[ pinMapCode ][0]->GetValue() ) severity = RPT_SEVERITY_ERROR; diff --git a/common/dialogs/panel_setup_severities.h b/common/dialogs/panel_setup_severities.h index f3c5f44495..698af0df63 100644 --- a/common/dialogs/panel_setup_severities.h +++ b/common/dialogs/panel_setup_severities.h @@ -37,7 +37,7 @@ class wxRadioButton; class PANEL_SETUP_SEVERITIES : public wxPanel { private: - std::map& m_severities; + std::map& m_severities; /// A list of item templates (to get descriptive text and error codes from) std::vector> m_items; @@ -57,10 +57,10 @@ public: */ PANEL_SETUP_SEVERITIES( PAGED_DIALOG* aParent, std::vector> aItems, - std::map& aSeverities, + std::map& aSeverities, RC_ITEM* aPinMapSpecialCase = nullptr ); - void ImportSettingsFrom( std::map& aSettings ); + void ImportSettingsFrom( std::map& aSettings ); private: bool TransferDataToWindow() override; diff --git a/eeschema/dialogs/dialog_erc.cpp b/eeschema/dialogs/dialog_erc.cpp index 9907acdc97..878aeb7cda 100644 --- a/eeschema/dialogs/dialog_erc.cpp +++ b/eeschema/dialogs/dialog_erc.cpp @@ -802,7 +802,7 @@ bool DIALOG_ERC::writeReport( const wxString& aFullFileName ) { const SCH_MARKER* marker = static_cast( aItem ); RC_ITEM* item = marker->GetRCItem().get(); - SEVERITY severity = (SEVERITY)settings.GetSeverity( item->GetErrorCode() ); + SEVERITY severity = settings.GetSeverity( item->GetErrorCode() ); if( marker->GetMarkerType() != MARKER_BASE::MARKER_ERC ) continue; diff --git a/eeschema/erc_settings.cpp b/eeschema/erc_settings.cpp index f7a3b6b370..2931f1a02d 100644 --- a/eeschema/erc_settings.cpp +++ b/eeschema/erc_settings.cpp @@ -107,15 +107,13 @@ ERC_SETTINGS::ERC_SETTINGS( JSON_SETTINGS* aParent, const std::string& aPath ) : for( const RC_ITEM& item : ERC_ITEM::GetItemsWithSeverities() ) { - int code = item.GetErrorCode(); + wxString name = item.GetSettingsKey(); + int code = item.GetErrorCode(); - if( !m_Severities.count( code ) ) + if( name.IsEmpty() || m_Severities.count( code ) == 0 ) continue; - wxString name = item.GetSettingsKey(); - - ret[std::string( name.ToUTF8() )] = - SeverityToString( static_cast( m_Severities[code] ) ); + ret[std::string( name.ToUTF8() )] = SeverityToString( m_Severities[code] ); } return ret; @@ -223,7 +221,7 @@ ERC_SETTINGS::~ERC_SETTINGS() } -int ERC_SETTINGS::GetSeverity( int aErrorCode ) const +SEVERITY ERC_SETTINGS::GetSeverity( int aErrorCode ) const { // Special-case pin-to-pin errors: // Ignore-or-not is controlled by ERCE_PIN_TO_PIN_WARNING (for both) @@ -254,7 +252,7 @@ int ERC_SETTINGS::GetSeverity( int aErrorCode ) const } -void ERC_SETTINGS::SetSeverity( int aErrorCode, int aSeverity ) +void ERC_SETTINGS::SetSeverity( int aErrorCode, SEVERITY aSeverity ) { m_Severities[ aErrorCode ] = aSeverity; } @@ -280,7 +278,7 @@ void SHEETLIST_ERC_ITEMS_PROVIDER::SetSeverities( int aSeverities ) for( SCH_ITEM* aItem : sheetList[i].LastScreen()->Items().OfType( SCH_MARKER_T ) ) { SCH_MARKER* marker = static_cast( aItem ); - int markerSeverity; + SEVERITY markerSeverity; if( marker->GetMarkerType() != MARKER_BASE::MARKER_ERC ) continue; @@ -312,7 +310,7 @@ int SHEETLIST_ERC_ITEMS_PROVIDER::GetCount( int aSeverity ) for( SCH_ITEM* aItem : sheetList[i].LastScreen()->Items().OfType( SCH_MARKER_T ) ) { SCH_MARKER* marker = static_cast( aItem ); - int markerSeverity; + SEVERITY markerSeverity; if( marker->GetMarkerType() != MARKER_BASE::MARKER_ERC ) continue; diff --git a/eeschema/erc_settings.h b/eeschema/erc_settings.h index eb0270b697..166fd26839 100644 --- a/eeschema/erc_settings.h +++ b/eeschema/erc_settings.h @@ -116,9 +116,9 @@ public: return GetSeverity( aErrorCode ) != RPT_SEVERITY_IGNORE; } - int GetSeverity( int aErrorCode ) const; + SEVERITY GetSeverity( int aErrorCode ) const; - void SetSeverity( int aErrorCode, int aSeverity ); + void SetSeverity( int aErrorCode, SEVERITY aSeverity ); void ResetPinMap(); @@ -154,8 +154,8 @@ public: public: - std::map m_Severities; - std::set m_ErcExclusions; + std::map m_Severities; + std::set m_ErcExclusions; PIN_ERROR m_PinMap[ELECTRICAL_PINTYPES_TOTAL][ELECTRICAL_PINTYPES_TOTAL]; diff --git a/include/board_design_settings.h b/include/board_design_settings.h index 108f711cbb..ee2ffeb04e 100644 --- a/include/board_design_settings.h +++ b/include/board_design_settings.h @@ -245,7 +245,7 @@ public: int m_SilkClearance; std::shared_ptr m_DRCEngine; - std::map m_DRCSeverities; // Map from DRCErrorCode to SEVERITY + std::map m_DRCSeverities; // Map from DRCErrorCode to SEVERITY std::set m_DrcExclusions; /* @@ -368,7 +368,7 @@ public: BOARD_STACKUP& GetStackupDescriptor() { return m_stackup; } - int GetSeverity( int aDRCErrorCode ); + SEVERITY GetSeverity( int aDRCErrorCode ); /** * returns true if the DRC error code's severity is SEVERITY_IGNORE diff --git a/include/eda_base_frame.h b/include/eda_base_frame.h index cc0c87d927..a9d8ba8a95 100644 --- a/include/eda_base_frame.h +++ b/include/eda_base_frame.h @@ -252,7 +252,7 @@ public: SETTINGS_MANAGER* GetSettingsManager() const { return m_settingsManager; } - virtual int GetSeverity( int aErrorCode ) const { return RPT_SEVERITY_UNDEFINED; } + virtual SEVERITY GetSeverity( int aErrorCode ) const { return RPT_SEVERITY_UNDEFINED; } /** * Override the default process event handler to implement the auto save feature. diff --git a/include/pcb_base_frame.h b/include/pcb_base_frame.h index 623e0cf8df..c91d01bd92 100644 --- a/include/pcb_base_frame.h +++ b/include/pcb_base_frame.h @@ -386,7 +386,7 @@ public: return GetScreen()->m_Active_Layer; } - int GetSeverity( int aErrorCode ) const override; + SEVERITY GetSeverity( int aErrorCode ) const override; virtual void OnDisplayOptionsChanged() {} diff --git a/pcbnew/board_design_settings.cpp b/pcbnew/board_design_settings.cpp index 202f178456..1452474595 100644 --- a/pcbnew/board_design_settings.cpp +++ b/pcbnew/board_design_settings.cpp @@ -261,15 +261,13 @@ BOARD_DESIGN_SETTINGS::BOARD_DESIGN_SETTINGS( JSON_SETTINGS* aParent, const std: for( const RC_ITEM& item : DRC_ITEM::GetItemsWithSeverities() ) { - int code = item.GetErrorCode(); + wxString name = item.GetSettingsKey(); + int code = item.GetErrorCode(); - if( !m_DRCSeverities.count( code ) ) + if( name.IsEmpty() || m_DRCSeverities.count( code ) == 0 ) continue; - wxString name = item.GetSettingsKey(); - - ret[std::string( name.ToUTF8() )] = - SeverityToString( static_cast( m_DRCSeverities[code] ) ); + ret[std::string( name.ToUTF8() )] = SeverityToString( m_DRCSeverities[code] ); } return ret; @@ -838,7 +836,7 @@ bool BOARD_DESIGN_SETTINGS::LoadFromFile( const wxString& aDirectory ) } -int BOARD_DESIGN_SETTINGS::GetSeverity( int aDRCErrorCode ) +SEVERITY BOARD_DESIGN_SETTINGS::GetSeverity( int aDRCErrorCode ) { return m_DRCSeverities[ aDRCErrorCode ]; } diff --git a/pcbnew/dialogs/dialog_drc.cpp b/pcbnew/dialogs/dialog_drc.cpp index 0bda650599..6b4554c4c7 100644 --- a/pcbnew/dialogs/dialog_drc.cpp +++ b/pcbnew/dialogs/dialog_drc.cpp @@ -779,7 +779,7 @@ bool DIALOG_DRC::writeReport( const wxString& aFullFileName ) for( int i = 0; i < count; ++i ) { const std::shared_ptr& item = m_markersProvider->GetItem( i ); - SEVERITY severity = (SEVERITY) bds.GetSeverity( item->GetErrorCode() ); + SEVERITY severity = bds.GetSeverity( item->GetErrorCode() ); fprintf( fp, "%s", TO_UTF8( item->ShowReport( units, severity, itemMap ) ) ); } @@ -791,7 +791,7 @@ bool DIALOG_DRC::writeReport( const wxString& aFullFileName ) for( int i = 0; i < count; ++i ) { const std::shared_ptr& item = m_unconnectedItemsProvider->GetItem( i ); - SEVERITY severity = (SEVERITY) bds.GetSeverity( item->GetErrorCode() ); + SEVERITY severity = bds.GetSeverity( item->GetErrorCode() ); fprintf( fp, "%s", TO_UTF8( item->ShowReport( units, severity, itemMap ) ) ); } @@ -803,7 +803,7 @@ bool DIALOG_DRC::writeReport( const wxString& aFullFileName ) for( int i = 0; i < count; ++i ) { const std::shared_ptr& item = m_footprintWarningsProvider->GetItem( i ); - SEVERITY severity = (SEVERITY) bds.GetSeverity( item->GetErrorCode() ); + SEVERITY severity = bds.GetSeverity( item->GetErrorCode() ); fprintf( fp, "%s", TO_UTF8( item->ShowReport( units, severity, itemMap ) ) ); } diff --git a/pcbnew/drc/drc_results_provider.h b/pcbnew/drc/drc_results_provider.h index d383830e44..cb35e574de 100644 --- a/pcbnew/drc/drc_results_provider.h +++ b/pcbnew/drc/drc_results_provider.h @@ -63,7 +63,7 @@ public: for( PCB_MARKER* marker : m_board->Markers() ) { - int markerSeverity; + SEVERITY markerSeverity; if( marker->IsExcluded() ) markerSeverity = RPT_SEVERITY_EXCLUSION; @@ -86,7 +86,7 @@ public: for( PCB_MARKER* marker : m_board->Markers() ) { - int markerSeverity; + SEVERITY markerSeverity; if( marker->IsExcluded() ) markerSeverity = RPT_SEVERITY_EXCLUSION; @@ -159,7 +159,7 @@ public: if( m_sourceVector ) { - for( auto item : *m_sourceVector ) + for( const std::shared_ptr& item : *m_sourceVector ) { if( bds.GetSeverity( item->GetErrorCode() ) & aSeverities ) m_filteredVector.push_back( item ); @@ -177,7 +177,7 @@ public: if( m_sourceVector ) { - for( auto item : *m_sourceVector ) + for( const std::shared_ptr& item : *m_sourceVector ) { if( bds.GetSeverity( item->GetErrorCode() ) == aSeverity ) count++; diff --git a/pcbnew/pcb_base_frame.cpp b/pcbnew/pcb_base_frame.cpp index 2145630a05..bc1baf6588 100644 --- a/pcbnew/pcb_base_frame.cpp +++ b/pcbnew/pcb_base_frame.cpp @@ -628,7 +628,7 @@ void PCB_BASE_FRAME::LoadSettings( APP_SETTINGS_BASE* aCfg ) } -int PCB_BASE_FRAME::GetSeverity( int aErrorCode ) const +SEVERITY PCB_BASE_FRAME::GetSeverity( int aErrorCode ) const { if( aErrorCode >= CLEANUP_FIRST ) return RPT_SEVERITY_ACTION; diff --git a/pcbnew/swig/pcbnew_scripting_helpers.cpp b/pcbnew/swig/pcbnew_scripting_helpers.cpp index 2a0a7e76c2..2e35f1aa35 100644 --- a/pcbnew/swig/pcbnew_scripting_helpers.cpp +++ b/pcbnew/swig/pcbnew_scripting_helpers.cpp @@ -428,7 +428,7 @@ bool WriteDRCReport( BOARD* aBoard, const wxString& aFileName, EDA_UNITS aUnits, for( const std::shared_ptr& item : violations ) { - SEVERITY severity = static_cast( bds.GetSeverity( item->GetErrorCode() ) ); + SEVERITY severity = bds.GetSeverity( item->GetErrorCode() ); fprintf( fp, "%s", TO_UTF8( item->ShowReport( aUnits, severity, itemMap ) ) ); } @@ -436,7 +436,7 @@ bool WriteDRCReport( BOARD* aBoard, const wxString& aFileName, EDA_UNITS aUnits, for( const std::shared_ptr& item : unconnected ) { - SEVERITY severity = static_cast( bds.GetSeverity( item->GetErrorCode() ) ); + SEVERITY severity = bds.GetSeverity( item->GetErrorCode() ); fprintf( fp, "%s", TO_UTF8( item->ShowReport( aUnits, severity, itemMap ) ) ); } @@ -444,7 +444,7 @@ bool WriteDRCReport( BOARD* aBoard, const wxString& aFileName, EDA_UNITS aUnits, for( const std::shared_ptr& item : footprints ) { - SEVERITY severity = static_cast( bds.GetSeverity( item->GetErrorCode() ) ); + SEVERITY severity = bds.GetSeverity( item->GetErrorCode() ); fprintf( fp, "%s", TO_UTF8( item->ShowReport( aUnits, severity, itemMap ) ) ); }