diff --git a/src/uas/UASMessageHandler.cc b/src/uas/UASMessageHandler.cc index ab24db5613bc882e72ab525db2253a7129942f4c..11dc9122d1ad8a7e943648cf59ad29cf24bb483e 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 4eeb6f36b12c3544d2c535ff9e90bf35bf4e56fc..3e6a8841b117c11143cb0873941e13493a1f0de4 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;