From 699fd2b3acc55f003d2bbafac210b8371fa36bfe Mon Sep 17 00:00:00 2001 From: Jeff Young <jeff@rokeby.ie> Date: Wed, 5 Mar 2025 00:12:08 +0000 Subject: [PATCH] Implement severity checking for CLI_REPORTER. --- common/reporter.cpp | 14 ++++++++++++++ include/reporter.h | 5 +++++ 2 files changed, 19 insertions(+) diff --git a/common/reporter.cpp b/common/reporter.cpp index 4b973c407d..b9f1714c0d 100644 --- a/common/reporter.cpp +++ b/common/reporter.cpp @@ -138,10 +138,24 @@ REPORTER& CLI_REPORTER::Report( const wxString& aMsg, SEVERITY aSeverity ) else wxFprintf( target, aMsg + wxS( "\n" ) ); + m_hasMessageMap[aSeverity] = true; + return *this; } +bool CLI_REPORTER::HasMessageOfSeverity( int aSeverityMask ) const +{ + for( const auto& [severity, flag] : m_hasMessageMap ) + { + if( ( aSeverityMask & severity ) > 0 && flag ) + return true; + } + + return false; +} + + REPORTER& CLI_REPORTER::GetInstance() { static CLI_REPORTER s_cliReporter; diff --git a/include/reporter.h b/include/reporter.h index 9cfffabc2c..9faae9b214 100644 --- a/include/reporter.h +++ b/include/reporter.h @@ -26,6 +26,7 @@ #define _REPORTER_H_ #include <memory> +#include <map> #include <eda_units.h> #include <widgets/report_severity.h> @@ -238,6 +239,10 @@ public: REPORTER& Report( const wxString& aMsg, SEVERITY aSeverity = RPT_SEVERITY_UNDEFINED ) override; bool HasMessage() const override { return false; } + bool HasMessageOfSeverity( int aSeverityMask ) const override; + +private: + std::map<SEVERITY, bool> m_hasMessageMap; };