Browse Source

Rework fly view map guided mode menu

QGC4.4
lss 3 years ago committed by Beat Küng
parent
commit
2f14b59793
  1. 87
      src/FlightDisplay/FlyViewMap.qml

87
src/FlightDisplay/FlyViewMap.qml

@ -12,6 +12,7 @@ import QtQuick.Controls 2.4 @@ -12,6 +12,7 @@ import QtQuick.Controls 2.4
import QtLocation 5.3
import QtPositioning 5.3
import QtQuick.Dialogs 1.2
import QtQuick.Layouts 1.11
import QGroundControl 1.0
import QGroundControl.Airspace 1.0
@ -511,38 +512,81 @@ FlightMap { @@ -511,38 +512,81 @@ FlightMap {
}
}
// Handle guided mode clicks
MouseArea {
anchors.fill: parent
QGCMenu {
Popup {
id: clickMenu
modal: true
property var coord
QGCMenuItem {
text: qsTr("Go to location")
visible: globals.guidedControllerFlyView.showGotoLocation
onTriggered: {
gotoLocationItem.show(clickMenu.coord)
globals.guidedControllerFlyView.confirmAction(globals.guidedControllerFlyView.actionGoto, clickMenu.coord, gotoLocationItem)
function setCoordinates(mouseX, mouseY) {
var newX = mouseX
var newY = mouseY
// Filtering coordinates
if (newX + clickMenu.width > _root.width) {
newX = _root.width - clickMenu.width
}
if (newY + clickMenu.height > _root.height) {
newY = _root.height - clickMenu.height
}
// Set coordiantes
x = newX
y = newY
}
QGCMenuItem {
text: qsTr("Orbit at location")
visible: globals.guidedControllerFlyView.showOrbit
onTriggered: {
orbitMapCircle.show(clickMenu.coord)
globals.guidedControllerFlyView.confirmAction(globals.guidedControllerFlyView.actionOrbit, clickMenu.coord, orbitMapCircle)
}
background: Rectangle {
radius: ScreenTools.defaultFontPixelHeight * 0.5
color: qgcPal.window
border.color: qgcPal.text
}
QGCMenuItem {
text: qsTr("ROI at location")
visible: globals.guidedControllerFlyView.showROI
onTriggered: {
roiLocationItem.show(clickMenu.coord)
globals.guidedControllerFlyView.confirmAction(globals.guidedControllerFlyView.actionROI, clickMenu.coord, roiLocationItem)
ColumnLayout {
id: mainLayout
spacing: ScreenTools.defaultFontPixelWidth / 2
QGCButton {
Layout.fillWidth: true
text: "Go to location"
visible: globals.guidedControllerFlyView.showGotoLocation
onClicked: {
if (clickMenu.opened) {
clickMenu.close()
}
gotoLocationItem.show(clickMenu.coord)
globals.guidedControllerFlyView.confirmAction(globals.guidedControllerFlyView.actionGoto, clickMenu.coord, gotoLocationItem)
}
}
QGCButton {
Layout.fillWidth: true
text: "Orbit at location"
visible: globals.guidedControllerFlyView.showOrbit
onClicked: {
if (clickMenu.opened) {
clickMenu.close()
}
orbitMapCircle.show(clickMenu.coord)
globals.guidedControllerFlyView.confirmAction(globals.guidedControllerFlyView.actionOrbit, clickMenu.coord, orbitMapCircle)
}
}
QGCButton {
Layout.fillWidth: true
text: "ROI at location"
visible: globals.guidedControllerFlyView.showROI
onClicked: {
if (clickMenu.opened) {
clickMenu.close()
}
roiLocationItem.show(clickMenu.coord)
globals.guidedControllerFlyView.confirmAction(globals.guidedControllerFlyView.actionROI, clickMenu.coord, roiLocationItem)
}
}
}
}
@ -553,7 +597,8 @@ FlightMap { @@ -553,7 +597,8 @@ FlightMap {
gotoLocationItem.hide()
var clickCoord = _root.toCoordinate(Qt.point(mouse.x, mouse.y), false /* clipToViewPort */)
clickMenu.coord = clickCoord
clickMenu.popup()
clickMenu.setCoordinates(mouse.x, mouse.y)
clickMenu.open()
}
}
}

Loading…
Cancel
Save