RallyPointItemEditor.qml 4.25 KB
Newer Older
1 2 3
import QtQuick                      2.11
import QtQuick.Controls             2.4
import QtQuick.Layouts              1.11
4 5 6 7 8 9 10 11 12 13

import QGroundControl.ScreenTools   1.0
import QGroundControl.Vehicle       1.0
import QGroundControl.Controls      1.0
import QGroundControl.FactControls  1.0
import QGroundControl.Palette       1.0

Rectangle {
    id:     root
    height: _currentItem ? valuesRect.y + valuesRect.height + (_margin * 2) : titleBar.y - titleBar.height + _margin
Don Gagne's avatar
Don Gagne committed
14
    color:  _currentItem ? qgcPal.missionItemEditor : qgcPal.windowShade
15 16 17 18 19
    radius: _radius

    property var rallyPoint ///< RallyPoint object associated with editor
    property var controller ///< RallyPointController

20
    property bool   _currentItem:       rallyPoint ? rallyPoint === controller.currentRallyPoint : false
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
    property color  _outerTextColor:    _currentItem ? "black" : qgcPal.text

    readonly property real  _margin:            ScreenTools.defaultFontPixelWidth / 2
    readonly property real  _radius:            ScreenTools.defaultFontPixelWidth / 2
    readonly property real  _titleHeight:       ScreenTools.defaultFontPixelHeight * 2

    QGCPalette { id: qgcPal; colorGroupEnabled: true }

    Item {
        id:                 titleBar
        anchors.margins:    _margin
        anchors.top:        parent.top
        anchors.left:       parent.left
        anchors.right:      parent.right
        height:             _titleHeight

        MissionItemIndexLabel {
            id:                     indicator
            anchors.verticalCenter: parent.verticalCenter
            anchors.left:           parent.left
            label:                  "R"
            checked:                true
        }

        QGCLabel {
            anchors.leftMargin:     _margin
            anchors.left:           indicator.right
            anchors.verticalCenter: parent.verticalCenter
            text:                   qsTr("Rally Point")
            color:                  _outerTextColor
        }

Don Gagne's avatar
Don Gagne committed
53
        QGCColoredImage {
54 55 56 57 58 59 60 61
            id:                     hamburger
            anchors.rightMargin:    _margin
            anchors.right:          parent.right
            anchors.verticalCenter: parent.verticalCenter
            width:                  ScreenTools.defaultFontPixelWidth * 2
            height:                 width
            sourceSize.height:      height
            source:                 "qrc:/qmlimages/Hamburger.svg"
Don Gagne's avatar
Don Gagne committed
62
            color:                  qgcPal.text
63 64 65 66 67

            MouseArea {
                anchors.fill:   parent
                onClicked:      hamburgerMenu.popup()

68
                QGCMenu {
69 70
                    id: hamburgerMenu

71
                    QGCMenuItem {
72 73 74 75 76 77 78 79 80 81 82 83 84 85
                        text:           qsTr("Delete")
                        onTriggered:    controller.removePoint(rallyPoint)
                    }
                }
            }
        }
    } // Item - titleBar

    Rectangle {
        id:                 valuesRect
        anchors.margins:    _margin
        anchors.left:       parent.left
        anchors.right:      parent.right
        anchors.top:        titleBar.bottom
86
        height:             valuesGrid.height + (_margin * 2)
87 88 89 90
        color:              qgcPal.windowShadeDark
        visible:            _currentItem
        radius:             _radius

91 92
        GridLayout {
            id:                 valuesGrid
93 94 95 96
            anchors.margins:    _margin
            anchors.left:       parent.left
            anchors.right:      parent.right
            anchors.top:        parent.top
97 98 99 100
            rowSpacing:         _margin
            columnSpacing:      _margin
            rows:               rallyPoint ? rallyPoint.textFieldFacts.length : 0
            flow:               GridLayout.TopToBottom
101 102 103 104

            Repeater {
                model: rallyPoint ? rallyPoint.textFieldFacts : 0

105 106 107 108
                QGCLabel {
                    text: modelData.name + ":"
                }
            }
109

110 111
            Repeater {
                model: rallyPoint ? rallyPoint.textFieldFacts : 0
112

113 114 115 116
                FactTextField {
                    Layout.fillWidth:   true
                    showUnits:          true
                    fact:               modelData
117
                }
118 119
            }
        } // GridLayout
120 121
    } // Rectangle
} // Rectangle