From 555fcc34c7ff0700e49ad2ceaa08288670e60048 Mon Sep 17 00:00:00 2001 From: Lorenz Meier Date: Mon, 25 Apr 2016 13:05:33 +0200 Subject: [PATCH] Clean UAS text handling --- src/uas/UASMessageHandler.cc | 24 +++++++++++++++++++++--- src/uas/UASMessageHandler.h | 2 ++ 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/src/uas/UASMessageHandler.cc b/src/uas/UASMessageHandler.cc index ab24db561..11dc9122d 100644 --- a/src/uas/UASMessageHandler.cc +++ b/src/uas/UASMessageHandler.cc @@ -55,6 +55,8 @@ bool UASMessage::severityIsError() UASMessageHandler::UASMessageHandler(QGCApplication* app) : QGCTool(app) , _activeUAS(NULL) + , _activeComponent(-1) + , _multiComp(false) , _errorCount(0) , _errorCountTotal(0) , _warningCount(0) @@ -127,6 +129,14 @@ void UASMessageHandler::handleTextMessage(int, int compId, int severity, QString _mutex.lock(); + if (_activeComponent < 0) { + _activeComponent = compId; + } + + if (compId != _activeComponent) { + _multiComp = true; + } + // So first determine the styling based on the severity. QString style; switch (severity) @@ -186,14 +196,22 @@ void UASMessageHandler::handleTextMessage(int, int compId, int severity, QString // Finally preppend the properly-styled text with a timestamp. QString dateString = QDateTime::currentDateTime().toString("hh:mm:ss.zzz"); UASMessage* message = new UASMessage(compId, severity, text); - message->_setFormatedText(QString("

[%2 - COMP:%3]%4 %5

").arg(style).arg(dateString).arg(compId).arg(severityText).arg(text)); - _messages.append(message); - int count = _messages.count(); + QString compString(""); + if (_multiComp) { + compString = QString(" COMP:%1").arg(compId); + } + message->_setFormatedText(QString("[%2%3]%4 %5

").arg(style).arg(dateString).arg(compString).arg(severityText).arg(text)); + if (message->severityIsError()) { _latestError = severityText + " " + text; } + _mutex.unlock(); + emit textMessageReceived(message); + + _messages.append(message); + int count = _messages.count(); emit textMessageCountChanged(count); if (_showErrorsInToolbar && message->severityIsError()) { diff --git a/src/uas/UASMessageHandler.h b/src/uas/UASMessageHandler.h index 4eeb6f36b..3e6a8841b 100644 --- a/src/uas/UASMessageHandler.h +++ b/src/uas/UASMessageHandler.h @@ -158,6 +158,8 @@ private slots: private: UASInterface* _activeUAS; + int _activeComponent; + bool _multiComp; QVector _messages; QMutex _mutex; int _errorCount; -- 2.22.0