VehicleSummary.qml 4.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
/*=====================================================================

 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/>.

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

24 25 26
import QtQuick 2.2
import QtQuick.Controls 1.2
import QtQuick.Controls.Styles 1.2
27

28
import QGroundControl.FactSystem 1.0
29
import QGroundControl.Palette 1.0
Don Gagne's avatar
Don Gagne committed
30
import QGroundControl.Controls 1.0
31
import QGroundControl.ScreenTools 1.0
32 33

Rectangle {
Don Gagne's avatar
Don Gagne committed
34 35 36
    width: 600
    height: 400

37
    property var qgcPal: QGCPalette { id: palette; colorGroupEnabled: true }
38

39 40 41
    id: topLevel
    objectName: "topLevel"

42
    color: qgcPal.window
43

Don Gagne's avatar
Don Gagne committed
44
    Column {
45
        anchors.fill: parent
46

Don Gagne's avatar
Don Gagne committed
47
        QGCLabel {
Don Gagne's avatar
Don Gagne committed
48 49
            text:           "VEHICLE SUMMARY"
            font.pixelSize: ScreenTools.largeFontPixelSize
Don Gagne's avatar
Don Gagne committed
50
        }
51

52 53 54 55 56 57 58
        Item {
            // Just used as a spacer
            height: 15
            width: 10
        }

        QGCLabel {
59 60
            width:			parent.width
			wrapMode:		Text.WordWrap
61
			color:			setupComplete ? qgcPal.text : "red"
Don Gagne's avatar
Don Gagne committed
62
            font.pixelSize: setupComplete ? ScreenTools.defaultFontPixelSize : ScreenTools.mediumFontPixelSize
63 64 65 66 67
			text:           setupComplete ?
                                "Below you will find a summary of the settings for your vehicle. To the left are the setup menus for each component." :
                                "WARNING: Your vehicle requires setup prior to flight. Please resolve the items marked in red using the menu on the left."

            property bool setupComplete: autopilot && autopilot.setupComplete
68 69
        }

Don Gagne's avatar
Don Gagne committed
70 71 72 73 74
        Item {
            // Just used as a spacer
            height: 20
            width: 10
        }
75

Don Gagne's avatar
Don Gagne committed
76 77 78
        Flow {
            width: parent.width
            spacing: 10
79

Don Gagne's avatar
Don Gagne committed
80
            Repeater {
81
                model: autopilot ? autopilot.vehicleComponents : 0
82

Don Gagne's avatar
Don Gagne committed
83 84 85
                // Outer summary item rectangle
                Rectangle {
                    readonly property real titleHeight: 30
86

Don Gagne's avatar
Don Gagne committed
87 88 89
                    width:  250
                    height: 200
                    color:  qgcPal.windowShade
90

Don Gagne's avatar
Don Gagne committed
91 92
                    // Title bar
                    Rectangle {
93

Don Gagne's avatar
Don Gagne committed
94 95 96
                        width: parent.width
                        height: titleHeight
                        color: qgcPal.windowShadeDark
97

Don Gagne's avatar
Don Gagne committed
98
                        // Title text
99
                        QGCLabel {
Don Gagne's avatar
Don Gagne committed
100
                            anchors.fill:   parent
101

Don Gagne's avatar
Don Gagne committed
102 103
                            color:          qgcPal.buttonText
                            text:           modelData.name.toUpperCase()
104

Don Gagne's avatar
Don Gagne committed
105 106
                            verticalAlignment:      TextEdit.AlignVCenter
                            horizontalAlignment:    TextEdit.AlignHCenter
107
                        }
Don Gagne's avatar
Don Gagne committed
108
                    }
109

Don Gagne's avatar
Don Gagne committed
110 111 112 113 114 115 116 117 118 119 120 121
                    // Setup indicator
                    Rectangle {
                        readonly property real indicatorRadius: 6
                        readonly property real indicatorRightInset: 5

                        x:      parent.width - (indicatorRadius * 2) - indicatorRightInset
                        y:      (parent.titleHeight - (indicatorRadius * 2)) / 2
                        width:  indicatorRadius * 2
                        height: indicatorRadius * 2
                        radius: indicatorRadius
                        color:  modelData.setupComplete ? "#00d932" : "red"
                    }
122

Don Gagne's avatar
Don Gagne committed
123 124 125 126 127 128
                    // Summary Qml
                    Rectangle {
                        y:      parent.titleHeight
                        width:  parent.width
                        height: parent.height - parent.titleHeight
                        color:  qgcPal.windowShade
129

Don Gagne's avatar
Don Gagne committed
130 131 132
                        Loader {
                            anchors.fill: parent
                            source: modelData.summaryQmlSource
133 134 135 136 137 138 139
                        }
                    }
                }
            }
        }
    }
}