Commit c0421290 authored by Donald Gagne's avatar Donald Gagne

UI Tweaks to plan view editors

parent 3da11f8b
......@@ -101,6 +101,7 @@
<file alias="QGroundControl/Controls/RallyPointItemEditor.qml">src/MissionEditor/RallyPointItemEditor.qml</file>
<file alias="QGroundControl/Controls/RCChannelMonitor.qml">src/QmlControls/RCChannelMonitor.qml</file>
<file alias="QGroundControl/Controls/RoundButton.qml">src/QmlControls/RoundButton.qml</file>
<file alias="QGroundControl/Controls/SectionHeader.qml">src/MissionEditor/SectionHeader.qml</file>
<file alias="QGroundControl/Controls/SetupPage.qml">src/AutoPilotPlugins/Common/SetupPage.qml</file>
<file alias="QGroundControl/Controls/SignalStrength.qml">src/ui/toolbar/SignalStrength.qml</file>
<file alias="QGroundControl/Controls/SimpleItemMapVisual.qml">src/MissionEditor/SimpleItemMapVisual.qml</file>
......
......@@ -5,7 +5,8 @@ import QGroundControl.FactSystem 1.0
import QGroundControl.Controls 1.0
GridLayout {
property var factList ///< List of Facts to show
property var factList ///< List of Facts to show
property var factLabels ///< Labels for facts, if not set, use Fact.name
rows: factList.length
flow: GridLayout.TopToBottom
......@@ -13,7 +14,7 @@ GridLayout {
Repeater {
model: parent.factList
QGCLabel { text: modelData.name + ":" }
QGCLabel { text: factLabels ? factLabels[index] : modelData.name }
}
Repeater {
......
......@@ -38,7 +38,7 @@
"id": 181,
"comment": "MAV_CMD_DO_SET_RELAY",
"param2": {
"label": "Setting:",
"label": "Setting",
"enumStrings": "On,Off",
"enumValues": "1,0",
"default": 1
......@@ -54,19 +54,19 @@
"comment": "MAV_CMD_DO_MOUNT_CONTROL",
"paramRemove": "7",
"param1": {
"label": "Pitch:",
"label": "Pitch",
"default": 0,
"units": "deg",
"decimalPlaces": 2
},
"param2": {
"label": "Roll:",
"label": "Roll",
"default": 0,
"units": "deg",
"decimalPlaces": 2
},
"param3": {
"label": "Yaw:",
"label": "Yaw",
"default": 0,
"units": "deg",
"decimalPlaces": 2
......@@ -76,7 +76,7 @@
"id": 207,
"comment": "MAV_CMD_DO_FENCE_ENABLE",
"param1": {
"label": "Enable:",
"label": "Enable",
"enumStrings": "Enable,Disable",
"enumValues": "1,0",
"default": 1
......
......@@ -15,6 +15,8 @@ CameraMetaData::CameraMetaData(const QString& name,
double imageWidth,
double imageHeight,
double focalLength,
bool landscape,
bool fixedOrientation,
QObject* parent)
: QObject(parent)
, _name(name)
......@@ -23,6 +25,8 @@ CameraMetaData::CameraMetaData(const QString& name,
, _imageWidth(imageWidth)
, _imageHeight(imageHeight)
, _focalLength(focalLength)
, _landscape(landscape)
, _fixedOrientation(fixedOrientation)
{
}
......@@ -24,14 +24,18 @@ public:
double imageWidth,
double imageHeight,
double focalLength,
bool landscape,
bool fixedOrientation,
QObject* parent = NULL);
Q_PROPERTY(QString name MEMBER _name CONSTANT) ///< Camera name
Q_PROPERTY(double sensorWidth MEMBER _sensorWidth CONSTANT) ///< Sensor size in millimeters
Q_PROPERTY(double sensorHeight MEMBER _sensorHeight CONSTANT) ///< Sensor size in millimeters
Q_PROPERTY(double imageWidth MEMBER _imageWidth CONSTANT) ///< Image size in pixels
Q_PROPERTY(double imageHeight MEMBER _imageHeight CONSTANT) ///< Image size in pixels
Q_PROPERTY(double focalLength MEMBER _focalLength CONSTANT) ///< Focal length in millimeters
Q_PROPERTY(QString name MEMBER _name CONSTANT) ///< Camera name
Q_PROPERTY(double sensorWidth MEMBER _sensorWidth CONSTANT) ///< Sensor size in millimeters
Q_PROPERTY(double sensorHeight MEMBER _sensorHeight CONSTANT) ///< Sensor size in millimeters
Q_PROPERTY(double imageWidth MEMBER _imageWidth CONSTANT) ///< Image size in pixels
Q_PROPERTY(double imageHeight MEMBER _imageHeight CONSTANT) ///< Image size in pixels
Q_PROPERTY(double focalLength MEMBER _focalLength CONSTANT) ///< Focal length in millimeters
Q_PROPERTY(bool landscape MEMBER _landscape CONSTANT) ///< true: camera is in landscape orientation
Q_PROPERTY(bool fixedOrientation MEMBER _fixedOrientation CONSTANT) ///< true: camera is in fixed orientation
private:
QString _name;
......@@ -40,6 +44,8 @@ private:
double _imageWidth;
double _imageHeight;
double _focalLength;
bool _landscape;
bool _fixedOrientation;
};
#endif
......@@ -363,21 +363,25 @@ const QVariantList& FirmwarePlugin::cameraList(const Vehicle* vehicle)
if (_cameraList.size() == 0) {
CameraMetaData* metaData;
metaData = new CameraMetaData(tr("Typhoon H CGO3+"), // Camera name
6.264, // sensorWidth
4.698, // sensorHeight
4000, // imageWidth
3000, // imageHeight
14, // focalLength
this); // parent
metaData = new CameraMetaData(tr("Typhoon H CGO3+"), // Camera name
6.264, // sensorWidth
4.698, // sensorHeight
4000, // imageWidth
3000, // imageHeight
14, // focalLength
true, // landscape orientation
true, // camera orientation is fixed
this); // parent
_cameraList.append(QVariant::fromValue(metaData));
metaData = new CameraMetaData(tr("Sony ILCE-QX1"), //http://www.sony.co.uk/electronics/interchangeable-lens-cameras/ilce-qx1-body-kit/specifications
23.2, //http://www.sony.com/electronics/camera-lenses/sel16f28/specifications
metaData = new CameraMetaData(tr("Sony ILCE-QX1"), //http://www.sony.co.uk/electronics/interchangeable-lens-cameras/ilce-qx1-body-kit/specifications
23.2, //http://www.sony.com/electronics/camera-lenses/sel16f28/specifications
15.4,
5456,
3632,
16,
true,
false,
this);
_cameraList.append(QVariant::fromValue(metaData));
......@@ -387,6 +391,8 @@ const QVariantList& FirmwarePlugin::cameraList(const Vehicle* vehicle)
4000,
3000,
5.2,
true,
false,
this);
_cameraList.append(QVariant::fromValue(metaData));
......@@ -396,6 +402,8 @@ const QVariantList& FirmwarePlugin::cameraList(const Vehicle* vehicle)
4000,
3000,
4.5,
true,
false,
this);
metaData = new CameraMetaData(tr("Canon EOS-M 22mm"),
......@@ -404,6 +412,8 @@ const QVariantList& FirmwarePlugin::cameraList(const Vehicle* vehicle)
5184,
3456,
22,
true,
false,
this);
_cameraList.append(QVariant::fromValue(metaData));
......@@ -413,6 +423,8 @@ const QVariantList& FirmwarePlugin::cameraList(const Vehicle* vehicle)
6000,
4000,
16,
true,
false,
this);
_cameraList.append(QVariant::fromValue(metaData));
}
......
......@@ -9,7 +9,7 @@
"comment": "MAV_CMD_NAV_LAND",
"paramRemove": "1,4",
"param7": {
"label": "Altitude:",
"label": "Altitude",
"units": "m",
"default": 0,
"decimalPlaces": 1
......
......@@ -31,7 +31,7 @@ Rectangle {
//property real availableWidth ///< Width for control
//property var missionItem ///< Mission Item for editor
property real _margin: ScreenTools.defaultFontPixelWidth / 4
property real _margin: ScreenTools.defaultFontPixelWidth / 2
property real _spacer: ScreenTools.defaultFontPixelWidth / 2
Column {
......@@ -51,14 +51,7 @@ Rectangle {
Item { width: 1; height: _margin }
QGCLabel { text: qsTr("Loiter point") }
Rectangle {
anchors.left: parent.left
anchors.right: parent.right
height: 1
color: qgcPal.text
}
SectionHeader { text: qsTr("Loiter point") }
Item { width: 1; height: _spacer }
......@@ -89,14 +82,7 @@ Rectangle {
Item { width: 1; height: ScreenTools.defaultFontPixelHeight / 2 }
QGCLabel { text: qsTr("Landing point") }
Rectangle {
anchors.left: parent.left
anchors.right: parent.right
height: 1
color: qgcPal.text
}
SectionHeader { text: qsTr("Landing point") }
Item { width: 1; height: _spacer }
......
......@@ -29,6 +29,7 @@ Rectangle {
property bool _currentItem: missionItem.isCurrentItem
property color _outerTextColor: _currentItem ? "black" : qgcPal.text
property bool _noMissionItemsAdded: ListView.view.model.count == 1
property real _sectionSpacer: ScreenTools.defaultFontPixelWidth / 2 // spacing between section headings
readonly property real _editFieldWidth: Math.min(width - _margin * 2, ScreenTools.defaultFontPixelWidth * 12)
readonly property real _margin: ScreenTools.defaultFontPixelWidth / 2
......
......@@ -42,8 +42,8 @@ Rectangle {
property real _fieldWidth: ScreenTools.defaultFontPixelWidth * 16
property bool _mobile: ScreenTools.isMobile
readonly property string _firmwareLabel: qsTr("Firmware:")
readonly property string _vehicleLabel: qsTr("Vehicle:")
readonly property string _firmwareLabel: qsTr("Firmware")
readonly property string _vehicleLabel: qsTr("Vehicle")
QGCPalette { id: qgcPal }
......@@ -54,14 +54,7 @@ Rectangle {
anchors.top: parent.top
spacing: _margin
QGCLabel { text: qsTr("Planned Home Position") }
Rectangle {
anchors.left: parent.left
anchors.right: parent.right
height: 1
color: qgcPal.text
}
SectionHeader { text: qsTr("Planned Home Position") }
Repeater {
model: missionItem.textFieldFacts
......@@ -100,16 +93,14 @@ Rectangle {
anchors.horizontalCenter: parent.horizontalCenter
}
QGCLabel {
text: qsTr("Vehicle Info")
visible: _multipleFirmware
Item {
height: _sectionSpacer
width: 1
visible: !ScreenTools.isTinyScreen
}
Rectangle {
anchors.left: parent.left
anchors.right: parent.right
height: 1
color: qgcPal.text
SectionHeader {
text: qsTr("Vehicle Info")
visible: _multipleFirmware
}
......@@ -147,7 +138,7 @@ Rectangle {
}
QGCLabel {
text: qsTr("Cruise speed:")
text: qsTr("Cruise speed")
visible: _showCruiseSpeed
Layout.fillWidth: true
}
......@@ -158,7 +149,7 @@ Rectangle {
}
QGCLabel {
text: qsTr("Hover speed:")
text: qsTr("Hover speed")
visible: _showHoverSpeed
Layout.fillWidth: true
}
......@@ -174,7 +165,7 @@ Rectangle {
anchors.right: parent.right
spacing: _margin
visible: !_multipleFirmware
QGCLabel { text: qsTr("Hover speed:"); Layout.fillWidth: true }
QGCLabel { text: qsTr("Hover speed"); Layout.fillWidth: true }
FactTextField {
Layout.preferredWidth: _fieldWidth
fact: QGroundControl.settingsManager.appSettings.offlineEditingHoverSpeed
......
import QtQuick 2.3
import QtQuick.Controls 1.2
import QtQuick.Layouts 1.2
import QGroundControl.ScreenTools 1.0
import QGroundControl.Palette 1.0
Column {
anchors.left: parent.left
anchors.right: parent.right
property alias text: label.text
QGCPalette { id: qgcPal; colorGroupEnabled: true }
QGCLabel { id: label }
Rectangle {
anchors.left: parent.left
anchors.right: parent.right
height: 1
color: qgcPal.text
}
}
......@@ -23,7 +23,7 @@ Rectangle {
//property real availableWidth ///< Width for control
//property var missionItem ///< Mission Item for editor
property real _margin: ScreenTools.defaultFontPixelWidth * 0.25
property real _margin: ScreenTools.defaultFontPixelWidth / 2
property int _cameraIndex: 1
property real _fieldWidth: ScreenTools.defaultFontPixelWidth * 10.5
property var _cameraList: [ qsTr("Manual Grid (no camera specs)"), qsTr("Custom Camera Grid") ]
......@@ -51,7 +51,9 @@ Rectangle {
if (index == -1) {
gridTypeCombo.currentIndex = _gridTypeManual
} else {
var listIndex = index - _gridTypeCamera
gridTypeCombo.currentIndex = index
missionItem.cameraOrientationFixed = _vehicleCameraList[listIndex].fixedOrientation
}
}
}
......@@ -174,6 +176,8 @@ Rectangle {
anchors.right: parent.right
spacing: _margin
SectionHeader { text: qsTr("Camera") }
QGCComboBox {
id: gridTypeCombo
anchors.left: parent.left
......@@ -187,32 +191,25 @@ Rectangle {
} else if (index == _gridTypeCustomCamera) {
missionItem.manualGrid.value = false
missionItem.camera.value = gridTypeCombo.textAt(index)
missionItem.cameraOrientationFixed = false
} else {
missionItem.manualGrid.value = false
missionItem.camera.value = gridTypeCombo.textAt(index)
_noCameraValueRecalc = true
var listIndex = index - _gridTypeCamera
missionItem.cameraSensorWidth.rawValue = _vehicleCameraList[listIndex].sensorWidth
missionItem.cameraSensorHeight.rawValue = _vehicleCameraList[listIndex].sensorHeight
missionItem.cameraResolutionWidth.rawValue = _vehicleCameraList[listIndex].imageWidth
missionItem.cameraResolutionHeight.rawValue = _vehicleCameraList[listIndex].imageHeight
missionItem.cameraFocalLength.rawValue = _vehicleCameraList[listIndex].focalLength
missionItem.cameraSensorWidth.rawValue = _vehicleCameraList[listIndex].sensorWidth
missionItem.cameraSensorHeight.rawValue = _vehicleCameraList[listIndex].sensorHeight
missionItem.cameraResolutionWidth.rawValue = _vehicleCameraList[listIndex].imageWidth
missionItem.cameraResolutionHeight.rawValue = _vehicleCameraList[listIndex].imageHeight
missionItem.cameraFocalLength.rawValue = _vehicleCameraList[listIndex].focalLength
missionItem.cameraOrientationLandscape.rawValue = _vehicleCameraList[listIndex].landscape ? 1 : 0
missionItem.cameraOrientationFixed = _vehicleCameraList[listIndex].fixedOrientation
_noCameraValueRecalc = false
recalcFromCameraValues()
}
}
}
QGCLabel { text: qsTr("Camera"); visible: gridTypeCombo.currentIndex !== _gridTypeManual}
Rectangle {
anchors.left: parent.left
anchors.right: parent.right
height: 1
color: qgcPal.text
visible: gridTypeCombo.currentIndex !== _gridTypeManual
}
// Camera based grid ui
Column {
anchors.left: parent.left
......@@ -221,8 +218,9 @@ Rectangle {
visible: gridTypeCombo.currentIndex != _gridTypeManual
Row {
spacing: _margin
anchors.horizontalCenter: parent.horizontalCenter
spacing: _margin
anchors.horizontalCenter: parent.horizontalCenter
visible: !missionItem.cameraOrientationFixed
QGCRadioButton {
width: _editFieldWidth
......@@ -267,7 +265,7 @@ Rectangle {
anchors.left: parent.left
anchors.right: parent.right
spacing: _margin
QGCLabel { text: qsTr("Sensor:"); Layout.fillWidth: true }
QGCLabel { text: qsTr("Sensor"); Layout.fillWidth: true }
FactTextField {
Layout.preferredWidth: _root._fieldWidth
fact: missionItem.cameraSensorWidth
......@@ -282,7 +280,7 @@ Rectangle {
anchors.left: parent.left
anchors.right: parent.right
spacing: _margin
QGCLabel { text: qsTr("Image:"); Layout.fillWidth: true }
QGCLabel { text: qsTr("Image"); Layout.fillWidth: true }
FactTextField {
Layout.preferredWidth: _root._fieldWidth
fact: missionItem.cameraResolutionWidth
......@@ -298,7 +296,7 @@ Rectangle {
anchors.right: parent.right
spacing: _margin
QGCLabel {
text: missionItem.cameraFocalLength.name + ":"
text: qsTr("Focal length")
Layout.fillWidth: true
}
FactTextField {
......@@ -328,7 +326,7 @@ Rectangle {
anchors.left: parent.left
anchors.right: parent.right
spacing: _margin
QGCLabel { text: qsTr("Overlap:"); Layout.fillWidth: true }
QGCLabel { text: qsTr("Overlap"); Layout.fillWidth: true }
FactTextField {
Layout.preferredWidth: _root._fieldWidth
fact: missionItem.frontalOverlap
......@@ -339,98 +337,63 @@ Rectangle {
}
}
QGCLabel { text: qsTr("Grid") }
Item { height: _sectionSpacer; width: 1; visible: !ScreenTools.isTinyScreen }
Rectangle {
anchors.left: parent.left
anchors.right: parent.right
height: 1
color: qgcPal.text
}
SectionHeader { text: qsTr("Grid") }
RowLayout {
GridLayout {
anchors.left: parent.left
anchors.right: parent.right
spacing: _margin
QGCLabel {
text: missionItem.gridAngle.name + ":"
Layout.fillWidth: true
anchors.verticalCenter: parent.verticalCenter
}
columnSpacing: _margin
rowSpacing: _margin
columns: 2
QGCLabel { text: qsTr("Angle") }
FactTextField {
fact: missionItem.gridAngle
anchors.verticalCenter: parent.verticalCenter
Layout.preferredWidth: _root._fieldWidth
fact: missionItem.gridAngle
Layout.fillWidth: true
}
}
RowLayout {
anchors.left: parent.left
anchors.right: parent.right
spacing: _margin
QGCLabel {
text: missionItem.turnaroundDist.name + ":"
Layout.fillWidth: true
anchors.verticalCenter: parent.verticalCenter
}
QGCLabel { text: qsTr("Turnaround dist") }
FactTextField {
fact: missionItem.turnaroundDist
anchors.verticalCenter: parent.verticalCenter
Layout.preferredWidth: _root._fieldWidth
Layout.fillWidth: true
}
}
QGCLabel {
anchors.left: parent.left
anchors.right: parent.right
wrapMode: Text.WordWrap
font.pointSize: ScreenTools.smallFontPointSize
text: qsTr("Which value would you like to keep constant as you adjust other settings:")
}
RowLayout {
anchors.left: parent.left
anchors.right: parent.right
spacing: _margin
QGCLabel {
wrapMode: Text.WordWrap
font.pointSize: ScreenTools.smallFontPointSize
text: qsTr("Which value would you like to keep constant as you adjust other settings")
Layout.preferredWidth: parent.width
Layout.columnSpan: 2
}
QGCRadioButton {
id: fixedAltitudeRadio
text: qsTr("Altitude:")
text: qsTr("Altitude")
checked: missionItem.fixedValueIsAltitude.value
exclusiveGroup: fixedValueGroup
onClicked: missionItem.fixedValueIsAltitude.value = 1
Layout.fillWidth: true
anchors.verticalCenter: parent.verticalCenter
}
FactTextField {
fact: missionItem.gridAltitude
enabled: fixedAltitudeRadio.checked
Layout.preferredWidth: _root._fieldWidth
anchors.verticalCenter: parent.verticalCenter
Layout.fillWidth: true
}
}
RowLayout {
anchors.left: parent.left
anchors.right: parent.right
spacing: _margin
QGCRadioButton {
id: fixedGroundResolutionRadio
text: qsTr("Ground res:")
text: qsTr("Ground res")
checked: !missionItem.fixedValueIsAltitude.value
exclusiveGroup: fixedValueGroup
onClicked: missionItem.fixedValueIsAltitude.value = 0
Layout.fillWidth: true
anchors.verticalCenter: parent.verticalCenter
}
FactTextField {
fact: missionItem.groundResolution
enabled: fixedGroundResolutionRadio.checked
Layout.preferredWidth: _root._fieldWidth
anchors.verticalCenter: parent.verticalCenter
Layout.fillWidth: true
}
}
}
......@@ -442,29 +405,29 @@ Rectangle {
spacing: _margin
visible: gridTypeCombo.currentIndex == _gridTypeManual
QGCLabel { text: qsTr("Grid") }
Item { height: _sectionSpacer; width: 1; visible: !ScreenTools.isTinyScreen }
Rectangle {
anchors.left: parent.left
anchors.right: parent.right
height: 1
color: qgcPal.text
}
SectionHeader { text: qsTr("Grid") }
FactTextFieldGrid {
anchors.left: parent.left
anchors.right: parent.right
columnSpacing: _margin * 10
columnSpacing: ScreenTools.defaultFontPixelWidth
rowSpacing: _margin
factList: [ missionItem.gridAngle, missionItem.gridSpacing, missionItem.gridAltitude, missionItem.turnaroundDist ]
factLabels: [ qsTr("Angle"), qsTr("Spacing"), qsTr("Altitude"), qsTr("Turnaround dist")]
}
Item { height: _margin; width: 1; visible: !ScreenTools.isTinyScreen }
FactCheckBox {
anchors.left: parent.left
text: qsTr("Relative altitude")
fact: missionItem.gridAltitudeRelative
}
Item { height: _sectionSpacer; width: 1; visible: !ScreenTools.isTinyScreen }
QGCLabel { text: qsTr("Camera") }
Rectangle {
......@@ -481,7 +444,7 @@ Rectangle {
FactCheckBox {
anchors.baseline: cameraTriggerDistanceField.baseline
text: qsTr("Trigger Distance:")
text: qsTr("Trigger Distance")
fact: missionItem.cameraTrigger
}
......@@ -494,14 +457,9 @@ Rectangle {
}
}
QGCLabel { text: qsTr("Polygon") }
Item { height: _sectionSpacer; width: 1; visible: !ScreenTools.isTinyScreen }
Rectangle {
anchors.left: parent.left
anchors.right: parent.right
height: 1
color: qgcPal.text
}
SectionHeader { text: qsTr("Polygon") }
Row {
spacing: ScreenTools.defaultFontPixelWidth
......@@ -537,26 +495,21 @@ Rectangle {
}
}
QGCLabel { text: qsTr("Statistics") }
Item { height: _sectionSpacer; width: 1; visible: !ScreenTools.isTinyScreen }
Rectangle {
anchors.left: parent.left
anchors.right: parent.right
height: 1
color: qgcPal.text
}
SectionHeader { text: qsTr("Statistics") }
Grid {
columns: 2
columnSpacing: ScreenTools.defaultFontPixelWidth
QGCLabel { text: qsTr("Survey area:") }
QGCLabel { text: qsTr("Survey area") }
QGCLabel { text: QGroundControl.squareMetersToAppSettingsAreaUnits(missionItem.coveredArea).toFixed(2) + " " + QGroundControl.appSettingsAreaUnitsString }
QGCLabel { text: qsTr("Photo count:") }
QGCLabel { text: qsTr("Photo count") }
QGCLabel { text: missionItem.cameraShots }
QGCLabel { text: qsTr("Photo interval:") }
QGCLabel { text: qsTr("Photo interval") }
QGCLabel {
text: {
var timeVal = missionItem.timeBetweenShots
......
......@@ -14,12 +14,12 @@
"friendlyEdit": true,
"category": "Basic",
"param5": {
"label": "Latitude:",
"label": "Latitude",
"default": 37.803784,
"decimalPlaces": 7
},
"param6": {
"label": "Longitude:",
"label": "Longitude",
"default": -122.462276,
"decimalPlaces": 7
}
......@@ -33,25 +33,25 @@
"friendlyEdit": true,
"category": "Basic",
"param1": {
"label": "Hold:",
"label": "Hold",
"units": "secs",
"default": 0,
"decimalPlaces": 0
},
"param2": {
"label": "Acceptance:",
"label": "Acceptance",
"units": "m",
"default": 3,
"decimalPlaces": 2
},
"param3": {
"label": "PassThru:",
"label": "PassThru",
"units": "m",
"default": 0,
"decimalPlaces": 2
},
"param4": {
"label": "Heading:",
"label": "Heading",
"units": "radians",
"default": 0.0,
"decimalPlaces": 2
......@@ -66,7 +66,7 @@
"friendlyEdit": true,
"category": "Loiter",
"param3": {
"label": "Radius:",
"label": "Radius",
"units": "m",
"default": 50.0,
"decimalPlaces": 2
......@@ -81,18 +81,18 @@
"friendlyEdit": true,
"category": "Loiter",
"param1": {
"label": "Turns:",
"label": "Turns",
"default": 1,
"decimalPlaces": 0
},
"param3": {
"label": "Radius:",
"label": "Radius",
"units": "m",
"default": 50.0,
"decimalPlaces": 2
},
"param4": {
"label": "Exit loiter from:",
"label": "Exit loiter from",
"enumStrings": "Center,Tangent",
"enumValues": "0,1",
"default": 1,
......@@ -108,19 +108,19 @@
"friendlyEdit": true,
"category": "Loiter",
"param1": {
"label": "Hold:",
"label": "Hold",
"units": "secs",
"default": 30,
"decimalPlaces": 0
},
"param3": {
"label": "Radius:",
"label": "Radius",
"units": "m",
"default": 50.0,
"decimalPlaces": 2
},
"param4": {
"label": "Exit loiter from:",
"label": "Exit loiter from",
"enumStrings": "Center,Tangent",
"enumValues": "0,1",
"default": 1,
......@@ -144,13 +144,13 @@
"friendlyEdit": true,
"category": "Basic",
"param1": {
"label": "Abort Alt:",
"label": "Abort Alt",
"units": "m",
"default": 25.0,
"decimalPlaces": 2
},
"param4": {
"label": "Heading:",
"label": "Heading",
"units": "radians",
"default": 0.0,
"decimalPlaces": 2
......@@ -165,13 +165,13 @@
"friendlyEdit": true,
"category": "Basic",
"param1": {
"label": "Pitch:",
"label": "Pitch",
"units": "deg",
"default": 15,
"decimalPlaces": 2
},
"param4": {
"label": "Heading:",
"label": "Heading",
"units": "radians",
"default": 0.0,
"decimalPlaces": 2
......@@ -189,14 +189,14 @@
"friendlyEdit": true,
"category": "Flight control",
"param1": {
"label": "Mode:",
"label": "Mode",
"enumStrings": "Climb,Neutral,Descend",
"enumValues": "1,0,2",
"default": 1,
"decimalPlaces": 0
},
"param7": {
"label": "Altitude:",
"label": "Altitude",
"units": "m",
"default": 55,
"decimalPlaces": 2
......@@ -211,20 +211,20 @@
"friendlyEdit": true,
"category": "Loiter",
"param1": {
"label": "Heading wait:",
"label": "Heading wait",
"enumStrings": "False,True",
"enumValues": "0,1",
"default": 0,
"decimalPlaces": 0
},
"param2": {
"label": "Radius:",
"label": "Radius",
"units": "m",
"default": 50.0,
"decimalPlaces": 2
},
"param4": {
"label": "Exit loiter from:",
"label": "Exit loiter from",
"enumStrings": "Center,Tangent",
"enumValues": "0,1",
"default": 1,
......@@ -243,19 +243,19 @@
"friendlyEdit": true,
"category": "Camera",
"param1": {
"label": "Mode:",
"label": "Mode",
"enumStrings": "None,Next waypoint,Mission item,Location,ROI item",
"enumValues": "0,1,2,3,4",
"default": 3,
"decimalPlaces": 0
},
"param2": {
"label": "Mission Index:",
"label": "Mission Index",
"default": 0,
"decimalPlaces": 0
},
"param3": {
"label": "ROI Index:",
"label": "ROI Index",
"default": 0,
"decimalPlaces": 0
}
......@@ -269,21 +269,21 @@
"friendlyEdit": true,
"category": "Advanced",
"param1": {
"label": "Local planning:",
"label": "Local planning",
"enumStrings": "Disable,Enable,Enable+reset",
"enumValues": "0,1,2",
"default": 1,
"decimalPlaces": 0
},
"param2": {
"label": "Full planning:",
"label": "Full planning",
"enumStrings": "Disable,Enable,Enable+reset,Enable+reset route only",
"enumValues": "0,1,2,3",
"default": 1,
"decimalPlaces": 0
},
"param4": {
"label": "Heading goal:",
"label": "Heading goal",
"default": 0,
"units": "deg",
"decimalPlaces": 2
......@@ -298,7 +298,7 @@
"friendlyEdit": true,
"category": "Basic",
"param1": {
"label": "Hold:",
"label": "Hold",
"units": "secs",
"default": 0,
"decimalPlaces": 0
......@@ -314,7 +314,7 @@
"friendlyEdit": true,
"category": "VTOL",
"param4": {
"label": "Heading:",
"label": "Heading",
"units": "deg",
"default": 0.0,
"decimalPlaces": 2
......@@ -329,7 +329,7 @@
"friendlyEdit": true,
"category": "VTOL",
"param4": {
"label": "Heading:",
"label": "Heading",
"units": "deg",
"default": 0.0,
"decimalPlaces": 2
......@@ -354,23 +354,23 @@
"friendlyName": "Delay until",
"description": "Delay unti the specified time is reached.",
"param1": {
"label": "Hold:",
"label": "Hold",
"units": "secs",
"default": 30,
"decimalPlaces": 0
},
"param2": {
"label": "Hour (utc):",
"label": "Hour (utc)",
"default": 0,
"decimalPlaces": 0
},
"param3": {
"label": "Min (utc):",
"label": "Min (utc)",
"default": 0,
"decimalPlaces": 0
},
"param4": {
"label": "Sec (utc):",
"label": "Sec (utc)",
"default": 0,
"decimalPlaces": 0
}
......@@ -383,7 +383,7 @@
"friendlyEdit": true,
"category": "Basic",
"param1": {
"label": "Hold:",
"label": "Hold",
"units": "secs",
"default": 30,
"decimalPlaces": 0
......@@ -396,13 +396,13 @@
"friendlyName": "Wait for altitude",
"category": "Conditionals",
"param1": {
"label": "Rate:",
"label": "Rate",
"units": "m/s",
"default": 5,
"decimalPlaces": 2
},
"param7": {
"label": "Altitude:",
"label": "Altitude",
"units": "m",
"default": 55,
"decimalPlaces": 2
......@@ -415,7 +415,7 @@
"friendlyName": "Wait for distance",
"category": "Conditionals",
"param1": {
"label": "Distance:",
"label": "Distance",
"units": "m",
"default": 10,
"decimalPlaces": 2
......@@ -428,25 +428,25 @@
"description": "Delay the mission until the specified heading is reached.",
"category": "Conditionals",
"param1": {
"label": "Heading:",
"label": "Heading",
"units": "deg",
"default": 0,
"decimalPlaces": 1
},
"param2": {
"label": "Rate:",
"label": "Rate",
"units": "degrees/s",
"default": 5,
"decimalPlaces": 1
},
"param3": {
"label": "Direction:",
"label": "Direction",
"enumStrings": "Clockwise,Counter-Clockwise",
"enumValues": "1,-1",
"default": 1
},
"param4": {
"label": "Offset:",
"label": "Offset",
"enumStrings": "Relative,Absolute",
"enumValues": "1,0",
"default": 1
......@@ -460,17 +460,17 @@
"description": "Set flight mode.",
"category": "Advanced",
"param1": {
"label": "Mode:",
"label": "Mode",
"default": 0,
"decimalPlaces": 0
},
"param2": {
"label": "Custom Mode:",
"label": "Custom Mode",
"default": 0,
"decimalPlaces": 0
},
"param3": {
"label": "Sub Mode:",
"label": "Sub Mode",
"default": 0,
"decimalPlaces": 0
}
......@@ -483,12 +483,12 @@
"friendlyEdit": true,
"category": "Advanced",
"param1": {
"label": "Item #:",
"label": "Item #",
"default": 1,
"decimalPlaces": 0
},
"param2": {
"label": "Repeat:",
"label": "Repeat",
"default": 10,
"decimalPlaces": 0
}
......@@ -500,23 +500,23 @@
"description": "Change speed and/or throttle set points.",
"category": "Flight control",
"param1": {
"label": "Type:",
"label": "Type",
"enumStrings": "Airspeed,Ground Speed",
"enumValues": "0,1",
"default": 0
},
"param2": {
"label": "Speed:",
"label": "Speed",
"units": "m/s",
"default": 0
},
"param3": {
"label": "Throttle:",
"label": "Throttle",
"units": "%",
"default": 0
},
"param4": {
"label": "Offset:",
"label": "Offset",
"enumStrings": "Relative,Absolute",
"enumValues": "1,0",
"default": 0
......@@ -532,7 +532,7 @@
"friendlyEdit": true,
"category": "Advanced",
"param1": {
"label": "Mode:",
"label": "Mode",
"enumStrings": "Vehicle position,Specified position",
"enumValues": "1,0",
"default": 0
......@@ -545,12 +545,12 @@
"friendlyName": "Set relay",
"description": "Set relay to a condition.",
"param1": {
"label": "Relay #:",
"label": "Relay #",
"default": 0,
"decimalPlaces": 0
},
"param2": {
"label": "Value:",
"label": "Value",
"default": 0
}
},
......@@ -560,18 +560,18 @@
"friendlyName": "Cycle relay",
"description": "Cycle relay on/off for desired cycles/time.",
"param1": {
"label": "Relay #:",
"label": "Relay #",
"default": 0,
"decimalPlaces": 0
},
"param2": {
"label": "Cycles:",
"label": "Cycles",
"default": 1,
"units": "count",
"decimalPlaces": 0
},
"param3": {
"label": "Time:",
"label": "Time",
"default": 10,
"units": "secs",
"decimalPlaces": 0
......@@ -584,12 +584,12 @@
"description": "Set servo to specified PWM value.",
"friendlyEdit": true,
"param1": {
"label": "Servo:",
"label": "Servo",
"default": 1,
"decimalPlaces": 0
},
"param2": {
"label": "PWM:",
"label": "PWM",
"default": 1500,
"decimalPlaces": 0
}
......@@ -600,23 +600,23 @@
"friendlyName": "Cycle servo",
"description": "Set servo to specified PWM value.",
"param1": {
"label": "Servo:",
"label": "Servo",
"default": 1,
"decimalPlaces": 0
},
"param2": {
"label": "PWM:",
"label": "PWM",
"default": 1000,
"decimalPlaces": 0
},
"param3": {
"label": "Cycles:",
"label": "Cycles",
"default": 1,
"units": "count",
"decimalPlaces": 0
},
"param4": {
"label": "Time:",
"label": "Time",
"default": 10,
"units": "secs",
"decimalPlaces": 0
......@@ -643,7 +643,7 @@
"friendlyEdit": true,
"category": "Advanced",
"param1": {
"label": "Direction:",
"label": "Direction",
"enumStrings": "Forward,Reverse",
"enumValues": "0,1",
"default": 0
......@@ -660,19 +660,19 @@
"friendlyEdit": true,
"category": "Camera",
"param1": {
"label": "Mode:",
"label": "Mode",
"enumStrings": "None,Next waypoint,Mission item,Location,ROI item",
"enumValues": "0,1,2,3,4",
"default": 3,
"decimalPlaces": 0
},
"param2": {
"label": "Mission Index:",
"label": "Mission Index",
"default": 0,
"decimalPlaces": 0
},
"param3": {
"label": "ROI Index:",
"label": "ROI Index",
"default": 0,
"decimalPlaces": 0
}
......@@ -684,39 +684,39 @@
"description": "Configure onboard camera controller.",
"category": "Camera",
"param1": {
"label": "Mode:",
"label": "Mode",
"default": 0,
"decimalPlaces": 0
},
"param2": {
"label": "Shutter spd:",
"label": "Shutter spd",
"default": 60,
"units": "1/secs",
"decimalPlaces": 0
},
"param3": {
"label": "Aperture:",
"label": "Aperture",
"default": 4,
"units": "F stop",
"decimalPlaces": 1
},
"param4": {
"label": "ISO:",
"label": "ISO",
"default": 200,
"decimalPlaces": 0
},
"param5": {
"label": "Exposure:",
"label": "Exposure",
"default": 0,
"decimalPlaces": 0
},
"param6": {
"label": "Command:",
"label": "Command",
"default": 0,
"decimalPlaces": 0
},
"param7": {
"label": "Cut off:",
"label": "Cut off",
"default": 0,
"decimalPlaces": 2
}
......@@ -728,32 +728,32 @@
"description": "Control onboard camera.",
"category": "Camera",
"param1": {
"label": "Session:",
"label": "Session",
"default": 0,
"decimalPlaces": 0
},
"param2": {
"label": "Zoom:",
"label": "Zoom",
"default": 0,
"decimalPlaces": 3
},
"param3": {
"label": "Step:",
"label": "Step",
"default": 0,
"decimalPlaces": 3
},
"param4": {
"label": "Focus lock:",
"label": "Focus lock",
"default": 0,
"decimalPlaces": 0
},
"param5": {
"label": "Command:",
"label": "Command",
"default": 0,
"decimalPlaces": 0
},
"param6": {
"label": "Id:",
"label": "Id",
"default": 0,
"decimalPlaces": 0
}
......@@ -765,28 +765,28 @@
"description": "Configure the vehicle mount (e.g. gimbal).",
"category": "Advanced",
"param1": {
"label": "Mode:",
"label": "Mode",
"default": 0,
"decimalPlaces": 0,
"enumStrings": "Retract,Neutral,Mavlink Targeting,RC Targeting,GPS Point",
"enumValues": "0,1,2,3,4"
},
"param2": {
"label": "Stabilize Roll:",
"label": "Stabilize Roll",
"default": 0,
"decimalPlaces": 0,
"enumStrings": "No,Yes",
"enumValues": "0,1"
},
"param3": {
"label": "Stabilize Pitch:",
"label": "Stabilize Pitch",
"default": 0,
"decimalPlaces": 0,
"enumStrings": "No,Yes",
"enumValues": "0,1"
},
"param4": {
"label": "Stabilize Yaw:",
"label": "Stabilize Yaw",
"default": 0,
"decimalPlaces": 0,
"enumStrings": "No,Yes",
......@@ -800,24 +800,24 @@
"description": "Control the vehicle mount (e.g. gimbal).",
"category": "Advanced",
"param1": {
"label": "Lat/Pitch:",
"label": "Lat/Pitch",
"default": 0,
"units": "deg",
"decimalPlaces": 7
},
"param2": {
"label": "Lon/Roll:",
"label": "Lon/Roll",
"default": 0,
"units": "deg",
"decimalPlaces": 7
},
"param3": {
"label": "Alt/Yaw:",
"label": "Alt/Yaw",
"default": 0,
"decimalPlaces": 7
},
"param7": {
"label": "Mode:",
"label": "Mode",
"default": 0,
"decimalPlaces": 0,
"enumStrings": "Retract,Neutral,Mavlink Targeting,RC Targeting,GPS Point",
......@@ -831,7 +831,7 @@
"description": "Set camera trigger distance.",
"category": "Camera",
"param1": {
"label": "Distance:",
"label": "Distance",
"default": 25,
"units": "m",
"decimalPlaces": 2
......@@ -846,7 +846,7 @@
"friendlyEdit": true,
"category": "Safety",
"param1": {
"label": "Enable:",
"label": "Enable",
"enumStrings": "Disable,Disable floor only,Enable",
"enumValues": "0,2,1",
"default": 1,
......@@ -862,7 +862,7 @@
"friendlyEdit": true,
"category": "Safety",
"param1": {
"label": "Trigger:",
"label": "Trigger",
"enumStrings": "Disable,Enable,Release",
"enumValues": "0,1,2",
"default": 1,
......@@ -879,7 +879,7 @@
"friendlyEdit": true,
"category": "Flight control",
"param1": {
"label": "Inverted:",
"label": "Inverted",
"enumStrings": "Normal,Inverted",
"enumValues": "0,1",
"default": 0
......@@ -894,12 +894,12 @@
"friendlyEdit": true,
"category": "Advanced",
"param1": {
"label": "Gripper id:",
"label": "Gripper id",
"default": 1,
"decimalPlaces": 0
},
"param2": {
"label": "Action:",
"label": "Action",
"enumStrings": "Release,Grab",
"enumValues": "0,1",
"default": 0
......@@ -914,7 +914,7 @@
"friendlyEdit": true,
"category": "Advanced",
"param2": {
"label": "Enable:",
"label": "Enable",
"enumStrings": "Enable,Disable",
"enumValues": "1,0",
"default": 1
......@@ -928,25 +928,25 @@
"friendlyName": "Guided limits",
"description": "Set limits for external control",
"param1": {
"label": "Timeout:",
"label": "Timeout",
"default": 0,
"units": "secs",
"decimalPlaces": 0
},
"param2": {
"label": "Min Alt:",
"label": "Min Alt",
"default": 25,
"units": "m",
"decimalPlaces": 2
},
"param3": {
"label": "Max Alt:",
"label": "Max Alt",
"units": "m",
"default": 100,
"decimalPlaces": 2
},
"param4": {
"label": "H Limit:",
"label": "H Limit",
"default": 25,
"units": "m",
"decimalPlaces": 2
......@@ -978,7 +978,7 @@
"description": "Perform flight mode transition.",
"category": "VTOL",
"param1": {
"label": "Mode:",
"label": "Mode",
"default": 3,
"enumStrings": "Hover Mode,Plane Mode",
"enumValues": "3,4"
......
......@@ -343,25 +343,25 @@ QmlObjectListModel* SimpleMissionItem::textFieldFacts(void)
QmlObjectListModel* model = new QmlObjectListModel(this);
if (rawEdit()) {
_missionItem._param1Fact._setName("Param1:");
_missionItem._param1Fact._setName("Param1");
_missionItem._param1Fact.setMetaData(_defaultParamMetaData);
model->append(&_missionItem._param1Fact);
_missionItem._param2Fact._setName("Param2:");
_missionItem._param2Fact._setName("Param2");
_missionItem._param2Fact.setMetaData(_defaultParamMetaData);
model->append(&_missionItem._param2Fact);
_missionItem._param3Fact._setName("Param3:");
_missionItem._param3Fact._setName("Param3");
_missionItem._param3Fact.setMetaData(_defaultParamMetaData);
model->append(&_missionItem._param3Fact);
_missionItem._param4Fact._setName("Param4:");
_missionItem._param4Fact._setName("Param4");
_missionItem._param4Fact.setMetaData(_defaultParamMetaData);
model->append(&_missionItem._param4Fact);
_missionItem._param5Fact._setName("Lat/X:");
_missionItem._param5Fact._setName("Lat/X");
_missionItem._param5Fact.setMetaData(_defaultParamMetaData);
model->append(&_missionItem._param5Fact);
_missionItem._param6Fact._setName("Lon/Y:");
_missionItem._param6Fact._setName("Lon/Y");
_missionItem._param6Fact.setMetaData(_defaultParamMetaData);
model->append(&_missionItem._param6Fact);
_missionItem._param7Fact._setName("Alt/Z:");
_missionItem._param7Fact._setName("Alt/Z");
_missionItem._param7Fact.setMetaData(_defaultParamMetaData);
model->append(&_missionItem._param7Fact);
} else {
......@@ -399,7 +399,7 @@ QmlObjectListModel* SimpleMissionItem::textFieldFacts(void)
}
if (specifiesCoordinate() && !altitudeAdded) {
_missionItem._param7Fact._setName("Altitude:");
_missionItem._param7Fact._setName("Altitude");
_missionItem._param7Fact.setMetaData(_altitudeMetaData);
model->append(&_missionItem._param7Fact);
}
......
......@@ -68,6 +68,7 @@ SurveyMissionItem::SurveyMissionItem(Vehicle* vehicle, QObject* parent)
: ComplexMissionItem(vehicle, parent)
, _sequenceNumber(0)
, _dirty(false)
, _cameraOrientationFixed(false)
, _surveyDistance(0.0)
, _cameraShots(0)
, _coveredArea(0.0)
......
......@@ -45,6 +45,8 @@ public:
Q_PROPERTY(Fact* manualGrid READ manualGrid CONSTANT)
Q_PROPERTY(Fact* camera READ camera CONSTANT)
Q_PROPERTY(bool cameraOrientationFixed MEMBER _cameraOrientationFixed NOTIFY cameraOrientationFixedChanged)
Q_PROPERTY(double timeBetweenShots READ timeBetweenShots NOTIFY timeBetweenShotsChanged)
Q_PROPERTY(QVariantList polygonPath READ polygonPath NOTIFY polygonPathChanged)
Q_PROPERTY(QVariantList gridPoints READ gridPoints NOTIFY gridPointsChanged)
......@@ -141,13 +143,14 @@ public:
static const char* cameraName;
signals:
void polygonPathChanged (void);
void gridPointsChanged (void);
void cameraShotsChanged (int cameraShots);
void coveredAreaChanged (double coveredArea);
void cameraValueChanged (void);
void gridTypeChanged (QString gridType);
void timeBetweenShotsChanged (void);
void polygonPathChanged (void);
void gridPointsChanged (void);
void cameraShotsChanged (int cameraShots);
void coveredAreaChanged (double coveredArea);
void cameraValueChanged (void);
void gridTypeChanged (QString gridType);
void timeBetweenShotsChanged (void);
void cameraOrientationFixedChanged (bool cameraOrientationFixed);
private slots:
void _cameraTriggerChanged(void);
......@@ -174,7 +177,7 @@ private:
QVariantList _gridPoints;
QGeoCoordinate _coordinate;
QGeoCoordinate _exitCoordinate;
double _altitude;
bool _cameraOrientationFixed;
double _surveyDistance;
int _cameraShots;
......
......@@ -49,6 +49,7 @@ QGCViewDialog 1.0 QGCViewDialog.qml
QGCViewMessage 1.0 QGCViewMessage.qml
QGCViewPanel 1.0 QGCViewPanel.qml
RoundButton 1.0 RoundButton.qml
SectionHeader 1.0 SectionHeader.qml
SetupPage 1.0 SetupPage.qml
SignalStrength 1.0 SignalStrength.qml
SimpleItemMapVisuals 1.0 SimpleItemMapVisuals.qml
......
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