diff --git a/src/blackmisc/statusmessagelist.cpp b/src/blackmisc/statusmessagelist.cpp index 727607e6f..52f77db42 100644 --- a/src/blackmisc/statusmessagelist.cpp +++ b/src/blackmisc/statusmessagelist.cpp @@ -186,6 +186,20 @@ namespace BlackMisc return s; } + QMap CStatusMessageList::countSeverities() const + { + QMap counts; + counts.insert(SeverityDebug, 0); + counts.insert(SeverityInfo, 0); + counts.insert(SeverityWarning, 0); + counts.insert(SeverityError, 0); + for (const CStatusMessage &m : *this) + { + counts[m.getSeverity()]++; + } + return counts; + } + CStatusMessage CStatusMessageList::toSingleMessage() const { if (this->isEmpty()) { return CStatusMessage(); } diff --git a/src/blackmisc/statusmessagelist.h b/src/blackmisc/statusmessagelist.h index ac1dab5b5..285a3fb88 100644 --- a/src/blackmisc/statusmessagelist.h +++ b/src/blackmisc/statusmessagelist.h @@ -24,6 +24,7 @@ #include #include #include +#include namespace BlackMisc { @@ -110,6 +111,9 @@ namespace BlackMisc //! Find worst severity CStatusMessage::StatusSeverity worstSeverity() const; + //! Count number of messages per severity + QMap countSeverities() const; + //! Merge into a single message CStatusMessage toSingleMessage() const;