|
|
|
@ -18,14 +18,18 @@ import QGroundControl.SettingsManager 1.0
@@ -18,14 +18,18 @@ import QGroundControl.SettingsManager 1.0
|
|
|
|
|
/// Map scale control |
|
|
|
|
Item { |
|
|
|
|
id: scale |
|
|
|
|
width: rightEnd.x + rightEnd.width |
|
|
|
|
width: zoomButtonsOnLeft || !_zoomButtonsVisible ? rightEnd.x + rightEnd.width : zoomDownButton.x + zoomDownButton.width |
|
|
|
|
height: rightEnd.y + rightEnd.height |
|
|
|
|
|
|
|
|
|
property var mapControl ///< Map control for which this scale control is being used |
|
|
|
|
property var mapControl ///< Map control for which this scale control is being used |
|
|
|
|
property bool zoomButtonsVisible: true |
|
|
|
|
property bool zoomButtonsOnLeft: true ///< Zoom buttons to left/right of scale bar |
|
|
|
|
|
|
|
|
|
property variant _scaleLengthsMeters: [5, 10, 25, 50, 100, 150, 250, 500, 1000, 2000, 5000, 10000, 20000, 50000, 100000, 200000, 500000, 1000000, 2000000] |
|
|
|
|
property variant _scaleLengthsFeet: [10, 25, 50, 100, 250, 500, 1000, 2000, 3000, 4000, 5280, 5280*2, 5280*5, 5280*10, 5280*25, 5280*50, 5280*100, 5280*250, 5280*500, 5280*1000] |
|
|
|
|
|
|
|
|
|
property bool _zoomButtonsVisible: zoomButtonsVisible && !ScreenTools.isMobile // Zoom buttons don't show on mobile since finger pinch works fine |
|
|
|
|
|
|
|
|
|
property var _color: mapControl.isSatelliteMap ? "white" : "black" |
|
|
|
|
|
|
|
|
|
function formatDistanceMeters(meters) { |
|
|
|
@ -143,7 +147,7 @@ Item {
@@ -143,7 +147,7 @@ Item {
|
|
|
|
|
map: mapControl |
|
|
|
|
font.family: ScreenTools.demiboldFontFamily |
|
|
|
|
anchors.left: parent.left |
|
|
|
|
anchors.right: parent.right |
|
|
|
|
anchors.right: rightEnd.right |
|
|
|
|
horizontalAlignment:Text.AlignRight |
|
|
|
|
text: "0 m" |
|
|
|
|
} |
|
|
|
@ -151,7 +155,8 @@ Item {
@@ -151,7 +155,8 @@ Item {
|
|
|
|
|
Rectangle { |
|
|
|
|
id: leftEnd |
|
|
|
|
anchors.top: scaleText.bottom |
|
|
|
|
anchors.left: parent.left |
|
|
|
|
anchors.leftMargin: zoomButtonsOnLeft && _zoomButtonsVisible ? ScreenTools.defaultFontPixelWidth / 2 : 0 |
|
|
|
|
anchors.left: zoomButtonsOnLeft && _zoomButtonsVisible ? zoomDownButton.right : parent.left |
|
|
|
|
width: 2 |
|
|
|
|
height: ScreenTools.defaultFontPixelHeight |
|
|
|
|
color: _color |
|
|
|
@ -175,6 +180,31 @@ Item {
@@ -175,6 +180,31 @@ Item {
|
|
|
|
|
color: _color |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
QGCButton { |
|
|
|
|
id: zoomUpButton |
|
|
|
|
anchors.top: scaleText.top |
|
|
|
|
anchors.bottom: rightEnd.bottom |
|
|
|
|
anchors.leftMargin: zoomButtonsOnLeft ? 0 : ScreenTools.defaultFontPixelWidth / 2 |
|
|
|
|
anchors.left: zoomButtonsOnLeft ? parent.left : rightEnd.right |
|
|
|
|
text: qsTr("+") |
|
|
|
|
width: height |
|
|
|
|
opacity: 0.75 |
|
|
|
|
visible: _zoomButtonsVisible |
|
|
|
|
onClicked: mapControl.zoomLevel += 0.5 |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
QGCButton { |
|
|
|
|
id: zoomDownButton |
|
|
|
|
anchors.leftMargin: ScreenTools.defaultFontPixelWidth / 2 |
|
|
|
|
anchors.left: zoomUpButton.right |
|
|
|
|
text: qsTr("-") |
|
|
|
|
height: zoomUpButton.height |
|
|
|
|
width: zoomUpButton.width |
|
|
|
|
opacity: 0.75 |
|
|
|
|
visible: _zoomButtonsVisible |
|
|
|
|
onClicked: mapControl.zoomLevel -= 0.5 |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
Component.onCompleted: { |
|
|
|
|
if (scale.visible) { |
|
|
|
|
calculateScale(); |
|
|
|
|