/**************************************************************************** * * (c) 2009-2016 QGROUNDCONTROL PROJECT * * QGroundControl is licensed according to the terms in the file * COPYING.md in the root of the source code directory. * ****************************************************************************/ import QtQuick 2.3 import QtQuick.Controls 1.2 import QGroundControl.FactSystem 1.0 import QGroundControl.FactControls 1.0 import QGroundControl.Palette 1.0 import QGroundControl.Controls 1.0 import QGroundControl.ScreenTools 1.0 Column { /// ListModel must contains elements which look like this: /// ListElement { /// title: "Roll sensitivity" /// description: "Slide to the left to make roll control faster and more accurate. Slide to the right if roll oscillates or is too twitchy." /// param: "MC_ROLL_TC" /// min: 0 /// max: 100 /// step: 1 /// } property ListModel sliderModel property var qgcViewPanel property real _margins: ScreenTools.defaultFontPixelHeight property bool _loadComplete: false FactPanelController { id: controller factPanel: qgcViewPanel } QGCPalette { id: palette; colorGroupEnabled: enabled } Component.onCompleted: { // Qml Sliders have a strange behavior in which they first set Slider::value to some internal // setting and then set Slider::value to the bound properties value. If you have an onValueChanged // handler which updates your property with the new value, this first value change will trash // your bound values. In order to work around this we don't set the values into the Sliders until // after Qml load is done. We also don't track value changes until Qml load completes. for (var i=0; i