Merged in f5soh/librepilot/update_credits (pull request #529)
[librepilot.git] / ground / gcs / src / share / qml / pfd / PfdView.qml
blob3d60dffb5fa5ccff8fd6522d8816491e116f571b
1 /*
2  * Copyright (C) 2016 The LibrePilot Project
3  * Contact: http://www.librepilot.org
4  *
5  * This file is part of LibrePilot GCS.
6  *
7  * LibrePilot GCS is free software: you can redistribute it and/or modify
8  * it under the terms of the GNU General Public License as published by
9  * the Free Software Foundation, either version 3 of the License, or
10  * (at your option) any later version.
11  *
12  * LibrePilot GCS is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with LibrePilot GCS.  If not, see <http://www.gnu.org/licenses/>.
19  */
20 import QtQuick 2.4
22 Rectangle {
24     color: "#515151"
26     property string worldFile: "PfdSimpleWorld.qml"
27     property bool opaque: true
29     SvgElementImage {
30         id: background
31         elementName: "pfd-window"
32         fillMode: Image.PreserveAspectFit
33         anchors.fill: parent
34         sceneSize: Qt.size(width, height)
36         Rectangle {
37             width: Math.floor(parent.paintedHeight * 1.319)
38             height: Math.floor(parent.paintedHeight - parent.paintedHeight * 0.008)
40             color: "transparent"
41             border.color: "white"
42             border.width: Math.floor(parent.paintedHeight * 0.008)
43             radius: Math.floor(parent.paintedHeight * 0.01)
44             anchors.centerIn: parent
45         }
47         Item {
48             id: sceneItem
50             FontLoader {
51                 id: pt_bold
52                 source: "qrc:/utils/fonts/PTS75F.ttf"
53             }
55             width: Math.floor((parent.paintedHeight * 1.32) - (parent.paintedHeight * 0.013))
56             height: Math.floor(parent.paintedHeight - parent.paintedHeight * 0.02)
57             property variant viewportSize : Qt.size(width, height)
59             anchors.centerIn: parent
60             clip: true
62             Loader {
63                 id: worldLoader
64                 anchors.fill: parent
65                 focus: true
66                 source: worldFile
67             }
69             HorizontCenter {
70                 id: horizontCenterItem
71                 sceneSize: sceneItem.viewportSize
72                 anchors.fill: parent
73             }
75             RollScale {
76                 id: rollscale
77                 sceneSize: sceneItem.viewportSize
78                 horizontCenter: horizontCenterItem.horizontCenter
79                 anchors.fill: parent
80             }
82             SvgElementImage {
83                 id: side_slip_fixed
84                 elementName: "sideslip-fixed"
85                 sceneSize: sceneItem.viewportSize
87                 x: scaledBounds.x * sceneItem.width
88             }
90             Compass {
91                 anchors.fill: parent
92                 sceneSize: sceneItem.viewportSize
93             }
95             SpeedScale {
96                 anchors.fill: parent
97                 sceneSize: sceneItem.viewportSize
98             }
100             AltitudeScale {
101                 anchors.fill: parent
102                 sceneSize: sceneItem.viewportSize
103             }
105             VsiScale {
106                 anchors.fill: parent
107                 sceneSize: sceneItem.viewportSize
108                 visible: pfdContext.altitudeUnit != 0
109             }
111             Info {
112                 anchors.fill: parent
113                 sceneSize: sceneItem.viewportSize
114             }
116             Panels {
117                 anchors.fill: parent
118                 sceneSize: sceneItem.viewportSize
119             }
121             Warnings {
122                 anchors.fill: parent
123                 sceneSize: sceneItem.viewportSize
124             }
125         }
126     }