Unverified Commit 34931bf2 authored by Don Gagne's avatar Don Gagne Committed by GitHub

Merge pull request #6513 from DonLakeFlyer/TransectAltModeFixes

Transect alt mode fixes
parents d79eb1aa f1579b91
......@@ -159,7 +159,7 @@ bool SurveyComplexItem::_loadV4(const QJsonObject& complexObject, int sequenceNu
{ ComplexMissionItem::jsonComplexItemTypeKey, QJsonValue::String, true },
{ _jsonEntryPointKey, QJsonValue::Double, true },
{ _jsonGridAngleKey, QJsonValue::Double, true },
{ _jsonFlyAlternateTransectsKey, QJsonValue::Double, false },
{ _jsonFlyAlternateTransectsKey, QJsonValue::Bool, false },
};
if (!JsonHelper::validateKeys(complexObject, keyInfoList, errorString)) {
return false;
......
......@@ -712,8 +712,8 @@ bool TransectStyleComplexItem::exitCoordinateHasRelativeAltitude(void) const
void TransectStyleComplexItem::_followTerrainChanged(bool followTerrain)
{
_cameraCalc.setDistanceToSurfaceRelative(!followTerrain);
if (followTerrain) {
_cameraCalc.setDistanceToSurfaceRelative(false);
_refly90DegreesFact.setRawValue(false);
_hoverAndCaptureFact.setRawValue(false);
}
......
......@@ -167,6 +167,30 @@ void TransectStyleComplexItemTest::_adjustSurveAreaPolygon(void)
_transectStyleItem->surveyAreaPolygon()->adjustVertex(0, vertex);
}
void TransectStyleComplexItemTest::_testAltMode(void)
{
// Default should be relative
QVERIFY(_transectStyleItem->cameraCalc()->distanceToSurfaceRelative());
// Manual camera allows non-relative altitudes, validate that changing back to known
// camera switches back to relative
_transectStyleItem->cameraCalc()->cameraName()->setRawValue(_transectStyleItem->cameraCalc()->manualCameraName());
_transectStyleItem->cameraCalc()->setDistanceToSurfaceRelative(false);
_transectStyleItem->cameraCalc()->cameraName()->setRawValue(_transectStyleItem->cameraCalc()->customCameraName());
QVERIFY(_transectStyleItem->cameraCalc()->distanceToSurfaceRelative());
// When you turn off terrain following mode make sure that the altitude mode changed back to relative altitudes
_transectStyleItem->cameraCalc()->setDistanceToSurfaceRelative(false);
_transectStyleItem->setFollowTerrain(true);
QVERIFY(!_transectStyleItem->cameraCalc()->distanceToSurfaceRelative());
QVERIFY(_transectStyleItem->followTerrain());
_transectStyleItem->setFollowTerrain(false);
QVERIFY(_transectStyleItem->cameraCalc()->distanceToSurfaceRelative());
QVERIFY(!_transectStyleItem->followTerrain());
}
TransectStyleItem::TransectStyleItem(Vehicle* vehicle, QObject* parent)
: TransectStyleComplexItem (vehicle, false /* flyView */, QStringLiteral("UnitTestTransect"), parent)
, rebuildTransectsCalled (false)
......
......@@ -32,6 +32,7 @@ private slots:
void _testDirty (void);
void _testRebuildTransects (void);
void _testDistanceSignalling (void);
void _testAltMode (void);
private:
void _setSurveyAreaPolygon (void);
......
......@@ -110,6 +110,7 @@ Rectangle {
text: qsTr("Relative altitude")
checked: missionItem.cameraCalc.distanceToSurfaceRelative
enabled: missionItem.cameraCalc.isManualCamera && !missionItem.followTerrain
visible: QGroundControl.corePlugin.options.showMissionAbsoluteAltitude || (!missionItem.cameraCalc.distanceToSurfaceRelative && !missionItem.followTerrain)
Layout.columnSpan: 2
onClicked: missionItem.cameraCalc.distanceToSurfaceRelative = checked
......
......@@ -143,6 +143,7 @@ Rectangle {
text: qsTr("Relative altitude")
checked: missionItem.cameraCalc.distanceToSurfaceRelative
enabled: missionItem.cameraCalc.isManualCamera && !missionItem.followTerrain
visible: QGroundControl.corePlugin.options.showMissionAbsoluteAltitude || (!missionItem.cameraCalc.distanceToSurfaceRelative && !missionItem.followTerrain)
Layout.columnSpan: 2
onClicked: missionItem.cameraCalc.distanceToSurfaceRelative = checked
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment