APMAirframeComponent.qml 5.8 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
/*=====================================================================

 QGroundControl Open Source Ground Control Station

 (c) 2009 - 2015 QGROUNDCONTROL PROJECT <http://www.qgroundcontrol.org>

 This file is part of the QGROUNDCONTROL project

 QGROUNDCONTROL is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation, either version 3 of the License, or
 (at your option) any later version.

 QGROUNDCONTROL is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU General Public License for more details.

 You should have received a copy of the GNU General Public License
 along with QGROUNDCONTROL. If not, see <http://www.gnu.org/licenses/>.

 ======================================================================*/

Don Gagne's avatar
Don Gagne committed
24
import QtQuick          2.5
25
import QtQuick.Controls 1.2
Don Gagne's avatar
Don Gagne committed
26
import QtQuick.Dialogs  1.2
27

Don Gagne's avatar
Don Gagne committed
28 29 30 31 32 33
import QGroundControl.FactSystem    1.0
import QGroundControl.FactControls  1.0
import QGroundControl.Palette       1.0
import QGroundControl.Controls      1.0
import QGroundControl.Controllers   1.0
import QGroundControl.ScreenTools   1.0
34 35 36 37 38 39 40

QGCView {
    id:         qgcView
    viewPanel:  panel

    QGCPalette { id: qgcPal; colorGroupEnabled: panel.enabled }

Don Gagne's avatar
Don Gagne committed
41 42
    property real _margins: ScreenTools.defaultFontPixelWidth
    property Fact _frame:   controller.getParameterFact(-1, "FRAME")
43 44 45 46 47 48

    APMAirframeComponentController {
        id:         controller
        factPanel:  panel
    }

Don Gagne's avatar
Don Gagne committed
49 50 51 52
    ExclusiveGroup {
        id: airframeTypeExclusive
    }

53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
    Component {
        id: applyRestartDialogComponent

        QGCViewDialog {
            id: applyRestartDialog

            Connections {
                target: controller
                onCurrentAirframeTypeChanged: {
                    airframePicker.model = controller.currentAirframeType.airframes;
                }
                onCurrentAirframeChanged : {
                    hideDialog();
                }
            }

            QGCLabel {
Don Gagne's avatar
Don Gagne committed
70 71 72 73 74 75
                id:                 applyParamsText
                anchors.top:        parent.top
                anchors.left:       parent.left
                anchors.right:      parent.right
                anchors.margins:    _margins
                wrapMode:           Text.WordWrap
76
                text:               qsTr("Select you drone to load the default parameters for it. ")
77 78 79
            }

            Flow {
Don Gagne's avatar
Don Gagne committed
80 81 82 83 84 85 86 87
                anchors.margins:    _margins
                anchors.top:        applyParamsText.bottom
                anchors.left:       parent.left
                anchors.right:      parent.right
                anchors.bottom:     parent.bottom
                spacing :           _margins
                layoutDirection:    Qt.Vertical;

88
                Repeater {
Don Gagne's avatar
Don Gagne committed
89 90
                    id:     airframePicker
                    model:  controller.currentAirframeType.airframes;
91 92

                    delegate: QGCButton {
Don Gagne's avatar
Don Gagne committed
93
                        id:     btnParams
94 95
                        width:  parent.width / 2.1
                        height: (ScreenTools.defaultFontPixelHeight * 14) / 5
Don Gagne's avatar
Don Gagne committed
96
                        text:   controller.currentAirframeType.airframes[index].name;
97

Don Gagne's avatar
Don Gagne committed
98
                        onClicked : controller.currentAirframe = controller.currentAirframeType.airframes[index]
99 100 101 102 103 104
                    }
                }
            }
        }
    }

105 106 107 108
    QGCViewPanel {
        id:             panel
        anchors.fill:   parent

109 110 111 112 113 114 115 116
        Item {
            id:             helpApplyRow
            anchors.top:    parent.top
            anchors.left:   parent.left
            anchors.right:  parent.right
            height:         Math.max(helpText.contentHeight, applyButton.height)

            QGCLabel {
Don Gagne's avatar
Don Gagne committed
117 118 119 120
                id:                     helpText
                anchors.rightMargin:    _margins
                anchors.left:           parent.left
                anchors.right:          applyButton.right
121
                text:                   qsTr("Please select your airframe type")
Don Gagne's avatar
Don Gagne committed
122 123
                font.pixelSize:         ScreenTools.mediumFontPixelSize
                wrapMode:               Text.WordWrap
124 125 126 127 128
            }

            QGCButton {
                id:             applyButton
                anchors.right:  parent.right
129 130
                text:           qsTr("Load common parameters")
                onClicked:      showDialog(applyRestartDialogComponent, qsTr("Load common parameters"), qgcView.showDialogDefaultWidth, StandardButton.Close)
131 132 133 134
            }
        }

        Item {
Don Gagne's avatar
Don Gagne committed
135
            id:             helpSpacer
136 137 138
            anchors.top:    helpApplyRow.bottom
            height:         parent.spacerHeight
            width:          10
139 140
        }

Don Gagne's avatar
Don Gagne committed
141
        QGCFlickable {
142
            id:             scroll
Don Gagne's avatar
Don Gagne committed
143 144 145 146 147 148
            anchors.top:    helpSpacer.bottom
            anchors.bottom: parent.bottom
            anchors.left:   parent.left
            anchors.right:  parent.right
            contentHeight:  frameColumn.height
            contentWidth:   frameColumn.width
149 150


Don Gagne's avatar
Don Gagne committed
151 152 153 154

            Column {
                id:         frameColumn
                spacing:    _margins
155 156 157 158

                Repeater {
                    model: controller.airframeTypesModel

Don Gagne's avatar
Don Gagne committed
159 160 161 162
                    QGCRadioButton {
                        text: object.name
                        checked: controller.currentAirframeType == object
                        exclusiveGroup: airframeTypeExclusive
163

Don Gagne's avatar
Don Gagne committed
164 165 166
                        onCheckedChanged: {
                            if (checked) {
                                controller.currentAirframeType = object
167 168 169 170 171
                            }
                        }
                    }
                }
            }
Don Gagne's avatar
Don Gagne committed
172
        }
173 174
    } // QGCViewPanel
} // QGCView