FlightDisplayWimaMenu.qml 8.63 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
import QtQuick                  2.3
import QtQuick.Controls         1.2
import QtQuick.Controls.Styles  1.4
import QtQuick.Dialogs          1.2
import QtLocation               5.3
import QtPositioning            5.3
import QtQuick.Layouts          1.2

import QGroundControl               1.0
import QGroundControl.ScreenTools   1.0
import QGroundControl.Controls      1.0
import QGroundControl.Palette       1.0
import QGroundControl.Vehicle       1.0
import QGroundControl.FlightMap     1.0
import QGroundControl.Airspace      1.0
import QGroundControl.Airmap        1.0
17 18
import QGroundControl.FactSystem    1.0
import QGroundControl.FactControls  1.0
19 20

Item {
21
    id:     _root
22 23 24
    height: 500
    width:  300

25
    property var wimaController // must be provided by the user
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
    property var planMasterController // must be provided by the user

    property bool   _controllerValid:           planMasterController !== undefined
    property real   _controllerProgressPct:     _controllerValid ? planMasterController.missionController.progressPct : 0

    // Progress bar visibility
    on_ControllerProgressPctChanged: {
        if (_controllerProgressPct === 1) {
            uploadCompleteText.visible  = true
            progressBar.visible         = false
        } else if (_controllerProgressPct > 0) {
            progressBar.visible         = true
            uploadCompleteText.visible  = false
        }
    }
41 42

    // box containing all items
43
    Rectangle {
44 45
        anchors.left:   parent.left
        anchors.bottom: parent.bottom
46 47 48 49 50 51 52 53
        height:         enableWima.enableWimaBoolean ? parent.height : enableWima.height
        width:          enableWima.enableWimaBoolean ? parent.width : enableWima.width
        color:          enableWima.enableWimaBoolean ? qgcPal.window : "transparent"
        radius:         ScreenTools.defaultFontPixelHeight / 4
        anchors.topMargin:      ScreenTools.defaultFontPixelHeight * 0.5
        anchors.bottomMargin:   ScreenTools.defaultFontPixelHeight * 0.5
        anchors.rightMargin:    ScreenTools.defaultFontPixelHeight * 0.5
        anchors.leftMargin:     ScreenTools.defaultFontPixelHeight * 0.5
54

55
        // checkbox to enable/ disable wima
56
        SliderSwitch {
57
            id: enableWima
58
            anchors.horizontalCenter: parent.horizontalCenter
59
            anchors.topMargin:      ScreenTools.defaultFontPixelHeight * 0.25
60
            anchors.top: parent.top
61
            confirmText: enableWimaBoolean ? qsTr("disable WiMA") : qsTr("enable WiMA")
62

63 64
            property var enableWimaFact:        wimaController.enableWimaController
            property bool enableWimaBoolean:    enableWimaFact.value
65

66 67 68 69 70 71 72
            onAccept: {
                if (enableWimaBoolean) {
                    enableWimaFact.value = false
                } else {
                    enableWimaFact.value = true
                }
            }
73 74
        }

75 76 77 78 79 80 81 82 83 84 85 86 87
        Column {
            id: mainColumn
            anchors.top:        enableWima.bottom
            anchors.left:       parent.left
            anchors.right:      parent.right
            anchors.bottom:     parent.bottom
            anchors.margins:    ScreenTools.defaultFontPixelHeight * 0.4
            spacing:            ScreenTools.defaultFontPixelHeight * 0.25


            SectionHeader {
                id: settingsHeader
                text: qsTr("Settings")
88
            }
89 90
            GridLayout {
                columns: 2
91 92 93 94 95 96
                rowSpacing:         ScreenTools.defaultFontPixelHeight * 0.5
                columnSpacing:      ScreenTools.defaultFontPixelHeight * 0.5
                anchors.topMargin:  ScreenTools.defaultFontPixelHeight * 0.5
                anchors.left:       parent.left
                anchors.right:      parent.right
                visible:            settingsHeader.checked
97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115

                // Settings
                QGCLabel { text: qsTr("Next Waypoint") }
                FactTextField {
                    fact:               wimaController.startWaypointIndex
                    Layout.fillWidth:   true
                }

                QGCLabel { text: qsTr("Max Waypoints") }
                FactTextField {
                    fact:               wimaController.maxWaypointsPerPhase
                    Layout.fillWidth:   true
                }

                QGCLabel { text: qsTr("Overlap") }
                FactTextField {
                    fact:               wimaController.overlapWaypoints
                    Layout.fillWidth:   true
                }
116

117 118 119 120 121 122 123 124 125 126 127 128 129
                FactCheckBox {
                    text:       qsTr("Show All")
                    fact:       wimaController.showAllMissionItems
                }

                FactCheckBox {
                    text:       qsTr("Show Current")
                    fact:       wimaController.showCurrentMissionItems
                }

            }

            SectionHeader{
130 131
                id: missionHeader
                text: qsTr("Mission")
132
            }
133
            GridLayout {
134 135 136 137 138 139 140
                columns:            2
                rowSpacing:         ScreenTools.defaultFontPixelHeight * 0.5
                columnSpacing:      ScreenTools.defaultFontPixelHeight * 0.5
                anchors.topMargin:  ScreenTools.defaultFontPixelHeight * 0.5
                anchors.left:       parent.left
                anchors.right:      parent.right
                visible:            missionHeader.checked
141 142 143

                // Buttons
                QGCButton {
144
                    id: buttonPreviousMissionPhase
145 146
                    text:               qsTr("Reverse")
                    onClicked:          wimaController.previousPhase();
147 148 149 150
                    Layout.fillWidth:   true
                }

                QGCButton {
151
                    id: buttonNextMissionPhase
152 153
                    text:               qsTr("Forward")
                    onClicked:          wimaController.nextPhase();
154 155 156 157 158
                    Layout.fillWidth:   true
                }

                QGCButton {
                    id: buttonResetPhase
159 160
                    text:               qsTr("Reset Phase")
                    onClicked:          wimaController.resetPhase();
161
                    Layout.fillWidth:   true
162
                    Layout.rowSpan:     2
163 164
                }

165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180

            }

            SectionHeader{
                id: vehicleHeader
                text: qsTr("Vehicle")
            }
            GridLayout {
                columns: 2
                rowSpacing:         ScreenTools.defaultFontPixelHeight * 0.5
                columnSpacing:      ScreenTools.defaultFontPixelHeight * 0.5
                anchors.topMargin:  ScreenTools.defaultFontPixelHeight * 0.5
                anchors.left:       parent.left
                anchors.right:      parent.right
                visible:            vehicleHeader.checked

181 182
                QGCButton {
                    id: buttonUpload
183 184
                    text:               qsTr("Upload")
                    onClicked:          wimaController.uploadToVehicle();
185 186
                    Layout.fillWidth:   true
                }
187

188 189
                QGCButton {
                    id: buttonRemoveFromVehicle
190 191
                    text:               qsTr("Remove")
                    onClicked:          wimaController.removeFromVehicle();
192 193
                    Layout.fillWidth:   true
                }
194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213

                // progess bar
                Rectangle {
                    id:             progressBar
                    height:         4
                    width:          _controllerProgressPct * parent.width
                    color:          qgcPal.colorGreen
                    visible:        false
                }

                QGCLabel {
                    id:                     uploadCompleteText
                    font.pointSize:         ScreenTools.largeFontPointSize
                    Layout.columnSpan:      2
                    horizontalAlignment:    Text.AlignHCenter
                    verticalAlignment:      Text.AlignVCenter
                    text:                   "Done"
                    visible:                false
                }

214
            }
Valentin Platzgummer's avatar
Valentin Platzgummer committed
215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231

            SectionHeader {
                id: statsHeader
                text: qsTr("Statistics")
            }
            GridLayout {
                columns: 2
                rowSpacing: ScreenTools.defaultFontPixelHeight * 0.5
                anchors.topMargin: ScreenTools.defaultFontPixelHeight * 0.25
                visible: statsHeader.checked

                QGCLabel {
                    text:           qsTr("Phase Length: ")
                    wrapMode:       Text.WordWrap
                    font.pointSize: ScreenTools.smallFontPointSize
                }
            }
232
        }
233 234
    }
}