From 741ec708bc57d29471e8539c1ad9716794ff0a4a Mon Sep 17 00:00:00 2001 From: Valentin Platzgummer Date: Wed, 9 Dec 2020 16:40:27 +0100 Subject: [PATCH] editing loading of MeasurementComplexItem --- .../MeasurementComplexItem.cc | 60 +++++++++++-------- .../geometry/MeasurementArea.cc | 14 ++--- .../geometry/MeasurementArea.h | 3 - .../geometry/SafeArea.cc | 5 +- 4 files changed, 42 insertions(+), 40 deletions(-) diff --git a/src/MeasurementComplexItem/MeasurementComplexItem.cc b/src/MeasurementComplexItem/MeasurementComplexItem.cc index d02f79273..2a00c4206 100644 --- a/src/MeasurementComplexItem/MeasurementComplexItem.cc +++ b/src/MeasurementComplexItem/MeasurementComplexItem.cc @@ -143,35 +143,47 @@ bool MeasurementComplexItem::load(const QJsonObject &complexObject, return false; } - QList keyInfoList = { - {VisualMissionItem::jsonTypeKey, QJsonValue::String, true}, - {ComplexMissionItem::jsonComplexItemTypeKey, QJsonValue::String, true}, - {variantName, QJsonValue::Double, false}, - {altitudeName, QJsonValue::Double, true}, - }; - - if (!JsonHelper::validateKeys(complexObject, keyInfoList, errorString)) { - return false; - } + { + QList keyInfoList = { + {VisualMissionItem::jsonTypeKey, QJsonValue::String, true}, + {ComplexMissionItem::jsonComplexItemTypeKey, QJsonValue::String, true}, + }; + + if (!JsonHelper::validateKeys(complexObject, keyInfoList, errorString)) { + return false; + } - QString itemType = complexObject[VisualMissionItem::jsonTypeKey].toString(); - QString complexType = - complexObject[ComplexMissionItem::jsonComplexItemTypeKey].toString(); - if (itemType != VisualMissionItem::jsonTypeComplexItemValue || - complexType != jsonComplexItemTypeValue) { - errorString = tr("%1 does not support loading this complex mission item " - "type: %2:%3") - .arg(qgcApp()->applicationName()) - .arg(itemType) - .arg(complexType); - return false; + QString itemType = complexObject[VisualMissionItem::jsonTypeKey].toString(); + QString complexType = + complexObject[ComplexMissionItem::jsonComplexItemTypeKey].toString(); + if (itemType != VisualMissionItem::jsonTypeComplexItemValue || + complexType != jsonComplexItemTypeValue) { + errorString = tr("%1 does not support loading this complex mission item " + "type: %2:%3") + .arg(qgcApp()->applicationName()) + .arg(itemType) + .arg(complexType); + return false; + } } setSequenceNumber(sequenceNumber); - static_assert(false, "continue here"); - _variant.setRawValue(complexObject[variantName].toInt()); - _altitude.setRawValue(complexObject[altitudeName].toDouble()); + // load variant + if (complexObject.contains(variantName) && + complexObject[variantName].isDouble()) { + _variant.setRawValue(complexObject[variantName].toInt()); + } else { + errorString.append(tr("Not able to load route variant number.")); + } + + // load altitude + if (complexObject.contains(altitudeName) && + complexObject[altitudeName].isDouble()) { + _altitude.setRawValue(complexObject[altitudeName].toDouble()); + } else { + errorString.append(tr("Not able to load altitude.")); + } return true; } diff --git a/src/MeasurementComplexItem/geometry/MeasurementArea.cc b/src/MeasurementComplexItem/geometry/MeasurementArea.cc index 118ad90f0..72b223fdb 100644 --- a/src/MeasurementComplexItem/geometry/MeasurementArea.cc +++ b/src/MeasurementComplexItem/geometry/MeasurementArea.cc @@ -64,10 +64,10 @@ size_t TileData::size() const { } const char *MeasurementArea::settingsGroup = "MeasurementArea"; -const char *MeasurementArea::tileHeightKey = "TileHeight"; -const char *MeasurementArea::tileWidthName = "TileWidth"; -const char *MeasurementArea::minTileAreaKey = "MinTileAreaPercent"; -const char *MeasurementArea::showTilesKey = "ShowTiles"; +const char *tileHeightKey = "TileHeight"; +const char *tileWidthName = "TileWidth"; +const char *minTileAreaKey = "MinTileAreaPercent"; +const char *showTilesKey = "ShowTiles"; const char *MeasurementArea::name = "Measurement Area"; MeasurementArea::MeasurementArea(QObject *parent) @@ -186,12 +186,6 @@ int MeasurementArea::maxTiles() const { return SNAKE_MAX_TILES; } bool MeasurementArea::ready() const { return this->_state == STATE::IDLE; } -const char *MeasurementArea::getTileWidthName() { return tileWidthName; } - -void MeasurementArea::setTileWidthName(const char *value) { - tileWidthName = value; -} - bool MeasurementArea::saveToJson(QJsonObject &json) { if (ready()) { if (this->GeoArea::saveToJson(json)) { diff --git a/src/MeasurementComplexItem/geometry/MeasurementArea.h b/src/MeasurementComplexItem/geometry/MeasurementArea.h index 1095ee1c2..45408d68a 100644 --- a/src/MeasurementComplexItem/geometry/MeasurementArea.h +++ b/src/MeasurementComplexItem/geometry/MeasurementArea.h @@ -70,9 +70,6 @@ public: static const char *settingsGroup; static const char *name; - static const char *getTileWidthName(); - static void setTileWidthName(const char *value); - signals: void tilesChanged(); void maxTilesChanged(); diff --git a/src/MeasurementComplexItem/geometry/SafeArea.cc b/src/MeasurementComplexItem/geometry/SafeArea.cc index 3b4736cfe..4bb71f5e5 100644 --- a/src/MeasurementComplexItem/geometry/SafeArea.cc +++ b/src/MeasurementComplexItem/geometry/SafeArea.cc @@ -9,7 +9,7 @@ QGC_LOGGING_CATEGORY(SafeAreaLog, "SafeAreaLog") const char *SafeArea::name = "Safe Area"; -const char *SafeArea::depotKey = "Depot Point"; +const char *depotKey = "Depot Point"; SafeArea::SafeArea(QObject *parent) : GeoArea(parent) { init(); } @@ -107,8 +107,7 @@ bool SafeArea::loadFromJson(const QJsonObject &json, QString &errorString) { QList versionKeyInfoList = { {depotKey, QJsonValue::Array, true}, }; - if (!JsonHelper::validateKeys(complexObject, versionKeyInfoList, - errorString)) { + if (!JsonHelper::validateKeys(json, versionKeyInfoList, errorString)) { returnValue = false; } else { const auto &jsonDepot = json[depotKey]; -- 2.22.0