RallyPointItemEditor.qml 4.06 KB
Newer Older
1 2 3
import QtQuick          2.3
import QtQuick.Controls 1.2
import QtQuick.Layouts  1.2
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

Gus Grubba's avatar
Gus Grubba committed
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

    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")
        }

Gus Grubba's avatar
Gus Grubba committed
51
        QGCColoredImage {
52 53 54 55 56 57 58 59
            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"
Gus Grubba's avatar
Gus Grubba committed
60
            color:                  qgcPal.text
61 62 63 64 65 66 67 68 69 70 71 72
            MouseArea {
                anchors.fill:   parent
                onClicked:      hamburgerMenu.popup()
                Menu {
                    id: hamburgerMenu
                    MenuItem {
                        text:           qsTr("Delete")
                        onTriggered:    controller.removePoint(rallyPoint)
                    }
                }
            }
        }
Gus Grubba's avatar
Gus Grubba committed
73
    }
74 75 76 77 78 79 80

    Rectangle {
        id:                 valuesRect
        anchors.margins:    _margin
        anchors.left:       parent.left
        anchors.right:      parent.right
        anchors.top:        titleBar.bottom
81
        height:             valuesGrid.height + (_margin * 2)
82 83 84 85
        color:              qgcPal.windowShadeDark
        visible:            _currentItem
        radius:             _radius

86 87
        GridLayout {
            id:                 valuesGrid
88 89 90 91
            anchors.margins:    _margin
            anchors.left:       parent.left
            anchors.right:      parent.right
            anchors.top:        parent.top
92 93 94 95
            rowSpacing:         _margin
            columnSpacing:      _margin
            rows:               rallyPoint ? rallyPoint.textFieldFacts.length : 0
            flow:               GridLayout.TopToBottom
96 97 98 99

            Repeater {
                model: rallyPoint ? rallyPoint.textFieldFacts : 0

100 101 102 103
                QGCLabel {
                    text: modelData.name + ":"
                }
            }
104

105 106
            Repeater {
                model: rallyPoint ? rallyPoint.textFieldFacts : 0
107

108 109 110 111
                FactTextField {
                    Layout.fillWidth:   true
                    showUnits:          true
                    fact:               modelData
112
                }
113 114
            }
        } // GridLayout
115 116
    } // Rectangle
} // Rectangle