diff --git a/src/MissionManager/CameraSection.cc b/src/MissionManager/CameraSection.cc index e605a7b215f0e29286aa7574ef54d22a4fa1d249..55c6bc05d7eb94f2d57b34bc45fffcb0c28127b6 100644 --- a/src/MissionManager/CameraSection.cc +++ b/src/MissionManager/CameraSection.cc @@ -67,8 +67,6 @@ CameraSection::CameraSection(Vehicle* vehicle, QObject* parent) connect(this, &CameraSection::specifyGimbalChanged, this, &CameraSection::_setDirty); connect(this, &CameraSection::specifyCameraModeChanged, this, &CameraSection::_setDirty); - connect(this, &CameraSection::specifyGimbalChanged, this, &CameraSection::_updateSpecifiedGimbalYaw); - connect(this, &CameraSection::specifyGimbalChanged, this, &CameraSection::_updateSpecifiedGimbalPitch); connect(&_gimbalYawFact, &Fact::valueChanged, this, &CameraSection::_updateSpecifiedGimbalYaw); connect(&_gimbalPitchFact, &Fact::valueChanged, this, &CameraSection::_updateSpecifiedGimbalPitch); } @@ -78,6 +76,8 @@ void CameraSection::setSpecifyGimbal(bool specifyGimbal) if (specifyGimbal != _specifyGimbal) { _specifyGimbal = specifyGimbal; emit specifyGimbalChanged(specifyGimbal); + emit specifiedGimbalYawChanged(specifiedGimbalYaw()); + emit specifiedGimbalPitchChanged(specifiedGimbalPitch()); } } diff --git a/src/MissionManager/MissionController.cc b/src/MissionManager/MissionController.cc index 9505a1bd9bf46398b36336b443d2d0cddf1a623d..0b5bce222d72f16d2159f113e67f19af0ad72f91 100644 --- a/src/MissionManager/MissionController.cc +++ b/src/MissionManager/MissionController.cc @@ -1419,7 +1419,21 @@ void MissionController::_recalcMissionFlightStatus() _missionFlightStatus.vehicleSpeed = newSpeed; } - // Look for gimbal change + // ROI commands cancel out previous gimbal yaw/pitch + if (simpleItem) { + switch (simpleItem->command()) { + case MAV_CMD_NAV_ROI: + case MAV_CMD_DO_SET_ROI_LOCATION: + case MAV_CMD_DO_SET_ROI_WPNEXT_OFFSET: + _missionFlightStatus.gimbalYaw = std::numeric_limits::quiet_NaN(); + _missionFlightStatus.gimbalPitch = std::numeric_limits::quiet_NaN(); + break; + default: + break; + } + } + + // Look for specific gimbal changes double gimbalYaw = item->specifiedGimbalYaw(); if (!qIsNaN(gimbalYaw)) { _missionFlightStatus.gimbalYaw = gimbalYaw; diff --git a/src/MissionManager/MissionItemTest.cc b/src/MissionManager/MissionItemTest.cc index e211f328ef3b9932c21e69ecdabaca619ae70c0f..2926e2036889a9b20284c1a6e2a4926b1adea57e 100644 --- a/src/MissionManager/MissionItemTest.cc +++ b/src/MissionManager/MissionItemTest.cc @@ -39,12 +39,11 @@ void MissionItemTest::init(void) MAV_TYPE_QUADROTOR, qgcApp()->toolbox()->firmwarePluginManager(), this); - } void MissionItemTest::cleanup(void) { - delete _offlineVehicle; + _offlineVehicle->deleteLater(); UnitTest::cleanup(); } diff --git a/src/MissionManager/VisualMissionItemTest.cc b/src/MissionManager/VisualMissionItemTest.cc index beb9cae0dea74d43e596b27bf14dd9b868df4a76..b3992a76ce16dcb84b280d553ba5003f9999a0f9 100644 --- a/src/MissionManager/VisualMissionItemTest.cc +++ b/src/MissionManager/VisualMissionItemTest.cc @@ -54,7 +54,7 @@ void VisualMissionItemTest::init(void) void VisualMissionItemTest::cleanup(void) { - delete _offlineVehicle; + _offlineVehicle->deleteLater(); UnitTest::cleanup(); }