From a4ba45ce7593ced0df3dcfe9ef4f48365e43df01 Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Wed, 25 Nov 2015 23:10:57 +0100 Subject: [PATCH] refs #522, as preparation for mutable in status message * added the new human readable patterns ( also for #506 ) * adjusted using functions Meeting: https://dev.vatsim-germany.org/boards/22/topics/2786?r=2787#message-2787 --- src/blackgui/statusmessageform.cpp | 2 +- src/blackgui/statusmessageformsmall.cpp | 2 +- src/blackmisc/filelogger.cpp | 2 +- src/blackmisc/logcategory.h | 1 + src/blackmisc/statusmessage.cpp | 38 +++++++++++-------------- src/blackmisc/statusmessage.h | 5 +++- 6 files changed, 24 insertions(+), 26 deletions(-) diff --git a/src/blackgui/statusmessageform.cpp b/src/blackgui/statusmessageform.cpp index 9c32070c2..9deecfedd 100644 --- a/src/blackgui/statusmessageform.cpp +++ b/src/blackgui/statusmessageform.cpp @@ -35,7 +35,7 @@ namespace BlackGui { ui->te_Message->setPlainText(message.getMessage()); ui->lbl_SeverityIcon->setPixmap(message.toPixmap()); - ui->le_Categories->setText(message.getCategories().toQString(true)); + ui->le_Categories->setText(message.getHumanReadablePattern()); ui->le_Severity->setText(message.getSeverityAsString()); ui->le_Timestamp->setText(message.getFormattedUtcTimestampYmdhms()); } diff --git a/src/blackgui/statusmessageformsmall.cpp b/src/blackgui/statusmessageformsmall.cpp index 4d00fc252..48b53972a 100644 --- a/src/blackgui/statusmessageformsmall.cpp +++ b/src/blackgui/statusmessageformsmall.cpp @@ -35,7 +35,7 @@ namespace BlackGui { ui->te_Message->setPlainText(message.getMessage()); ui->lbl_SeverityIcon->setPixmap(message.toPixmap()); - ui->le_Categories->setText(message.getCategories().toQString(true)); + ui->le_Categories->setText(message.getHumanReadablePattern()); ui->le_Severity->setText(message.getSeverityAsString()); ui->le_Timestamp->setText(message.getFormattedUtcTimestampYmdhms()); } diff --git a/src/blackmisc/filelogger.cpp b/src/blackmisc/filelogger.cpp index 2583a2515..3dba9ecbe 100644 --- a/src/blackmisc/filelogger.cpp +++ b/src/blackmisc/filelogger.cpp @@ -52,7 +52,7 @@ namespace BlackMisc if (! m_logPattern.match(statusMessage)) { return; } QString finalContent = QDateTime::currentDateTime().toString(QStringLiteral("hh:mm:ss ")); - finalContent += statusMessage.getHumanReadableCategory(); + finalContent += statusMessage.getHumanReadablePattern(); finalContent += " "; finalContent += statusMessage.getSeverityAsString(); finalContent += ": "; diff --git a/src/blackmisc/logcategory.h b/src/blackmisc/logcategory.h index 2e37c3f59..bd3a612be 100644 --- a/src/blackmisc/logcategory.h +++ b/src/blackmisc/logcategory.h @@ -72,6 +72,7 @@ namespace BlackMisc } //! All predefined special categories + //! \note Human readable patterns are defined in CLogPattern::allHumanReadablePatterns static const QList &allSpecialCategories() { static const QList cats diff --git a/src/blackmisc/statusmessage.cpp b/src/blackmisc/statusmessage.cpp index 3f87968ff..99baf6782 100644 --- a/src/blackmisc/statusmessage.cpp +++ b/src/blackmisc/statusmessage.cpp @@ -104,39 +104,33 @@ namespace BlackMisc } } - QString CStatusMessage::getHumanReadableCategory() const + QString CStatusMessage::getHumanReadablePattern() const { //! \todo This should me not hardcoded if (this->m_humanReadableCategory.isEmpty()) { - const QString cat(this->m_categories.toQString().toLower()); - // could als be subject of i18n - // from sepcific to unspecific - if (cat.isEmpty()) { this->m_humanReadableCategory = "None"; } - else if (cat.contains(CLogCategory::validation().toQString())) { this->m_humanReadableCategory = "Validation"; } - else if (cat.contains("contextaudio")) { this->m_humanReadableCategory = "Audio"; } - else if (cat.contains("contextsimulator")) { this->m_humanReadableCategory = "Simulator"; } - else if (cat.contains("contextnetwork")) { this->m_humanReadableCategory = "Network"; } - else if (cat.contains("vatlib")) { this->m_humanReadableCategory = "VATSIM library"; } - else if (cat.contains("blackmisc")) { this->m_humanReadableCategory = "Library"; } - else if (cat.contains("blackcore")) { this->m_humanReadableCategory = "Core"; } - else if (cat.contains("blackgui")) { this->m_humanReadableCategory = "GUI"; } - else if (cat.contains("blacksound")) { this->m_humanReadableCategory = "GUI"; } - else if (cat.contains("interpolator")) { this->m_humanReadableCategory = "Interpolator"; } - else if (cat.contains("xplane")) { this->m_humanReadableCategory = "XPlane"; } - else if (cat.contains("fsx")) { this->m_humanReadableCategory = "FSX"; } - else if (cat.contains("fs9")) { this->m_humanReadableCategory = "FS9"; } - else if (cat.contains("mapping") || cat.contains("matching")) { this->m_humanReadableCategory = "Model matching"; } - - else this->m_humanReadableCategory = "Misc."; + QStringList patternNames(getHumanReadablePatterns()); + this->m_humanReadableCategory = patternNames.isEmpty() ? + "None" : patternNames.join(", "); } return this->m_humanReadableCategory; } + QStringList CStatusMessage::getHumanReadablePatterns() const + { + QStringList patternNames; + for (const QString &name : CLogPattern::allHumanReadableNames()) + { + if (CLogPattern::fromHumanReadableName(name).match(*this)) { patternNames.push_back(name); } + } + return patternNames; + } + void CStatusMessage::markAsHandledBy(const QObject *object) const { this->m_handledByObjects.push_back(quintptr(object)); } + bool CStatusMessage::wasHandledBy(const QObject *object) const { return this->m_handledByObjects.contains(quintptr(object)); @@ -293,7 +287,7 @@ namespace BlackMisc case IndexCategories: return CVariant::from(this->m_categories.toQString()); case IndexCategoryHumanReadable: - return CVariant::from(this->getHumanReadableCategory()); + return CVariant::from(this->getHumanReadablePattern()); default: return CValueObject::propertyByIndex(index); } diff --git a/src/blackmisc/statusmessage.h b/src/blackmisc/statusmessage.h index f5e018e3e..d7d2a1b11 100644 --- a/src/blackmisc/statusmessage.h +++ b/src/blackmisc/statusmessage.h @@ -83,7 +83,10 @@ namespace BlackMisc const CLogCategoryList &getCategories() const { return this->m_categories; } //! Human readable category - QString getHumanReadableCategory() const; + QString getHumanReadablePattern() const; + + //! All human readable categories + QStringList getHumanReadablePatterns() const; //! Message severity StatusSeverity getSeverity() const { return this->m_severity; }