WimaItemEditor.qml 5.4 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14
import QtQuick                  2.3
import QtQuick.Controls         1.2
import QtQuick.Controls.Styles  1.4
import QtQuick.Dialogs          1.2
import QtQml                    2.2

import QGroundControl               1.0
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


15
/// Fly Area Item edit control
16 17
Rectangle {
    id:     _root
18
    height: editorLoader.visible ? (editorLoader.y + editorLoader.height + (_margin * 2)) : (commandPicker.y + commandPicker.height + _margin / 2)
19 20 21 22
    color:  _currentItem ? qgcPal.missionItemEditor : qgcPal.windowShade
    radius: _radius

    property var    map                 ///< Map control
23
    property var    wimaController
24 25 26
    property var    masterController
    property bool   readOnly            ///< true: read only view, false: full editing view
    property var    rootQgcView
27
    property int    _index
28 29 30 31 32 33

    signal clicked
    signal remove

    property var    _masterController:          masterController
    property var    _missionController:         _masterController.missionController
34 35
    property var    _polygon:                   object.polygon
    property bool   _currentItem:               object.isCurrentPolygon
36 37 38 39 40 41
    property color  _outerTextColor:            _currentItem ? qgcPal.primaryButtonText : qgcPal.text
    property real   _sectionSpacer:             ScreenTools.defaultFontPixelWidth / 2  // spacing between section headings

    readonly property real  _editFieldWidth:    Math.min(width - _margin * 2, ScreenTools.defaultFontPixelWidth * 12)
    readonly property real  _margin:            ScreenTools.defaultFontPixelWidth / 2
    readonly property real  _radius:            ScreenTools.defaultFontPixelWidth / 2
42
    readonly property real  _hamburgerSize:     commandPicker.height * 0.75
43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64

    QGCPalette {
        id: qgcPal
        colorGroupEnabled: enabled
    }

    FocusScope {
        id:             currentItemScope
        anchors.fill:   parent

        MouseArea {
            anchors.fill:   parent
            onClicked: {
                currentItemScope.focus = true
                _root.clicked()
            }
        }
    }


    QGCLabel {
        id:                     label
65
        anchors.verticalCenter: commandPicker.verticalCenter
66 67
        anchors.leftMargin:     _margin
        anchors.left:           parent.left
68
        text:                   _index+1
69 70 71 72 73 74 75
        color:                  _outerTextColor
    }

    QGCColoredImage {
        id:                     hamburger
        anchors.rightMargin:    ScreenTools.defaultFontPixelWidth
        anchors.right:          parent.right
76
        anchors.verticalCenter: commandPicker.verticalCenter
77 78 79 80
        width:                  _hamburgerSize
        height:                 _hamburgerSize
        sourceSize.height:      _hamburgerSize
        source:                 "qrc:/qmlimages/Hamburger.svg"
81
        visible:                _currentItem
82 83 84 85 86 87 88 89 90 91 92 93 94 95 96
        color:                  qgcPal.text
    }

    QGCMouseArea {
        fillItem:   hamburger
        visible:    hamburger.visible
        onClicked: {
            currentItemScope.focus = true
            hamburgerMenu.popup()
        }

        Menu {
            id: hamburgerMenu

            MenuItem {
97 98 99 100 101 102 103
                text:           qsTr("Add Operating Area")
                onTriggered:    wimaController.addGlobalMeasurementArea()
            }

            MenuItem {
                text:           qsTr("Add Service Area")
                onTriggered:    wimaController.addServiceArea()
104
            }
105

106 107 108 109
            MenuItem {
                text:           qsTr("Delete")
                onTriggered:    remove()
            }
110

111
            MenuItem {
112 113
                text:           qsTr("Change Area Type ...")
                onTriggered:    commandPicker.clicked()
114
            }
115 116


117 118 119
        }
    }

120 121
    QGCButton {
        id:                     commandPicker
122 123 124 125 126
        anchors.topMargin:      _margin / 2
        anchors.leftMargin:     ScreenTools.defaultFontPixelWidth * 2
        anchors.rightMargin:    ScreenTools.defaultFontPixelWidth
        anchors.left:           label.right
        anchors.top:            parent.top
127 128 129 130 131 132 133 134 135 136 137 138
        visible:                _currentItem
        text:                   object.objectName;

        Component {
            id: commandDialog

            MissionCommandDialog {
                missionItem: object
            }
        }

        onClicked: qgcView.showDialog(commandDialog, qsTr("Select Mission Command"), qgcView.showDialogDefaultWidth, StandardButton.Cancel)
139 140
    }

141 142 143 144 145 146 147 148
    QGCLabel {
        id:                 commandLabel
        anchors.fill:       commandPicker
        visible:            !_currentItem
        verticalAlignment:  Text.AlignVCenter
        text:               object.objectName;
        color:              _outerTextColor
    }
149 150 151 152 153 154

    Loader {
        id:                 editorLoader
        anchors.leftMargin: _margin
        anchors.topMargin:  _margin
        anchors.left:       parent.left
155 156
        anchors.top:        commandPicker.bottom
        source:             object.editorQml
157 158 159 160 161 162 163
        visible:            _currentItem

        property var    masterController:   _masterController
        property real   availableWidth:     _root.width - (_margin * 2) ///< How wide the editor should be
        property var    editorRoot:         _root
    }
} // Rectangle
164 165 166 167 168