6import QGroundControl.Controls
7import QGroundControl.FactControls
13 property Fact fact: null
14 property var _factValue: fact ? fact.value : null
15 property bool _loadComplete: false
17 property real _range: Math.abs(fact.max - fact.min)
18 property real _minIncrement: _range/50
19 property int precision: 2
21 on_FactValueChanged: {
22 slide.value = fact.value
25 Component.onCompleted: {
28 slide.value = fact.value
32 // Used to find width of value string
36 text: fact.value.toFixed(precision)
39 // Param name, value, description and slider adjustment
45 // Param name and value
52 font.pointSize: ScreenTools.defaultFontPointSize * 1.1
53 anchors.verticalCenter: parent.verticalCenter
56 // Row container for Value: xx.xx +/- (different spacing than parent)
58 spacing: ScreenTools.defaultFontPixelWidth
59 anchors.verticalCenter: parent.verticalCenter
63 anchors.verticalCenter: parent.verticalCenter
67 anchors.verticalCenter: parent.verticalCenter
71 text: fact.value.toFixed(precision)
72 width: textMeasure.width + ScreenTools.defaultFontPixelWidth*2 // Fudged, nothing else seems to work
77 anchors.verticalCenter: parent.verticalCenter
84 anchors.verticalCenter: parent.verticalCenter
86 onClicked: fact.value = Math.max(Math.min(fact.value - _minIncrement, fact.max), fact.min)
93 anchors.verticalCenter: parent.verticalCenter
95 onClicked: fact.value = Math.max(Math.min(fact.value + _minIncrement, fact.max), fact.min)
97 } // Row - container for Value: xx.xx +/- (different spacing than parent)
98 } // Row - Param name and value
101 text: fact.shortDescription
104 // Slider, with minimum and maximum values labeled
111 width: ScreenTools.defaultFontPixelWidth * 10
112 text: fact.min.toFixed(precision)
113 horizontalAlignment: Text.AlignRight
118 width: parent.width - minLabel.width - maxLabel.width - _margins * 2
119 stepSize: fact.increment ? Math.max(fact.increment, _minIncrement) : _minIncrement
120 mouseWheelSupport: false
124 if (Math.abs(fact.value - value) >= _minIncrement) { // prevent binding loop
133 width: ScreenTools.defaultFontPixelWidth * 10
134 text: fact.max.toFixed(precision)
136 } // Row - Slider with minimum and maximum values labeled
137 } // Column - Param name, value, description and slider adjustment