GeoAreaEditorLoader.qml 5.5 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    wimaPlaner
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
35
    property bool   interactive:                areaItem.wimaAreaInteractive
Valentin Platzgummer's avatar
Valentin Platzgummer committed
36
    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 Measurement Area")
                onTriggered:    wimaPlaner.addMeasurementArea()
99 100 101 102
            }

            MenuItem {
                text:           qsTr("Add Service Area")
103 104 105 106 107 108
                onTriggered:    wimaPlaner.addServiceArea()
            }

            MenuItem {
                text:           qsTr("Add Corridor")
                onTriggered:    wimaPlaner.addCorridor()
109
            }
110

111 112 113 114
            MenuItem {
                text:           qsTr("Delete")
                onTriggered:    remove()
            }
115

116
            /*MenuItem {
117 118
                text:           qsTr("Change Area Type ...")
                onTriggered:    commandPicker.clicked()
119
            }*/
120 121


122 123 124
        }
    }

125 126
    QGCButton {
        id:                     commandPicker
127 128 129 130 131
        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
132 133
        visible:                interactive
        text:                   areaItem.objectName;
134 135 136 137 138

        Component {
            id: commandDialog

            MissionCommandDialog {
Valentin Platzgummer's avatar
Valentin Platzgummer committed
139
                missionItem: areaItem
140 141 142
            }
        }

143
        //onClicked: qgcView.showDialog(commandDialog, qsTr("Select Mission Command"), qgcView.showDialogDefaultWidth, StandardButton.Cancel)
144 145
    }

146 147 148
    QGCLabel {
        id:                 commandLabel
        anchors.fill:       commandPicker
Valentin Platzgummer's avatar
Valentin Platzgummer committed
149
        visible:            !interactive
150
        verticalAlignment:  Text.AlignVCenter
Valentin Platzgummer's avatar
Valentin Platzgummer committed
151
        text:               areaItem.objectName;
152 153
        color:              _outerTextColor
    }
154 155 156 157 158 159

    Loader {
        id:                 editorLoader
        anchors.leftMargin: _margin
        anchors.topMargin:  _margin
        anchors.left:       parent.left
160
        anchors.top:        commandPicker.bottom
Valentin Platzgummer's avatar
Valentin Platzgummer committed
161 162
        source:             areaItem.editorQML
        visible:            interactive
163 164 165 166 167 168

        property var    masterController:   _masterController
        property real   availableWidth:     _root.width - (_margin * 2) ///< How wide the editor should be
        property var    editorRoot:         _root
    }
} // Rectangle
169 170 171 172 173