VehicleSummary.qml 4.47 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 48
        QGCLabel {
            text: "VEHICLE SUMMARY"
49
            font.pointSize: ScreenTools.fontPointFactor * (20);
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 61
            width:			parent.width
			wrapMode:		Text.WordWrap
			color:			autopilot.setupComplete ? qgcPal.text : "red"
62
            font.pointSize: autopilot.setupComplete ? ScreenTools.defaultFontPointSize : ScreenTools.fontPointFactor * (20)
63
			text: autopilot.setupComplete ?
64 65
                        "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."
66 67
        }

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

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

Don Gagne's avatar
Don Gagne committed
78
            Repeater {
79
                model: autopilot.vehicleComponents
80

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

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

Don Gagne's avatar
Don Gagne committed
89 90
                    // Title bar
                    Rectangle {
91

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

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

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

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

Don Gagne's avatar
Don Gagne committed
108 109 110 111 112 113 114 115 116 117 118 119
                    // 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"
                    }
120

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

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