Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs/en/qgc-user-guide/plan_view/plan_view.md
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,7 @@ The Plan Info section contains general plan-level settings:

The Defaults section sets plan-wide values that apply to new mission items:

- **Altitude Mode** — Select the altitude reference frame for waypoints.
- **Altitude Frame** — Select the altitude reference frame for waypoints.
- **Waypoints Altitude** — The default altitude for the first mission item added (subsequent items take their initial altitude from the previous item). Changing this value when items already exist will prompt to update all items to the new altitude.
- **Flight Speed** — Set a flight speed that differs from the default mission speed.
- **Vehicle Speeds** — Cruise speed (fixed-wing) and/or hover speed (multi-rotor/VTOL), used for estimating mission time.
Expand Down
12 changes: 6 additions & 6 deletions src/FactSystem/FactControls/AltitudeFactTextField.qml
Original file line number Diff line number Diff line change
Expand Up @@ -7,17 +7,17 @@ import QGroundControl.Controls

FactTextField {
unitsLabel: fact ? fact.units : ""
extraUnitsLabel: fact ? _altitudeModeExtraUnits : ""
extraUnitsLabel: fact ? qsTr("%1").arg(_altitudeFrameExtraUnits) : ""
showUnits: true
showHelp: true

property int altitudeMode: QGroundControl.AltitudeModeNone
property int altitudeFrame: QGroundControl.AltitudeFrameNone

property string _altitudeModeExtraUnits
property string _altitudeFrameExtraUnits

onAltitudeModeChanged: updateAltitudeModeExtraUnits()
onAltitudeFrameChanged: updateAltitudeFrameExtraUnits()

function updateAltitudeModeExtraUnits() {
_altitudeModeExtraUnits = QGroundControl.altitudeModeExtraUnits(altitudeMode);
function updateAltitudeFrameExtraUnits() {
_altitudeFrameExtraUnits = QGroundControl.altitudeFrameExtraUnits(altitudeFrame);
}
}
2 changes: 1 addition & 1 deletion src/FlightMap/Widgets/CenterMapDropButton.qml
Original file line number Diff line number Diff line change
Expand Up @@ -175,7 +175,7 @@ DropButton {
}

QGCButton {
text: qsTr("Launch")
text: qsTr("Home")
Layout.fillWidth: true
enabled: !followVehicleCheckBox.checked

Expand Down
2 changes: 1 addition & 1 deletion src/FlightMap/Widgets/CenterMapDropPanel.qml
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ ColumnLayout {
}

QGCButton {
text: qsTr("Launch")
text: qsTr("Home")
Layout.fillWidth: true

onClicked: {
Expand Down
20 changes: 10 additions & 10 deletions src/MissionManager/CameraCalc.cc
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

CameraCalc::CameraCalc(PlanMasterController* masterController, const QString& settingsGroup, QObject* parent)
: CameraSpec (settingsGroup, parent)
, _distanceMode (masterController->missionController()->globalAltitudeModeDefault())
, _distanceMode (masterController->missionController()->globalAltitudeFrameDefault())
, _knownCameraList (masterController->controllerVehicle()->staticCameraList())
, _metaDataMap (FactMetaData::createMapFromJsonFile(QStringLiteral(":/json/CameraCalc.FactMetaData.json"), this))
, _cameraNameFact (settingsGroup, _metaDataMap[cameraNameName])
Expand Down Expand Up @@ -110,9 +110,9 @@ void CameraCalc::_cameraNameChanged(void)
}

_recalcTriggerDistance();
if (!isManualCamera() && distanceMode() == QGroundControlQmlGlobal::AltitudeModeAbsolute) {
if (!isManualCamera() && distanceMode() == QGroundControlQmlGlobal::AltitudeFrameAbsolute) {
// Manual grids support absolute alts whereas nothing else does. Make sure we are not left in absolute
setDistanceMode(QGroundControlQmlGlobal::AltitudeModeRelative);
setDistanceMode(QGroundControlQmlGlobal::AltitudeFrameRelative);
}
}

Expand Down Expand Up @@ -203,11 +203,11 @@ bool CameraCalc::load(const QJsonObject& originalJson, bool deprecatedFollowTerr
if (version == 1) {
// Version 1->2 differences:
// - _jsonDistanceToSurfaceRelativeKeyDeprecated changed to distanceMode
// - deprecatedFollowTerrain value was loaded from upper level callers and represents AltitudeModeCalcAboveTerrain. AtitudeModeTerrainFrame was not supported yet.
// - deprecatedFollowTerrain value was loaded from upper level callers and represents AltitudeFrameCalcAboveTerrain. AltitudeFrameTerrain was not supported yet.
if (deprecatedFollowTerrain) {
json[distanceModeName] = QGroundControlQmlGlobal::AltitudeModeCalcAboveTerrain;
json[distanceModeName] = QGroundControlQmlGlobal::AltitudeFrameCalcAboveTerrain;
} else {
json[distanceModeName] = json[_jsonDistanceToSurfaceRelativeKeyDeprecated].toBool() ? QGroundControlQmlGlobal::AltitudeModeRelative : QGroundControlQmlGlobal::AltitudeModeAbsolute;
json[distanceModeName] = json[_jsonDistanceToSurfaceRelativeKeyDeprecated].toBool() ? QGroundControlQmlGlobal::AltitudeFrameRelative : QGroundControlQmlGlobal::AltitudeFrameAbsolute;
}
json.remove(_jsonDistanceToSurfaceRelativeKeyDeprecated);
version = 2;
Expand Down Expand Up @@ -235,7 +235,7 @@ bool CameraCalc::load(const QJsonObject& originalJson, bool deprecatedFollowTerr
QString canonicalCameraName = _validCanonicalCameraName(json[cameraNameName].toString());
_cameraNameFact.setRawValue(canonicalCameraName);

setDistanceMode(static_cast<QGroundControlQmlGlobal::AltMode>(json[distanceModeName].toInt()));
setDistanceMode(static_cast<QGroundControlQmlGlobal::AltitudeFrame>(json[distanceModeName].toInt()));

_adjustedFootprintSideFact.setRawValue (json[adjustedFootprintSideName].toDouble());
_adjustedFootprintFrontalFact.setRawValue (json[adjustedFootprintFrontalName].toDouble());
Expand Down Expand Up @@ -293,10 +293,10 @@ QString CameraCalc::xlatManualCameraName(void)
return tr("Manual (no camera specs)");
}

void CameraCalc::setDistanceMode(QGroundControlQmlGlobal::AltMode altMode)
void CameraCalc::setDistanceMode(QGroundControlQmlGlobal::AltitudeFrame altFrame)
{
if (altMode != _distanceMode) {
_distanceMode = altMode;
if (altFrame != _distanceMode) {
_distanceMode = altFrame;
emit distanceModeChanged(_distanceMode);
}
}
Expand Down
10 changes: 5 additions & 5 deletions src/MissionManager/CameraCalc.h
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ class CameraCalc : public CameraSpec
// grid altitude mode - distanceMode
// trigger distance - adjustedFootprintFrontal
// transect spacing - adjustedFootprintSide
Q_PROPERTY(QGroundControlQmlGlobal::AltMode distanceMode READ distanceMode WRITE setDistanceMode NOTIFY distanceModeChanged)
Q_PROPERTY(QGroundControlQmlGlobal::AltitudeFrame distanceMode READ distanceMode WRITE setDistanceMode NOTIFY distanceModeChanged)

// The following values are calculated from the camera properties
Q_PROPERTY(double imageFootprintSide READ imageFootprintSide NOTIFY imageFootprintSideChanged) ///< Size of image size side in meters
Expand Down Expand Up @@ -69,9 +69,9 @@ class CameraCalc : public CameraSpec
bool isCustomCamera (void) const { return _cameraNameFact.rawValue().toString() == canonicalCustomCameraName(); }
double imageFootprintSide (void) const { return _imageFootprintSide; }
double imageFootprintFrontal (void) const { return _imageFootprintFrontal; }
QGroundControlQmlGlobal::AltMode distanceMode(void) const { return _distanceMode; }
QGroundControlQmlGlobal::AltitudeFrame distanceMode(void) const { return _distanceMode; }

void setDistanceMode (QGroundControlQmlGlobal::AltMode altMode);
void setDistanceMode (QGroundControlQmlGlobal::AltitudeFrame altFrame);
void setCameraBrand (const QString& cameraBrand);
void setCameraModel (const QString& cameraModel);

Expand All @@ -93,7 +93,7 @@ class CameraCalc : public CameraSpec
signals:
void imageFootprintSideChanged (double imageFootprintSide);
void imageFootprintFrontalChanged (double imageFootprintFrontal);
void distanceModeChanged (int altMode);
void distanceModeChanged (int altFrame);
void isManualCameraChanged (void);
void isCustomCameraChanged (void);
void cameraBrandChanged (void);
Expand All @@ -116,7 +116,7 @@ private slots:
QString _cameraModel;
QStringList _cameraBrandList;
QStringList _cameraModelList;
QGroundControlQmlGlobal::AltMode _distanceMode = QGroundControlQmlGlobal::AltitudeModeRelative;
QGroundControlQmlGlobal::AltitudeFrame _distanceMode = QGroundControlQmlGlobal::AltitudeFrameRelative;
double _imageFootprintSide = 0;
double _imageFootprintFrontal = 0;
QVariantList _knownCameraList;
Expand Down
68 changes: 34 additions & 34 deletions src/MissionManager/MissionController.cc
Original file line number Diff line number Diff line change
Expand Up @@ -194,8 +194,8 @@ void MissionController::_newMissionItemsAvailableFromVehicle(bool removeAllReque
_visualItems = newControllerMissionItems;
_settingsItem = settingsItem;

// We set Altitude mode to mixed, otherwise if we need a non relative altitude frame we won't be able to change it
setGlobalAltitudeMode(weHaveItemsFromVehicle ? QGroundControlQmlGlobal::AltitudeModeMixed : QGroundControlQmlGlobal::AltitudeModeRelative);
// We set Altitude frame to mixed, otherwise if we need a non relative altitude frame we won't be able to change it
setGlobalAltitudeFrame(weHaveItemsFromVehicle ? QGroundControlQmlGlobal::AltitudeFrameMixed : QGroundControlQmlGlobal::AltitudeFrameRelative);

MissionController::_scanForAdditionalSettings(_visualItems, _masterController);

Expand Down Expand Up @@ -315,13 +315,13 @@ VisualMissionItem* MissionController::_insertSimpleMissionItemWorker(QGeoCoordin
if (newItem->specifiesAltitude()) {
if (!MissionCommandTree::instance()->isLandCommand(command)) {
double prevAltitude;
QGroundControlQmlGlobal::AltMode prevAltMode;
QGroundControlQmlGlobal::AltitudeFrame prevAltFrame;

if (_findPreviousAltitude(visualItemIndex, &prevAltitude, &prevAltMode)) {
if (_findPreviousAltitude(visualItemIndex, &prevAltitude, &prevAltFrame)) {
newItem->altitude()->setRawValue(prevAltitude);
if (globalAltitudeMode() == QGroundControlQmlGlobal::AltitudeModeMixed) {
// We are in mixed altitude modes, so copy from previous. Otherwise alt mode will be set from global setting.
newItem->setAltitudeMode(static_cast<QGroundControlQmlGlobal::AltMode>(prevAltMode));
if (globalAltitudeFrame() == QGroundControlQmlGlobal::AltitudeFrameMixed) {
// We are in mixed altitude frames, so copy from previous. Otherwise altitude frame will be set from global setting.
newItem->setAltitudeFrame(static_cast<QGroundControlQmlGlobal::AltitudeFrame>(prevAltFrame));
}
}
}
Expand Down Expand Up @@ -359,11 +359,11 @@ VisualMissionItem* MissionController::insertTakeoffItem(QGeoCoordinate /*coordin

if (_takeoffMissionItem->specifiesAltitude()) {
double prevAltitude;
QGroundControlQmlGlobal::AltMode prevAltMode;
QGroundControlQmlGlobal::AltitudeFrame prevAltFrame;

if (_findPreviousAltitude(visualItemIndex, &prevAltitude, &prevAltMode)) {
if (_findPreviousAltitude(visualItemIndex, &prevAltitude, &prevAltFrame)) {
_takeoffMissionItem->altitude()->setRawValue(prevAltitude);
_takeoffMissionItem->setAltitudeMode(static_cast<QGroundControlQmlGlobal::AltMode>(prevAltMode));
_takeoffMissionItem->setAltitudeFrame(static_cast<QGroundControlQmlGlobal::AltitudeFrame>(prevAltFrame));
}
}
if (visualItemIndex == -1) {
Expand Down Expand Up @@ -437,11 +437,11 @@ VisualMissionItem* MissionController::insertComplexMissionItem(QString itemName,
newItem->setCoordinate(mapCenterCoordinate);

double prevAltitude;
QGroundControlQmlGlobal::AltMode prevAltMode;
if (globalAltitudeMode() == QGroundControlQmlGlobal::AltitudeModeMixed) {
// We are in mixed altitude modes, so copy from previous. Otherwise alt mode will be set from global setting in constructor.
if (_findPreviousAltitude(visualItemIndex, &prevAltitude, &prevAltMode)) {
qobject_cast<SurveyComplexItem*>(newItem)->cameraCalc()->setDistanceMode(prevAltMode);
QGroundControlQmlGlobal::AltitudeFrame prevAltFrame;
if (globalAltitudeFrame() == QGroundControlQmlGlobal::AltitudeFrameMixed) {
// We are in mixed altitude frames, so copy from previous. Otherwise alt mode will be set from global setting in constructor.
if (_findPreviousAltitude(visualItemIndex, &prevAltitude, &prevAltFrame)) {
qobject_cast<SurveyComplexItem*>(newItem)->cameraCalc()->setDistanceMode(prevAltFrame);
}
}
} else if (itemName == FixedWingLandingComplexItem::name) {
Expand Down Expand Up @@ -636,7 +636,7 @@ bool MissionController::_loadJsonMissionFileV1(const QJsonObject& json, QmlObjec
return false;
}

setGlobalAltitudeMode(QGroundControlQmlGlobal::AltitudeModeMixed);
setGlobalAltitudeFrame(QGroundControlQmlGlobal::AltitudeFrameMixed);

// Read complex items
QList<SurveyComplexItem*> surveyItems;
Expand Down Expand Up @@ -741,7 +741,7 @@ bool MissionController::_loadJsonMissionFileV2(const QJsonObject& json, QmlObjec
return false;
}

setGlobalAltitudeMode(QGroundControlQmlGlobal::AltitudeModeMixed);
setGlobalAltitudeFrame(QGroundControlQmlGlobal::AltitudeFrameMixed);

qCDebug(MissionControllerLog) << "MissionController::_loadJsonMissionFileV2 itemCount:" << json[_jsonItemsKey].toArray().count();

Expand Down Expand Up @@ -774,7 +774,7 @@ bool MissionController::_loadJsonMissionFileV2(const QJsonObject& json, QmlObjec
appSettings->offlineEditingHoverSpeed()->setRawValue(json[_jsonHoverSpeedKey].toDouble());
}
if (json.contains(_jsonGlobalPlanAltitudeModeKey)) {
setGlobalAltitudeMode(json[_jsonGlobalPlanAltitudeModeKey].toVariant().value<QGroundControlQmlGlobal::AltMode>());
setGlobalAltitudeFrame(json[_jsonGlobalPlanAltitudeModeKey].toVariant().value<QGroundControlQmlGlobal::AltitudeFrame>());
}

QGeoCoordinate homeCoordinate;
Expand Down Expand Up @@ -1041,7 +1041,7 @@ bool MissionController::loadTextFile(QFile& file, QString& errorString)
QByteArray bytes = file.readAll();
QTextStream stream(bytes);

setGlobalAltitudeMode(QGroundControlQmlGlobal::AltitudeModeMixed);
setGlobalAltitudeFrame(QGroundControlQmlGlobal::AltitudeFrameMixed);

QmlObjectListModel* loadedVisualItems = new QmlObjectListModel(this);
if (!_loadTextMissionFile(stream, loadedVisualItems, errorStr)) {
Expand Down Expand Up @@ -1084,7 +1084,7 @@ void MissionController::save(QJsonObject& json)
json[_jsonVehicleTypeKey] = _controllerVehicle->vehicleType();
json[_jsonCruiseSpeedKey] = _controllerVehicle->defaultCruiseSpeed();
json[_jsonHoverSpeedKey] = _controllerVehicle->defaultHoverSpeed();
json[_jsonGlobalPlanAltitudeModeKey] = _globalAltMode;
json[_jsonGlobalPlanAltitudeModeKey] = _globalAltFrame;

// Save the visual items

Expand Down Expand Up @@ -2193,11 +2193,11 @@ void MissionController::_inProgressChanged(bool inProgress)
emit syncInProgressChanged(inProgress);
}

bool MissionController::_findPreviousAltitude(int newIndex, double* prevAltitude, QGroundControlQmlGlobal::AltMode* prevAltitudeMode)
bool MissionController::_findPreviousAltitude(int newIndex, double* prevAltitude, QGroundControlQmlGlobal::AltitudeFrame* prevAltitudeMode)
{
bool found = false;
double foundAltitude = 0;
QGroundControlQmlGlobal::AltMode foundAltMode = QGroundControlQmlGlobal::AltitudeModeNone;
QGroundControlQmlGlobal::AltitudeFrame foundAltFrame = QGroundControlQmlGlobal::AltitudeFrameNone;

if (newIndex > _visualItems->count()) {
return false;
Expand All @@ -2212,7 +2212,7 @@ bool MissionController::_findPreviousAltitude(int newIndex, double* prevAltitude
SimpleMissionItem* simpleItem = qobject_cast<SimpleMissionItem*>(visualItem);
if (simpleItem->specifiesAltitude()) {
foundAltitude = simpleItem->altitude()->rawValue().toDouble();
foundAltMode = simpleItem->altitudeMode();
foundAltFrame = simpleItem->altitudeFrame();
found = true;
break;
}
Expand All @@ -2222,7 +2222,7 @@ bool MissionController::_findPreviousAltitude(int newIndex, double* prevAltitude

if (found) {
*prevAltitude = foundAltitude;
*prevAltitudeMode = foundAltMode;
*prevAltitudeMode = foundAltFrame;
}

return found;
Expand Down Expand Up @@ -2971,24 +2971,24 @@ MissionController::SendToVehiclePreCheckState MissionController::sendToVehiclePr
return SendToVehiclePreCheckStateOk;
}

QGroundControlQmlGlobal::AltMode MissionController::globalAltitudeMode(void)
QGroundControlQmlGlobal::AltitudeFrame MissionController::globalAltitudeFrame(void)
{
return _globalAltMode;
return _globalAltFrame;
}

QGroundControlQmlGlobal::AltMode MissionController::globalAltitudeModeDefault(void)
QGroundControlQmlGlobal::AltitudeFrame MissionController::globalAltitudeFrameDefault(void)
{
if (_globalAltMode == QGroundControlQmlGlobal::AltitudeModeMixed) {
return QGroundControlQmlGlobal::AltitudeModeRelative;
if (_globalAltFrame == QGroundControlQmlGlobal::AltitudeFrameMixed) {
return QGroundControlQmlGlobal::AltitudeFrameRelative;
} else {
return _globalAltMode;
return _globalAltFrame;
}
}

void MissionController::setGlobalAltitudeMode(QGroundControlQmlGlobal::AltMode altMode)
void MissionController::setGlobalAltitudeFrame(QGroundControlQmlGlobal::AltitudeFrame altFrame)
{
if (_globalAltMode != altMode) {
_globalAltMode = altMode;
emit globalAltitudeModeChanged();
if (_globalAltFrame != altFrame) {
_globalAltFrame = altFrame;
emit globalAltitudeFrameChanged();
}
}
Loading
Loading