CircularSurveyItemEditor.qml 8.56 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
import QtQuick          2.3
import QtQuick.Controls 1.2
import QtQuick.Controls.Styles 1.4
import QtQuick.Dialogs  1.2
import QtQuick.Extras   1.4
import QtQuick.Layouts  1.2

import QGroundControl               1.0
import QGroundControl.ScreenTools   1.0
import QGroundControl.Vehicle       1.0
import QGroundControl.Controls      1.0
import QGroundControl.FactSystem    1.0
import QGroundControl.FactControls  1.0
import QGroundControl.Palette       1.0
import QGroundControl.FlightMap     1.0

Rectangle {
    id:         _root
    height:     visible ? (editorColumn.height + (_margin * 2)) : 0
    width:      availableWidth
    color:      qgcPal.windowShadeDark
    radius:     _radius

    // The following properties must be available up the hierarchy chain
    //property real   availableWidth    ///< Width for control
    //property var    missionItem       ///< Mission Item for editor

    property real   _margin:                    ScreenTools.defaultFontPixelWidth / 2
    property real   _fieldWidth:                ScreenTools.defaultFontPixelWidth * 10.5
    property var    _vehicle:                   QGroundControl.multiVehicleManager.activeVehicle ? QGroundControl.multiVehicleManager.activeVehicle : QGroundControl.multiVehicleManager.offlineEditingVehicle
    property real   _cameraMinTriggerInterval:  missionItem.cameraCalc.minTriggerInterval.rawValue

    function polygonCaptureStarted() {
        missionItem.clearPolygon()
    }

    function polygonCaptureFinished(coordinates) {
        for (var i=0; i<coordinates.length; i++) {
            missionItem.addPolygonCoordinate(coordinates[i])
        }
    }

    function polygonAdjustVertex(vertexIndex, vertexCoordinate) {
        missionItem.adjustPolygonCoordinate(vertexIndex, vertexCoordinate)
    }

    function polygonAdjustStarted() { }
    function polygonAdjustFinished() { }

    QGCPalette { id: qgcPal; colorGroupEnabled: true }

    Column {
        id:                 editorColumn
        anchors.margins:    _margin
        anchors.top:        parent.top
        anchors.left:       parent.left
        anchors.right:      parent.right
        spacing:            _margin

        SectionHeader {
61 62
            id:     generalHeader
            text:   qsTr("General")
63 64
        }

65

66 67 68 69 70 71
        GridLayout {
            anchors.left:   parent.left
            anchors.right:  parent.right
            columnSpacing:  _margin
            rowSpacing:     _margin
            columns:        2
72
            visible:        generalHeader.checked
73

Valentin Platzgummer's avatar
Valentin Platzgummer committed
74 75 76 77 78 79
            QGCLabel { text: qsTr("Altitude") }
            FactTextField {
                fact:                   missionItem.cameraCalc.distanceToSurface
                Layout.fillWidth:       true
                //onUpdated:              rSlider.value = missionItem.deltaR.value
            }
80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96
        }

        SectionHeader {
            id:     transectsHeader
            text:   qsTr("Transects")
        }

        GridLayout {
            anchors.left:   parent.left
            anchors.right:  parent.right
            columnSpacing:  _margin
            rowSpacing:     _margin
            columns:        2
            visible:        transectsHeader.checked



Valentin Platzgummer's avatar
Valentin Platzgummer committed
97

Valentin Platzgummer's avatar
Valentin Platzgummer committed
98 99 100 101 102 103
            QGCLabel { text: qsTr("Delta R") }
            FactTextField {
               fact:                   missionItem.deltaR
               Layout.fillWidth:       true
                //onUpdated:              rSlider.value = missionItem.deltaR.value
            }
104 105 106

            /*QGCSlider {
                id:                     rSlider
Valentin Platzgummer's avatar
Valentin Platzgummer committed
107 108
                minimumValue:           0.3
                maximumValue:           20
109 110 111 112 113 114
                stepSize:               0.1
                tickmarksEnabled:       false
                Layout.fillWidth:       true
                Layout.columnSpan:      2
                Layout.preferredHeight: ScreenTools.defaultFontPixelHeight * 1.5
                onValueChanged:         missionItem.deltaR.value = value
Valentin Platzgummer's avatar
Valentin Platzgummer committed
115
                Component.onCompleted:  value = missionItem.deltaR.defaultValue
116 117 118 119 120 121 122
                updateValueWhileDragging: true
            }*/

            QGCLabel { text: qsTr("Delta Alpha") }
            FactTextField {
                fact:                   missionItem.deltaAlpha
                Layout.fillWidth:       true
123
                //onUpdated:              angleSlider.value = missionItem.deltaAlpha.value
124
            }
125 126 127 128 129 130 131

            QGCLabel { text: qsTr("Min. Length") }
            FactTextField {
                fact:                   missionItem.transectMinLength
                Layout.fillWidth:       true
                //onUpdated:              angleSlider.value = missionItem.deltaAlpha.value
            }
132 133
        }

134
        Column {
135 136 137 138 139
            anchors.left:   parent.left
            anchors.right:  parent.right
            spacing:        _margin
            visible:        transectsHeader.checked

140 141 142 143 144 145 146 147 148 149 150 151 152 153
            QGCCheckBox {
                id:                 relAlt
                text:               qsTr("Relative altitude")
                checked:            missionItem.cameraCalc.distanceToSurfaceRelative
                enabled:            missionItem.cameraCalc.isManualCamera && !missionItem.followTerrain
                visible:            QGroundControl.corePlugin.options.showMissionAbsoluteAltitude || (!missionItem.cameraCalc.distanceToSurfaceRelative && !missionItem.followTerrain)
                onClicked:          missionItem.cameraCalc.distanceToSurfaceRelative = checked

                Connections {
                    target: missionItem.cameraCalc
                    onDistanceToSurfaceRelativeChanged: relAlt.checked = missionItem.cameraCalc.distanceToSurfaceRelative
                }
            }

154 155 156
            FactCheckBox {
                text:       qsTr("Reverse Path")
                fact:       missionItem.reverse
157 158
            }

159
            QGCButton {
160 161
                text:               qsTr("Reset Reference")
                onClicked:          missionItem.resetReference();
162
                Layout.fillWidth:   true
163
            }
164
        }
165

166 167 168
        SectionHeader {
            id:         miscellaneousHeader
            text:       qsTr("Miscellaneous")
169 170
        }

171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192
        ColumnLayout {
            anchors.left:   parent.left
            anchors.right:  parent.right
            spacing:        _margin
            visible:        miscellaneousHeader.checked

            GridLayout {
                Layout.fillWidth:   true
                columnSpacing:      _margin
                rowSpacing:         _margin
                columns:            2

                QGCLabel { text: qsTr("Max Waypoints") }
                FactTextField {
                    fact:                   missionItem.maxWaypoints
                    Layout.fillWidth:       true
                }
            } // GridLayout
        } // ColumnLayout

        /*
        // The following code causes seg. faults from time to time
193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236
        SectionHeader {
            id:         terrainHeader
            text:       qsTr("Terrain")
            checked:    missionItem.followTerrain
        }

        ColumnLayout {
            anchors.left:   parent.left
            anchors.right:  parent.right
            spacing:        _margin
            visible:        terrainHeader.checked

            QGCCheckBox {
                id:         followsTerrainCheckBox
                text:       qsTr("Vehicle follows terrain")
                checked:    missionItem.followTerrain
                onClicked:  missionItem.followTerrain = checked
            }

            GridLayout {
                Layout.fillWidth:   true
                columnSpacing:      _margin
                rowSpacing:         _margin
                columns:            2
                visible:            followsTerrainCheckBox.checked

                QGCLabel { text: qsTr("Tolerance") }
                FactTextField {
                    fact:               missionItem.terrainAdjustTolerance
                    Layout.fillWidth:   true
                }

                QGCLabel { text: qsTr("Max Climb Rate") }
                FactTextField {
                    fact:               missionItem.terrainAdjustMaxClimbRate
                    Layout.fillWidth:   true
                }

                QGCLabel { text: qsTr("Max Descent Rate") }
                FactTextField {
                    fact:               missionItem.terrainAdjustMaxDescentRate
                    Layout.fillWidth:   true
                }
            }
237
        }*/
238

239
        /*SectionHeader {
240 241
            id:     statsHeader
            text:   qsTr("Statistics")
242
        }*/
243 244 245 246

        //TransectStyleComplexItemStats { }
    } // Column
} // Rectangle