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