From 6fc39fb2d528035b1b9d502563bd67032b080960 Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Sat, 2 Jan 2016 20:42:06 +0100 Subject: [PATCH] refs #526, category/statusmessage * new categories * utility functions in status message --- src/blackmisc/logcategory.h | 20 ++++++++++++++++++-- src/blackmisc/logpattern.cpp | 4 +++- src/blackmisc/statusmessage.cpp | 4 +--- src/blackmisc/statusmessagelist.cpp | 17 ++++++++++++++++- src/blackmisc/statusmessagelist.h | 6 ++++++ 5 files changed, 44 insertions(+), 7 deletions(-) diff --git a/src/blackmisc/logcategory.h b/src/blackmisc/logcategory.h index 603acec67..4be50420f 100644 --- a/src/blackmisc/logcategory.h +++ b/src/blackmisc/logcategory.h @@ -71,13 +71,27 @@ namespace BlackMisc return cat; } - //! Downloading + //! Generic downloads static const CLogCategory &download() { static const CLogCategory cat { "swift.download" }; return cat; } + //! Webservice + static const CLogCategory &webservice() + { + static const CLogCategory cat { "swift.webservice" }; + return cat; + } + + //! Webservice with swift DB + static const CLogCategory &swiftDbWebservice() + { + static const CLogCategory cat { "swift.db.webservice" }; + return cat; + } + //! All predefined special categories //! \note Human readable patterns are defined in CLogPattern::allHumanReadablePatterns static const QList &allSpecialCategories() @@ -89,7 +103,9 @@ namespace BlackMisc context(), contextSlot(), guiComponent(), - download() + download(), + webservice(), + swiftDbWebservice(), }; return cats; } diff --git a/src/blackmisc/logpattern.cpp b/src/blackmisc/logpattern.cpp index 7633fafc7..1efd74745 100644 --- a/src/blackmisc/logpattern.cpp +++ b/src/blackmisc/logpattern.cpp @@ -22,7 +22,9 @@ namespace BlackMisc { "swift contexts", exactMatch(CLogCategory::context()) }, { "swift context slots", exactMatch(CLogCategory::contextSlot()) }, { "swift GUI", exactMatch(CLogCategory::guiComponent()) }, - { "swift downloads", exactMatch(CLogCategory::download()) }, + { "downloading data", exactMatch(CLogCategory::download()) }, + { "webservice related", exactMatch(CLogCategory::webservice()) }, + { "swift DB webservice related", exactMatch(CLogCategory::swiftDbWebservice()) }, { "Qt library", startsWith("qt.") }, { "uncategorized (other)", empty() } }; diff --git a/src/blackmisc/statusmessage.cpp b/src/blackmisc/statusmessage.cpp index 506ca1395..8ec956a55 100644 --- a/src/blackmisc/statusmessage.cpp +++ b/src/blackmisc/statusmessage.cpp @@ -187,15 +187,13 @@ namespace BlackMisc CStatusMessage CStatusMessage::fromDatabaseJson(const QJsonObject &json) { - CLogCategory cat("swift.db"); QString msgText(json.value("text").toString()); QString severityText(json.value("severity").toString()); QString typeText(json.value("type").toString()); StatusSeverity severity = stringToSeverity(severityText); typeText = "swift.db.type." + typeText.toLower().remove(' '); - - CStatusMessage m({ cat, CLogCategory(typeText)}, severity, msgText); + CStatusMessage m({ CLogCategory::swiftDbWebservice(), CLogCategory(typeText)}, severity, msgText); return m; } diff --git a/src/blackmisc/statusmessagelist.cpp b/src/blackmisc/statusmessagelist.cpp index 3bf617f84..d18e9076e 100644 --- a/src/blackmisc/statusmessagelist.cpp +++ b/src/blackmisc/statusmessagelist.cpp @@ -73,8 +73,23 @@ namespace BlackMisc { msg.setCategories(categories); } + } + + void CStatusMessageList::removeWarningsAndBelow() + { + if (this->isEmpty()) { return; } + this->removeIf(&CStatusMessage::getSeverity, CStatusMessage::SeverityWarning); + this->removeInfoAndBelow(); + } - CStatusMessage::StatusSeverity CStatusMessageList::worstSeverity() const + void CStatusMessageList::removeInfoAndBelow() + { + if (this->isEmpty()) { return; } + this->removeIf(&CStatusMessage::getSeverity, CStatusMessage::SeverityDebug); + this->removeIf(&CStatusMessage::getSeverity, CStatusMessage::SeverityInfo); + } + + CStatusMessage::StatusSeverity CStatusMessageList::worstSeverity() const { CStatusMessage::StatusSeverity s = CStatusMessage::SeverityDebug; for (const CStatusMessage &msg : *this) diff --git a/src/blackmisc/statusmessagelist.h b/src/blackmisc/statusmessagelist.h index 2ad9a841f..7f4376408 100644 --- a/src/blackmisc/statusmessagelist.h +++ b/src/blackmisc/statusmessagelist.h @@ -64,6 +64,12 @@ namespace BlackMisc //! Reset the categories of all messages in the list void setCategories(const CLogCategoryList &categories); + //! Remove warnings and below + void removeWarningsAndBelow(); + + //! Remove info and below + void removeInfoAndBelow(); + //! Find worst severity CStatusMessage::StatusSeverity worstSeverity() const;