Commit 6bf85ada authored by Don Gagne's avatar Don Gagne

Use ToolStrip on fly view

parent e36b3dd2
...@@ -71,83 +71,88 @@ FlightMap { ...@@ -71,83 +71,88 @@ FlightMap {
Component.onCompleted: start(false /* editMode */) Component.onCompleted: start(false /* editMode */)
} }
QGCMapLabel {
id: flyLabel
map: flightMap
text: qsTr("Fly")
visible: !ScreenTools.isShortScreen
anchors.topMargin: _toolButtonTopMargin
anchors.horizontalCenter: centerMapDropButton.horizontalCenter
anchors.top: parent.top
}
//-- Vertical Tool Buttons
ExclusiveGroup { ExclusiveGroup {
id: dropButtonsExclusiveGroup id: _mapTypeButtonsExclusiveGroup
} }
ExclusiveGroup { ToolStrip {
id: mapTypeButtonsExclusiveGroup id: toolStrip
anchors.leftMargin: ScreenTools.defaultFontPixelWidth
anchors.left: parent.left
anchors.topMargin: _toolButtonTopMargin
anchors.top: parent.top
color: qgcPal.window
title: qsTr("Fly")
z: QGroundControl.zOrderWidgets
buttonVisible: [ true, true, _showZoom, _showZoom ]
property bool _showZoom: !ScreenTools.isShortScreen
model: [
{
name: "Center",
iconSource: "/qmlimages/MapCenter.svg",
dropPanelComponent: centerMapDropPanel
},
{
name: "Map",
iconSource: "/qmlimages/MapType.svg",
dropPanelComponent: mapTypeDropPanel
},
{
name: "In",
iconSource: "/qmlimages/ZoomPlus.svg"
},
{
name: "Out",
iconSource: "/qmlimages/ZoomMinus.svg"
} }
]
//-- Dismiss Drop Down (if any)
MouseArea {
anchors.fill: parent
enabled: dropButtonsExclusiveGroup.current != null
onClicked: { onClicked: {
if (dropButtonsExclusiveGroup.current) { switch (index) {
dropButtonsExclusiveGroup.current.checked = false case 2:
_flightMap.zoomLevel += 0.5
break
case 3:
_flightMap.zoomLevel -= 0.5
break
} }
dropButtonsExclusiveGroup.current = null
} }
} }
// IMPORTANT NOTE: Drop Buttons must be parented directly to the map. If they are placed in a Column for example the drop control positioning // Toolstrip drop panel compomnents
// will not work correctly.
//-- Map Center Control MapFitFunctions {
CenterMapDropButton { id: mapFitFunctions
id: centerMapDropButton
anchors.topMargin: flyLabel.visible ? ScreenTools.defaultFontPixelHeight / 2 : _toolButtonTopMargin
anchors.leftMargin: ScreenTools.defaultFontPixelHeight
anchors.left: parent.left
anchors.top: flyLabel.visible ? flyLabel.bottom : parent.top
z: QGroundControl.zOrderWidgets
exclusiveGroup: dropButtonsExclusiveGroup
map: _flightMap map: _flightMap
mapFitViewport: Qt.rect(leftToolWidth, _toolButtonTopMargin, flightMap.width - leftToolWidth - rightPanelWidth, flightMap.height - _toolButtonTopMargin) mapFitViewport: Qt.rect(leftToolWidth, _toolButtonTopMargin, flightMap.width - leftToolWidth - rightPanelWidth, flightMap.height - _toolButtonTopMargin)
usePlannedHomePosition: false usePlannedHomePosition: false
geoFenceController: geoFenceController mapMissionController: missionController
missionController: missionController mapGeoFenceController: geoFenceController
rallyPointController: rallyPointController mapRallyPointController: rallyPointController
showFollowVehicle: true
followVehicle: _followVehicle property real leftToolWidth: toolStrip.x + toolStrip.width
onFollowVehicleChanged: _followVehicle = followVehicle }
property real leftToolWidth: centerMapDropButton.x + centerMapDropButton.width Component {
} id: centerMapDropPanel
//-- Map Type Control CenterMapDropPanel {
DropButton { map: _flightMap
id: mapTypeButton fitFunctions: mapFitFunctions
anchors.topMargin: ScreenTools.defaultFontPixelHeight }
anchors.top: centerMapDropButton.bottom }
anchors.left: centerMapDropButton.left
dropDirection: dropRight Component {
buttonImage: "/qmlimages/MapType.svg" id: mapTypeDropPanel
viewportMargins: ScreenTools.defaultFontPixelWidth / 2
exclusiveGroup: dropButtonsExclusiveGroup
z: QGroundControl.zOrderWidgets
lightBorders: isSatelliteMap
dropDownComponent: Component {
Column { Column {
spacing: ScreenTools.defaultFontPixelWidth spacing: ScreenTools.defaultFontPixelHeight / 2
QGCLabel { text: qsTr("Map type:") }
Row { Row {
spacing: ScreenTools.defaultFontPixelWidth spacing: ScreenTools.defaultFontPixelWidth
Repeater { Repeater {
model: QGroundControl.flightMapSettings.mapTypes model: QGroundControl.flightMapSettings.mapTypes
...@@ -155,65 +160,15 @@ FlightMap { ...@@ -155,65 +160,15 @@ FlightMap {
checkable: true checkable: true
checked: QGroundControl.flightMapSettings.mapType === text checked: QGroundControl.flightMapSettings.mapType === text
text: modelData text: modelData
width: clearButton.width exclusiveGroup: _mapTypeButtonsExclusiveGroup
exclusiveGroup: mapTypeButtonsExclusiveGroup
onClicked: { onClicked: {
QGroundControl.flightMapSettings.mapType = text QGroundControl.flightMapSettings.mapType = text
checked = true dropPanel.hide()
dropButtonsExclusiveGroup.current = null
}
}
}
}
QGCButton {
id: clearButton
text: qsTr("Clear Flight Trails")
enabled: QGroundControl.multiVehicleManager.activeVehicle
onClicked: {
QGroundControl.multiVehicleManager.activeVehicle.clearTrajectoryPoints()
dropButtonsExclusiveGroup.current = null
} }
} }
} }
} }
} }
//-- Zoom Map In
RoundButton {
id: mapZoomPlus
anchors.topMargin: ScreenTools.defaultFontPixelHeight
anchors.top: mapTypeButton.bottom
anchors.left: mapTypeButton.left
visible: !ScreenTools.isTinyScreen && _mainIsMap
buttonImage: "/qmlimages/ZoomPlus.svg"
exclusiveGroup: dropButtonsExclusiveGroup
z: QGroundControl.zOrderWidgets
lightBorders: isSatelliteMap
onClicked: {
if(_flightMap)
_flightMap.zoomLevel += 0.5
checked = false
}
}
//-- Zoom Map Out
RoundButton {
id: mapZoomMinus
anchors.topMargin: ScreenTools.defaultFontPixelHeight
anchors.top: mapZoomPlus.bottom
anchors.left: mapZoomPlus.left
visible: !ScreenTools.isTinyScreen && _mainIsMap
buttonImage: "/qmlimages/ZoomMinus.svg"
exclusiveGroup: dropButtonsExclusiveGroup
z: QGroundControl.zOrderWidgets
lightBorders: isSatelliteMap
onClicked: {
if(_flightMap)
_flightMap.zoomLevel -= 0.5
checked = false
}
} }
// Add trajectory points to the map // Add trajectory points to the map
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment