diff --git a/src/FlightDisplay/FlightDisplayViewMap.qml b/src/FlightDisplay/FlightDisplayViewMap.qml index 8792d14aabfdb877d692c89fa5eba8783e34306e..3ddf355ee2d630bad409da947f649b48efc409dc 100644 --- a/src/FlightDisplay/FlightDisplayViewMap.qml +++ b/src/FlightDisplay/FlightDisplayViewMap.qml @@ -476,7 +476,7 @@ FlightMap { anchors.topMargin: ScreenTools.defaultFontPixelHeight * (0.33) + state === "bottomMode" ? 0 : ScreenTools.toolbarHeight anchors.bottomMargin: ScreenTools.defaultFontPixelHeight * (0.33) mapControl: flightMap - visible: !ScreenTools.isTinyScreen + visible: !ScreenTools.isTinyScreen && QGroundControl.corePlugin.options.enableMapScale state: "bottomMode" states: [ State { diff --git a/src/FlightMap/MapScale.qml b/src/FlightMap/MapScale.qml index 321afc289e252ecee490387d0c3c2b8da0e683a5..8d8c67dc35ac15324f1d1f0e10d56da1c478899a 100644 --- a/src/FlightMap/MapScale.qml +++ b/src/FlightMap/MapScale.qml @@ -110,70 +110,69 @@ Item { } function calculateScale() { - var scaleLinePixelLength = 100 - var leftCoord = mapControl.toCoordinate(Qt.point(0, scale.y), false /* clipToViewPort */) - var rightCoord = mapControl.toCoordinate(Qt.point(scaleLinePixelLength, scale.y), false /* clipToViewPort */) - var scaleLineMeters = Math.round(leftCoord.distanceTo(rightCoord)) - - if (QGroundControl.settingsManager.unitsSettings.distanceUnits.value === UnitsSettings.DistanceUnitsFeet) { - calculateFeetRatio(scaleLineMeters, scaleLinePixelLength) - } else { - calculateMetersRatio(scaleLineMeters, scaleLinePixelLength) + if(mapControl) { + var scaleLinePixelLength = 100 + var leftCoord = mapControl.toCoordinate(Qt.point(0, scale.y), false /* clipToViewPort */) + var rightCoord = mapControl.toCoordinate(Qt.point(scaleLinePixelLength, scale.y), false /* clipToViewPort */) + var scaleLineMeters = Math.round(leftCoord.distanceTo(rightCoord)) + if (QGroundControl.settingsManager.unitsSettings.distanceUnits.value === UnitsSettings.DistanceUnitsFeet) { + calculateFeetRatio(scaleLineMeters, scaleLinePixelLength) + } else { + calculateMetersRatio(scaleLineMeters, scaleLinePixelLength) + } } } Connections { - target: mapControl - - onWidthChanged: scaleTimer.restart() - onHeightChanged: scaleTimer.restart() + target: mapControl + onWidthChanged: scaleTimer.restart() + onHeightChanged: scaleTimer.restart() onZoomLevelChanged: scaleTimer.restart() } Timer { - id: scaleTimer - interval: 100 - running: false - repeat: false - - onTriggered: calculateScale() + id: scaleTimer + interval: 100 + running: false + repeat: false + onTriggered: calculateScale() } QGCMapLabel { - id: scaleText - map: mapControl - font.family: ScreenTools.demiboldFontFamily - anchors.left: parent.left - anchors.right: parent.right - horizontalAlignment: Text.AlignRight - text: "0 m" + id: scaleText + map: mapControl + font.family: ScreenTools.demiboldFontFamily + anchors.left: parent.left + anchors.right: parent.right + horizontalAlignment:Text.AlignRight + text: "0 m" } Rectangle { - id: leftEnd - anchors.top: scaleText.bottom - anchors.left: parent.left - width: 2 - height: ScreenTools.defaultFontPixelHeight - color: _color + id: leftEnd + anchors.top: scaleText.bottom + anchors.left: parent.left + width: 2 + height: ScreenTools.defaultFontPixelHeight + color: _color } Rectangle { - id: centerLine + id: centerLine anchors.bottomMargin: 2 - anchors.bottom: leftEnd.bottom - anchors.left: leftEnd.right - height: 2 - color: _color + anchors.bottom: leftEnd.bottom + anchors.left: leftEnd.right + height: 2 + color: _color } Rectangle { - id: rightEnd - anchors.top: leftEnd.top - anchors.left: centerLine.right - width: 2 - height: ScreenTools.defaultFontPixelHeight - color: _color + id: rightEnd + anchors.top: leftEnd.top + anchors.left: centerLine.right + width: 2 + height: ScreenTools.defaultFontPixelHeight + color: _color } Component.onCompleted: { diff --git a/src/api/QGCOptions.h b/src/api/QGCOptions.h index d00fa7c7ee5f82d78d98f7e8ac3dae95cbf13544..b2b6ebcac87cb7be46ca0fb7f8e5b2728d64a29b 100644 --- a/src/api/QGCOptions.h +++ b/src/api/QGCOptions.h @@ -63,6 +63,7 @@ public: Q_PROPERTY(bool checkFirmwareVersion READ checkFirmwareVersion CONSTANT) Q_PROPERTY(bool showMavlinkLogOptions READ showMavlinkLogOptions CONSTANT) Q_PROPERTY(bool enableMultiVehicleList READ enableMultiVehicleList CONSTANT) + Q_PROPERTY(bool enableMapScale READ enableMapScale CONSTANT) /// Should QGC hide its settings menu and colapse it into one single menu (Settings and Vehicle Setup)? /// @return true if QGC should consolidate both menus into one. @@ -114,7 +115,8 @@ public: virtual bool disableVehicleConnection () const { return false; } ///< true: vehicle connection is disabled virtual bool checkFirmwareVersion () const { return true; } virtual bool showMavlinkLogOptions () const { return true; } - virtual bool enableMultiVehicleList () const { return true; } + virtual bool enableMultiVehicleList () const { return true; } + virtual bool enableMapScale () const { return true; } #if defined(__mobile__) virtual bool useMobileFileDialog () const { return true;} diff --git a/src/main.cc b/src/main.cc index 62012d36cdc3379274959f9dab23c6a4233a46cf..6a2813f8d250a276cb3f6027bf8f42304b687870 100644 --- a/src/main.cc +++ b/src/main.cc @@ -228,6 +228,7 @@ int main(int argc, char *argv[]) #endif #endif // QT_DEBUG + QCoreApplication::setAttribute(Qt::AA_UseHighDpiPixmaps); QGCApplication* app = new QGCApplication(argc, argv, runUnitTests); Q_CHECK_PTR(app);