From a2a82f30e76b4ccad786617a8d232b1d95818ccf Mon Sep 17 00:00:00 2001 From: Gus Grubba Date: Thu, 8 Nov 2018 16:06:47 -0500 Subject: [PATCH] Bump survey complex item version to 5 --- src/MissionManager/SurveyComplexItem.cc | 22 +++++++++++++++------- src/MissionManager/SurveyComplexItem.h | 2 +- 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/src/MissionManager/SurveyComplexItem.cc b/src/MissionManager/SurveyComplexItem.cc index 07bc974aa..c38f08690 100644 --- a/src/MissionManager/SurveyComplexItem.cc +++ b/src/MissionManager/SurveyComplexItem.cc @@ -110,7 +110,7 @@ void SurveyComplexItem::save(QJsonArray& planItems) _save(saveObject); - saveObject[JsonHelper::jsonVersionKey] = 4; + saveObject[JsonHelper::jsonVersionKey] = 5; saveObject[VisualMissionItem::jsonTypeKey] = VisualMissionItem::jsonTypeComplexItemValue; saveObject[ComplexMissionItem::jsonComplexItemTypeKey] = jsonComplexItemTypeValue; saveObject[_jsonGridAngleKey] = _gridAngleFact.rawValue().toDouble(); @@ -135,13 +135,13 @@ bool SurveyComplexItem::load(const QJsonObject& complexObject, int sequenceNumbe } int version = complexObject[JsonHelper::jsonVersionKey].toInt(); - if (version < 2 || version > 4) { + if (version < 2 || version > 5) { errorString = tr("Survey items do not support version %1").arg(version); return false; } - if (version == 4) { - if (!_loadV4(complexObject, sequenceNumber, errorString)) { + if (version == 4 || version == 5) { + if (!_loadV4V5(complexObject, sequenceNumber, errorString, version)) { return false; } } else { @@ -164,7 +164,7 @@ bool SurveyComplexItem::load(const QJsonObject& complexObject, int sequenceNumbe return true; } -bool SurveyComplexItem::_loadV4(const QJsonObject& complexObject, int sequenceNumber, QString& errorString) +bool SurveyComplexItem::_loadV4V5(const QJsonObject& complexObject, int sequenceNumber, QString& errorString, int version) { QList keyInfoList = { { VisualMissionItem::jsonTypeKey, QJsonValue::String, true }, @@ -172,8 +172,13 @@ bool SurveyComplexItem::_loadV4(const QJsonObject& complexObject, int sequenceNu { _jsonEntryPointKey, QJsonValue::Double, true }, { _jsonGridAngleKey, QJsonValue::Double, true }, { _jsonFlyAlternateTransectsKey, QJsonValue::Bool, false }, - { _jsonSplitConcavePolygonsKey, QJsonValue::Bool, false }, }; + + if(version == 5) { + JsonHelper::KeyValidateInfo jSplitPolygon = { _jsonSplitConcavePolygonsKey, QJsonValue::Bool, true }; + keyInfoList.append(jSplitPolygon); + } + if (!JsonHelper::validateKeys(complexObject, keyInfoList, errorString)) { return false; } @@ -201,7 +206,10 @@ bool SurveyComplexItem::_loadV4(const QJsonObject& complexObject, int sequenceNu _gridAngleFact.setRawValue (complexObject[_jsonGridAngleKey].toDouble()); _flyAlternateTransectsFact.setRawValue (complexObject[_jsonFlyAlternateTransectsKey].toBool(false)); - _splitConcavePolygonsFact.setRawValue (complexObject[_jsonSplitConcavePolygonsKey].toBool(true)); + + if(version == 5) { + _splitConcavePolygonsFact.setRawValue (complexObject[_jsonSplitConcavePolygonsKey].toBool(true)); + } _entryPoint = complexObject[_jsonEntryPointKey].toInt(); diff --git a/src/MissionManager/SurveyComplexItem.h b/src/MissionManager/SurveyComplexItem.h index 4df07a503..6cdd2cce2 100644 --- a/src/MissionManager/SurveyComplexItem.h +++ b/src/MissionManager/SurveyComplexItem.h @@ -112,7 +112,7 @@ private: double _turnaroundDistance(void) const; bool _hoverAndCaptureEnabled(void) const; bool _loadV3(const QJsonObject& complexObject, int sequenceNumber, QString& errorString); - bool _loadV4(const QJsonObject& complexObject, int sequenceNumber, QString& errorString); + bool _loadV4V5(const QJsonObject& complexObject, int sequenceNumber, QString& errorString, int version); void _rebuildTransectsPhase1Worker(bool refly); void _rebuildTransectsPhase1WorkerSinglePolygon(bool refly); void _rebuildTransectsPhase1WorkerSplitPolygons(bool refly); -- 2.22.0