Skip to content
Snippets Groups Projects
AppSettings.qml 4.12 KiB
Newer Older
  • Learn to ignore specific revisions
  • /****************************************************************************
     *
     *   (c) 2009-2016 QGROUNDCONTROL PROJECT <http://www.qgroundcontrol.org>
     *
     * 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 QtQuick.Layouts  1.2
    
    
    import QGroundControl               1.0
    import QGroundControl.Palette       1.0
    import QGroundControl.Controls      1.0
    import QGroundControl.ScreenTools   1.0
    
    Rectangle {
        id:     settingsView
        color:  qgcPal.window
        z:      QGroundControl.zOrderTopMost
    
        readonly property real _defaultTextHeight:  ScreenTools.defaultFontPixelHeight
        readonly property real _defaultTextWidth:   ScreenTools.defaultFontPixelWidth
        readonly property real _horizontalMargin:   _defaultTextWidth / 2
        readonly property real _verticalMargin:     _defaultTextHeight / 2
        readonly property real _buttonHeight:       ScreenTools.isTinyScreen ? ScreenTools.defaultFontPixelHeight * 3 : ScreenTools.defaultFontPixelHeight * 2
    
    
        QGCPalette { id: qgcPal }
    
        Component.onCompleted: {
    
            //-- Default Settings
    
            __rightPanel.source = QGroundControl.corePlugin.settingsPages[QGroundControl.corePlugin.defaultSettings].url
    
        }
    
        QGCFlickable {
            id:                 buttonList
            width:              buttonColumn.width
            anchors.topMargin:  _verticalMargin
            anchors.top:        parent.top
            anchors.bottom:     parent.bottom
            anchors.leftMargin: _horizontalMargin
            anchors.left:       parent.left
            contentHeight:      buttonColumn.height + _verticalMargin
            flickableDirection: Flickable.VerticalFlick
            clip:               true
    
            ExclusiveGroup { id: panelActionGroup }
    
    
                id:         buttonColumn
                spacing:    _verticalMargin
    
                property real _maxButtonWidth: 0
    
                QGCLabel {
                    anchors.left:           parent.left
                    anchors.right:          parent.right
                    text:                   qsTr("Application Settings")
                    wrapMode:               Text.WordWrap
                    horizontalAlignment:    Text.AlignHCenter
                    visible:                !ScreenTools.isShortScreen
                }
    
    
                    model:  QGroundControl.corePlugin.settingsPages
    
                        height:             _buttonHeight
                        text:               modelData.title
                        exclusiveGroup:     panelActionGroup
                        Layout.fillWidth:   true
    
    
                        onClicked: {
                            if(__rightPanel.source !== modelData.url) {
                                __rightPanel.source = modelData.url
                            }
                            checked = true
    
                        Component.onCompleted: {
                            if(_first) {
                                _first = false
                                checked = true
                            }
    
                        }
                    }
                }
            }
        }
    
        Rectangle {
            id:                     divider
            anchors.topMargin:      _verticalMargin
            anchors.bottomMargin:   _verticalMargin
            anchors.leftMargin:     _horizontalMargin
            anchors.left:           buttonList.right
            anchors.top:            parent.top
            anchors.bottom:         parent.bottom
            width:                  1
            color:                  qgcPal.windowShade
        }
    
        //-- Panel Contents
        Loader {
            id:                     __rightPanel
            anchors.leftMargin:     _horizontalMargin
            anchors.rightMargin:    _horizontalMargin
            anchors.topMargin:      _verticalMargin
            anchors.bottomMargin:   _verticalMargin
            anchors.left:           divider.right
            anchors.right:          parent.right
            anchors.top:            parent.top
            anchors.bottom:         parent.bottom
        }
    }