|
|
|
@ -71,151 +71,106 @@ FlightMap {
@@ -71,151 +71,106 @@ FlightMap {
|
|
|
|
|
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 { |
|
|
|
|
id: dropButtonsExclusiveGroup |
|
|
|
|
id: _mapTypeButtonsExclusiveGroup |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
ExclusiveGroup { |
|
|
|
|
id: mapTypeButtonsExclusiveGroup |
|
|
|
|
} |
|
|
|
|
ToolStrip { |
|
|
|
|
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: { |
|
|
|
|
if (dropButtonsExclusiveGroup.current) { |
|
|
|
|
dropButtonsExclusiveGroup.current.checked = false |
|
|
|
|
switch (index) { |
|
|
|
|
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 |
|
|
|
|
// will not work correctly. |
|
|
|
|
|
|
|
|
|
//-- Map Center Control |
|
|
|
|
CenterMapDropButton { |
|
|
|
|
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 |
|
|
|
|
mapFitViewport: Qt.rect(leftToolWidth, _toolButtonTopMargin, flightMap.width - leftToolWidth - rightPanelWidth, flightMap.height - _toolButtonTopMargin) |
|
|
|
|
usePlannedHomePosition: false |
|
|
|
|
geoFenceController: geoFenceController |
|
|
|
|
missionController: missionController |
|
|
|
|
rallyPointController: rallyPointController |
|
|
|
|
showFollowVehicle: true |
|
|
|
|
followVehicle: _followVehicle |
|
|
|
|
onFollowVehicleChanged: _followVehicle = followVehicle |
|
|
|
|
|
|
|
|
|
property real leftToolWidth: centerMapDropButton.x + centerMapDropButton.width |
|
|
|
|
} |
|
|
|
|
// Toolstrip drop panel compomnents |
|
|
|
|
|
|
|
|
|
//-- Map Type Control |
|
|
|
|
DropButton { |
|
|
|
|
id: mapTypeButton |
|
|
|
|
anchors.topMargin: ScreenTools.defaultFontPixelHeight |
|
|
|
|
anchors.top: centerMapDropButton.bottom |
|
|
|
|
anchors.left: centerMapDropButton.left |
|
|
|
|
dropDirection: dropRight |
|
|
|
|
buttonImage: "/qmlimages/MapType.svg" |
|
|
|
|
viewportMargins: ScreenTools.defaultFontPixelWidth / 2 |
|
|
|
|
exclusiveGroup: dropButtonsExclusiveGroup |
|
|
|
|
z: QGroundControl.zOrderWidgets |
|
|
|
|
lightBorders: isSatelliteMap |
|
|
|
|
MapFitFunctions { |
|
|
|
|
id: mapFitFunctions |
|
|
|
|
map: _flightMap |
|
|
|
|
mapFitViewport: Qt.rect(leftToolWidth, _toolButtonTopMargin, flightMap.width - leftToolWidth - rightPanelWidth, flightMap.height - _toolButtonTopMargin) |
|
|
|
|
usePlannedHomePosition: false |
|
|
|
|
mapMissionController: missionController |
|
|
|
|
mapGeoFenceController: geoFenceController |
|
|
|
|
mapRallyPointController: rallyPointController |
|
|
|
|
|
|
|
|
|
dropDownComponent: Component { |
|
|
|
|
Column { |
|
|
|
|
spacing: ScreenTools.defaultFontPixelWidth |
|
|
|
|
property real leftToolWidth: toolStrip.x + toolStrip.width |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
Row { |
|
|
|
|
spacing: ScreenTools.defaultFontPixelWidth |
|
|
|
|
Component { |
|
|
|
|
id: centerMapDropPanel |
|
|
|
|
|
|
|
|
|
Repeater { |
|
|
|
|
model: QGroundControl.flightMapSettings.mapTypes |
|
|
|
|
CenterMapDropPanel { |
|
|
|
|
map: _flightMap |
|
|
|
|
fitFunctions: mapFitFunctions |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
QGCButton { |
|
|
|
|
checkable: true |
|
|
|
|
checked: QGroundControl.flightMapSettings.mapType === text |
|
|
|
|
text: modelData |
|
|
|
|
width: clearButton.width |
|
|
|
|
exclusiveGroup: mapTypeButtonsExclusiveGroup |
|
|
|
|
Component { |
|
|
|
|
id: mapTypeDropPanel |
|
|
|
|
|
|
|
|
|
onClicked: { |
|
|
|
|
QGroundControl.flightMapSettings.mapType = text |
|
|
|
|
checked = true |
|
|
|
|
dropButtonsExclusiveGroup.current = null |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
Column { |
|
|
|
|
spacing: ScreenTools.defaultFontPixelHeight / 2 |
|
|
|
|
|
|
|
|
|
QGCButton { |
|
|
|
|
id: clearButton |
|
|
|
|
text: qsTr("Clear Flight Trails") |
|
|
|
|
enabled: QGroundControl.multiVehicleManager.activeVehicle |
|
|
|
|
onClicked: { |
|
|
|
|
QGroundControl.multiVehicleManager.activeVehicle.clearTrajectoryPoints() |
|
|
|
|
dropButtonsExclusiveGroup.current = null |
|
|
|
|
QGCLabel { text: qsTr("Map type:") } |
|
|
|
|
Row { |
|
|
|
|
spacing: ScreenTools.defaultFontPixelWidth |
|
|
|
|
Repeater { |
|
|
|
|
model: QGroundControl.flightMapSettings.mapTypes |
|
|
|
|
|
|
|
|
|
QGCButton { |
|
|
|
|
checkable: true |
|
|
|
|
checked: QGroundControl.flightMapSettings.mapType === text |
|
|
|
|
text: modelData |
|
|
|
|
exclusiveGroup: _mapTypeButtonsExclusiveGroup |
|
|
|
|
onClicked: { |
|
|
|
|
QGroundControl.flightMapSettings.mapType = text |
|
|
|
|
dropPanel.hide() |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
//-- 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 |
|
|
|
|
MapItemView { |
|
|
|
|
model: _mainIsMap ? _activeVehicle ? _activeVehicle.trajectoryPoints : 0 : 0 |
|
|
|
|