WimaItemEditor.qml 5.36 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


Valentin Platzgummer's avatar
Valentin Platzgummer committed
15
/// Wima Item edit control
16 17
Rectangle {
    id:     _root
18
    height: editorLoader.visible ? (editorLoader.y + editorLoader.height + (_margin * 2)) : (commandPicker.y + commandPicker.height + _margin / 2)
Valentin Platzgummer's avatar
Valentin Platzgummer committed
19
    color:  interactive ? qgcPal.missionItemEditor : qgcPal.windowShade
20 21 22
    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
Valentin Platzgummer's avatar
Valentin Platzgummer committed
28
    property var    areaItem
29 30 31 32 33 34

    signal clicked
    signal remove

    property var    _masterController:          masterController
    property var    _missionController:         _masterController.missionController
Valentin Platzgummer's avatar
Valentin Platzgummer committed
35 36
    property bool   interactive:                areaItem.interactive
    property color  _outerTextColor:            interactive ? qgcPal.primaryButtonText : qgcPal.text
37 38 39 40 41
    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"
Valentin Platzgummer's avatar
Valentin Platzgummer committed
81
        visible:                interactive
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
                text:           qsTr("Add Operation Area")
                onTriggered:    wimaController.addGOperationArea()
99 100 101 102 103
            }

            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
Valentin Platzgummer's avatar
Valentin Platzgummer committed
127 128
        visible:                interactive
        text:                   areaItem.objectName;
129 130 131 132 133

        Component {
            id: commandDialog

            MissionCommandDialog {
Valentin Platzgummer's avatar
Valentin Platzgummer committed
134
                missionItem: areaItem
135 136 137 138
            }
        }

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

141 142 143
    QGCLabel {
        id:                 commandLabel
        anchors.fill:       commandPicker
Valentin Platzgummer's avatar
Valentin Platzgummer committed
144
        visible:            !interactive
145
        verticalAlignment:  Text.AlignVCenter
Valentin Platzgummer's avatar
Valentin Platzgummer committed
146
        text:               areaItem.objectName;
147 148
        color:              _outerTextColor
    }
149 150 151 152 153 154

    Loader {
        id:                 editorLoader
        anchors.leftMargin: _margin
        anchors.topMargin:  _margin
        anchors.left:       parent.left
155
        anchors.top:        commandPicker.bottom
Valentin Platzgummer's avatar
Valentin Platzgummer committed
156 157
        source:             areaItem.editorQML
        visible:            interactive
158 159 160 161 162 163

        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