7import QGroundControl.Controls
11 theme: ChartView.ChartThemeDark
13 animationOptions: ChartView.NoAnimation
15 backgroundColor: qgcPal.window
16 backgroundRoundness: 0
17 margins.bottom: ScreenTools.defaultFontPixelHeight * 1.5
18 margins.top: chartHeader.height + (ScreenTools.defaultFontPixelHeight * 2)
19 visible: chartController.chartFields.length > 0
21 required property var inspectorController
22 required property int chartIndex
24 property var _seriesColors: ["#00E04B","#DE8500","#F32836","#BFBFBF","#536DFF","#EECC44"]
26 function addDimension(field) {
27 var color = _seriesColors[chartView.count]
28 var serie = createSeries(ChartView.SeriesTypeLine, field.label)
31 serie.useOpenGL = QGroundControl.videoManager.gstreamerEnabled // Details on why here: https://github.com/mavlink/qgroundcontrol/issues/13068
34 chartController.addSeries(field, serie)
37 function delDimension(field) {
39 chartView.removeSeries(field.series)
40 chartController.delSeries(field)
44 function roomForNewDimension() {
45 return chartController.chartFields.length < _seriesColors.length
48 MAVLinkChartController {
50 inspectorController: chartView.inspectorController
51 chartIndex: chartView.chartIndex
56 min: chartController ? chartController.rangeXMin : new Date()
57 max: chartController ? chartController.rangeXMax : new Date()
58 visible: chartController !== null
59 format: "<br/>mm:ss.zzz"
62 labelsFont.family: ScreenTools.fixedFontFamily
63 labelsFont.pointSize: ScreenTools.smallFontPointSize
64 labelsColor: qgcPal.text
69 min: chartController ? chartController.rangeYMin : 0
70 max: chartController ? chartController.rangeYMax : 0
71 visible: chartController !== null
73 labelsFont.family: ScreenTools.fixedFontFamily
74 labelsFont.pointSize: ScreenTools.smallFontPointSize
75 labelsColor: qgcPal.text
80 anchors.left: parent.left
81 anchors.leftMargin: ScreenTools.defaultFontPixelWidth * 4
82 anchors.right: parent.right
83 anchors.rightMargin: ScreenTools.defaultFontPixelWidth * 4
84 anchors.top: parent.top
85 anchors.topMargin: ScreenTools.defaultFontPixelHeight * 1.5
86 spacing: ScreenTools.defaultFontPixelWidth * 2
87 visible: chartController !== null
90 columnSpacing: ScreenTools.defaultFontPixelWidth
91 rowSpacing: ScreenTools.defaultFontPixelHeight * 0.25
92 anchors.verticalCenter: parent.verticalCenter
95 Layout.alignment: Qt.AlignVCenter
98 Layout.minimumWidth: ScreenTools.defaultFontPixelWidth * 10
99 Layout.maximumWidth: ScreenTools.defaultFontPixelWidth * 10
100 height: ScreenTools.defaultFontPixelHeight
101 model: controller.timeScales
102 currentIndex: chartController ? chartController.rangeXIndex : 0
103 onActivated: (index) => { if(chartController) chartController.rangeXIndex = index; }
104 Layout.alignment: Qt.AlignVCenter
107 text: qsTr("Range:");
108 Layout.alignment: Qt.AlignVCenter
111 Layout.minimumWidth: ScreenTools.defaultFontPixelWidth * 10
112 Layout.maximumWidth: ScreenTools.defaultFontPixelWidth * 10
113 height: ScreenTools.defaultFontPixelHeight
114 model: controller.rangeList
115 currentIndex: chartController ? chartController.rangeYIndex : 0
116 onActivated: (index) => { if(chartController) chartController.rangeYIndex = index; }
117 Layout.alignment: Qt.AlignVCenter
121 anchors.verticalCenter: parent.verticalCenter
123 model: chartController ? chartController.chartFields : []
125 text: modelData.label
126 color: chartView.series(index).color
127 font.pointSize: ScreenTools.smallFontPointSize