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
import QtLocation 5.3 import QtLocation 5.3
import QtPositioning 5.3 import QtPositioning 5.3
import QtQuick.Dialogs 1.2 import QtQuick.Dialogs 1.2
import QtQuick.Layouts 1.11
import QGroundControl 1.0 import QGroundControl 1.0
import QGroundControl.Airspace 1.0 import QGroundControl.Airspace 1.0
@ -511,38 +512,81 @@ FlightMap {
} }
} }
// Handle guided mode clicks // Handle guided mode clicks
MouseArea { MouseArea {
anchors.fill: parent anchors.fill: parent
QGCMenu { Popup {
id: clickMenu id: clickMenu
modal: true
property var coord property var coord
QGCMenuItem {
text: qsTr("Go to location")
visible: globals.guidedControllerFlyView.showGotoLocation
onTriggered: { function setCoordinates(mouseX, mouseY) {
gotoLocationItem.show(clickMenu.coord) var newX = mouseX
globals.guidedControllerFlyView.confirmAction(globals.guidedControllerFlyView.actionGoto, clickMenu.coord, gotoLocationItem) 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: { background: Rectangle {
orbitMapCircle.show(clickMenu.coord) radius: ScreenTools.defaultFontPixelHeight * 0.5
globals.guidedControllerFlyView.confirmAction(globals.guidedControllerFlyView.actionOrbit, clickMenu.coord, orbitMapCircle) color: qgcPal.window
} border.color: qgcPal.text
} }
QGCMenuItem {
text: qsTr("ROI at location")
visible: globals.guidedControllerFlyView.showROI
onTriggered: { ColumnLayout {
roiLocationItem.show(clickMenu.coord) id: mainLayout
globals.guidedControllerFlyView.confirmAction(globals.guidedControllerFlyView.actionROI, clickMenu.coord, roiLocationItem) 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 {
gotoLocationItem.hide() gotoLocationItem.hide()
var clickCoord = _root.toCoordinate(Qt.point(mouse.x, mouse.y), false /* clipToViewPort */) var clickCoord = _root.toCoordinate(Qt.point(mouse.x, mouse.y), false /* clipToViewPort */)
clickMenu.coord = clickCoord clickMenu.coord = clickCoord
clickMenu.popup() clickMenu.setCoordinates(mouse.x, mouse.y)
clickMenu.open()
} }
} }
} }

Loading…
Cancel
Save