/*===================================================================== QGroundControl Open Source Ground Control Station (c) 2009 - 2015 QGROUNDCONTROL PROJECT 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 . ======================================================================*/ import QtQuick 2.5 import QtQuick.Controls 1.4 import QGroundControl.FactSystem 1.0 import QGroundControl.Palette 1.0 import QGroundControl.Controls 1.0 import QGroundControl.ScreenTools 1.0 QGCView { viewPanel: panel property string panelTitle: "Title" ///< Title for panel /// 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 FactPanelController { id: controller; factPanel: panel } QGCPalette { id: palette; colorGroupEnabled: enabled } property real _margins: ScreenTools.defaultFontPixelHeight property bool _loadComplete: false 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