Browse Source

Remove duplicates from missing parameter reporting

QGC4.4
Don Gagne 6 years ago
parent
commit
b0712e914b
  1. 14
      src/QGCApplication.cc
  2. 2
      src/QGCApplication.h

14
src/QGCApplication.cc

@ -687,7 +687,11 @@ bool QGCApplication::_checkTelemetrySavePath(bool useMessageBox)
void QGCApplication::reportMissingParameter(int componentId, const QString& name) void QGCApplication::reportMissingParameter(int componentId, const QString& name)
{ {
_missingParams += QString("%1:%2").arg(componentId).arg(name); QPair<int, QString> missingParam(componentId, name);
if (!_missingParams.contains(missingParam)) {
_missingParams.append(missingParam);
}
_missingParamsDelayedDisplayTimer.start(); _missingParamsDelayedDisplayTimer.start();
} }
@ -696,12 +700,14 @@ void QGCApplication::_missingParamsDisplay(void)
{ {
if (_missingParams.count()) { if (_missingParams.count()) {
QString params; QString params;
foreach (const QString &name, _missingParams) { for (QPair<int, QString>& missingParam: _missingParams) {
QString param = QStringLiteral("%1:%2").arg(missingParam.first).arg(missingParam.second);
if (params.isEmpty()) { if (params.isEmpty()) {
params += name; params += param;
} else { } else {
params += QString(", %1").arg(name); params += QStringLiteral(", %1").arg(param);
} }
} }
_missingParams.clear(); _missingParams.clear();

2
src/QGCApplication.h

@ -177,7 +177,7 @@ private:
bool _runningUnitTests; ///< true: running unit tests, false: normal app 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 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 QTimer _missingParamsDelayedDisplayTimer; ///< Timer use to delay missing fact display
QStringList _missingParams; ///< List of missing facts to be displayed QList<QPair<int,QString>> _missingParams; ///< List of missing parameter component id:name
QQmlApplicationEngine* _qmlAppEngine = nullptr; QQmlApplicationEngine* _qmlAppEngine = nullptr;
bool _logOutput = false; ///< true: Log Qt debug output to file bool _logOutput = false; ///< true: Log Qt debug output to file

Loading…
Cancel
Save