From b0712e914b0fd6068cde45c868e5bf917b91970f Mon Sep 17 00:00:00 2001 From: Don Gagne Date: Thu, 3 Oct 2019 09:57:46 -0700 Subject: [PATCH] Remove duplicates from missing parameter reporting --- src/QGCApplication.cc | 14 ++++++++++---- src/QGCApplication.h | 8 ++++---- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/src/QGCApplication.cc b/src/QGCApplication.cc index d17b97b..a883408 100644 --- a/src/QGCApplication.cc +++ b/src/QGCApplication.cc @@ -687,7 +687,11 @@ bool QGCApplication::_checkTelemetrySavePath(bool useMessageBox) void QGCApplication::reportMissingParameter(int componentId, const QString& name) { - _missingParams += QString("%1:%2").arg(componentId).arg(name); + QPair missingParam(componentId, name); + + if (!_missingParams.contains(missingParam)) { + _missingParams.append(missingParam); + } _missingParamsDelayedDisplayTimer.start(); } @@ -696,12 +700,14 @@ void QGCApplication::_missingParamsDisplay(void) { if (_missingParams.count()) { QString params; - foreach (const QString &name, _missingParams) { + for (QPair& missingParam: _missingParams) { + QString param = QStringLiteral("%1:%2").arg(missingParam.first).arg(missingParam.second); if (params.isEmpty()) { - params += name; + params += param; } else { - params += QString(", %1").arg(name); + params += QStringLiteral(", %1").arg(param); } + } _missingParams.clear(); diff --git a/src/QGCApplication.h b/src/QGCApplication.h index 0e631dc..c47b477 100644 --- a/src/QGCApplication.h +++ b/src/QGCApplication.h @@ -174,10 +174,10 @@ private: void _exitWithError (QString errorMessage); - bool _runningUnitTests; ///< true: running unit tests, false: normal app - static const int _missingParamsDelayedDisplayTimerTimeout = 1000; ///< Timeout to wait for next missing fact to come in before display - QTimer _missingParamsDelayedDisplayTimer; ///< Timer use to delay missing fact display - QStringList _missingParams; ///< List of missing facts to be displayed + bool _runningUnitTests; ///< true: running unit tests, false: normal app + static const int _missingParamsDelayedDisplayTimerTimeout = 1000; ///< Timeout to wait for next missing fact to come in before display + QTimer _missingParamsDelayedDisplayTimer; ///< Timer use to delay missing fact display + QList> _missingParams; ///< List of missing parameter component id:name QQmlApplicationEngine* _qmlAppEngine = nullptr; bool _logOutput = false; ///< true: Log Qt debug output to file