diff --git a/src/PlanView/MissionItemStatus.qml b/src/PlanView/MissionItemStatus.qml index c42610368631f23601e3e3bda650047196a2e2d0..193ffdb8c8731787e054af333210c3cdd0c49b52 100644 --- a/src/PlanView/MissionItemStatus.qml +++ b/src/PlanView/MissionItemStatus.qml @@ -7,64 +7,52 @@ * ****************************************************************************/ - import QtQuick 2.3 import QtQuick.Controls 1.2 import QtQuick.Layouts 1.2 +import QGroundControl 1.0 import QGroundControl.ScreenTools 1.0 import QGroundControl.Controls 1.0 import QGroundControl.Palette 1.0 -import QGroundControl 1.0 import QGroundControl.FactSystem 1.0 import QGroundControl.FactControls 1.0 Rectangle { - width: expandedWidth height: ScreenTools.defaultFontPixelHeight * 7 radius: ScreenTools.defaultFontPixelWidth * 0.5 color: qgcPal.window opacity: 0.80 clip: true - property var currentMissionItem ///< Mission item to display status for - property var missionItems ///< List of all available mission items - property real expandedWidth ///< Width of control when expanded - property real missionDistance ///< Total mission distance - property real missionTime ///< Total mission time - property real missionMaxTelemetry + property var missionItems ///< List of all available mission items - property bool _statusValid: currentMissionItem != undefined - property bool _missionValid: missionItems != undefined + readonly property real _margins: ScreenTools.defaultFontPixelWidth - property real _distance: _statusValid ? _currentMissionItem.distance : NaN - property real _altDifference: _statusValid ? _currentMissionItem.altDifference : NaN - property real _gradient: _statusValid && _currentMissionItem.distance > 0 ? Math.atan(_currentMissionItem.altDifference / _currentMissionItem.distance) : NaN - property real _gradientPercent: isNaN(_gradient) ? NaN : _gradient * 100 - property real _azimuth: _statusValid ? _currentMissionItem.azimuth : NaN - property real _missionDistance: _missionValid ? missionDistance : NaN - property real _missionMaxTelemetry: _missionValid ? missionMaxTelemetry : NaN - property real _missionTime: _missionValid ? missionTime : NaN + QGCPalette { id: qgcPal } - property string _distanceText: isNaN(_distance) ? "-.-" : QGroundControl.metersToAppSettingsDistanceUnits(_distance).toFixed(1) + " " + QGroundControl.appSettingsDistanceUnitsString - property string _altDifferenceText: isNaN(_altDifference) ? "-.-" : QGroundControl.metersToAppSettingsDistanceUnits(_altDifference).toFixed(1) + " " + QGroundControl.appSettingsDistanceUnitsString - property string _gradientText: isNaN(_gradient) ? "-.-" : _gradientPercent.toFixed(0) + "%" - property string _azimuthText: isNaN(_azimuth) ? "-.-" : Math.round(_azimuth) - property string _missionDistanceText: isNaN(_missionDistance) ? "-.-" : QGroundControl.metersToAppSettingsDistanceUnits(_missionDistance).toFixed(1) + " " + QGroundControl.appSettingsDistanceUnitsString - property string _missionTimeText: isNaN(_missionTime) ? "-.-" : Number(_missionTime / 60).toFixed(1) + " min" - property string _missionMaxTelemetryText: isNaN(_missionMaxTelemetry) ? "-.-" : QGroundControl.metersToAppSettingsDistanceUnits(_missionMaxTelemetry).toFixed(1) + " " + QGroundControl.appSettingsDistanceUnitsString - - readonly property real _margins: ScreenTools.defaultFontPixelWidth + QGCLabel { + id: label + anchors.top: parent.bottom + width: parent.height + text: qsTr("Altitude") + horizontalAlignment: Text.AlignHCenter + rotation: -90 + transformOrigin: Item.TopLeft + } QGCListView { id: statusListView - anchors.fill: parent anchors.margins: _margins + anchors.top: parent.top + anchors.bottom: parent.bottom + anchors.leftMargin: ScreenTools.defaultFontPixelHeight + anchors.left: parent.left + anchors.right: parent.right model: missionItems highlightMoveDuration: 250 orientation: ListView.Horizontal spacing: 0 - width: parent.width - (_margins * 2) clip: true currentIndex: _currentMissionIndex @@ -92,3 +80,4 @@ Rectangle { } } + diff --git a/src/PlanView/PlanView.qml b/src/PlanView/PlanView.qml index c8c0e63c253cddbc20fdb0b0c3ef8d5e7f41b22e..2e9994b016c1eabe4acd836b47eb68c28423ba17 100644 --- a/src/PlanView/PlanView.qml +++ b/src/PlanView/PlanView.qml @@ -610,30 +610,6 @@ QGCView { } } } - - MapScale { - id: mapScale - anchors.margins: ScreenTools.defaultFontPixelHeight * (0.66) - anchors.bottom: waypointValuesDisplay.visible ? waypointValuesDisplay.top : parent.bottom - anchors.left: parent.left - mapControl: editorMap - visible: !ScreenTools.isTinyScreen - } - - MissionItemStatus { - id: waypointValuesDisplay - anchors.margins: ScreenTools.defaultFontPixelWidth - anchors.left: parent.left - anchors.bottom: parent.bottom - z: QGroundControl.zOrderTopMost - currentMissionItem: _currentMissionItem - missionItems: missionController.visualItems - expandedWidth: missionItemEditor.x - (ScreenTools.defaultFontPixelWidth * 2) - missionDistance: missionController.missionDistance - missionTime: missionController.missionTime - missionMaxTelemetry: missionController.missionMaxTelemetry - visible: _editingLayer == _layerMission && !ScreenTools.isShortScreen - } } // FlightMap // Right pane for mission editing controls @@ -795,6 +771,25 @@ QGCView { controller: rallyPointController } } // Right panel + + MapScale { + id: mapScale + anchors.margins: ScreenTools.defaultFontPixelHeight * (0.66) + anchors.bottom: waypointValuesDisplay.visible ? waypointValuesDisplay.top : parent.bottom + anchors.left: parent.left + mapControl: editorMap + visible: !ScreenTools.isTinyScreen + } + + MissionItemStatus { + id: waypointValuesDisplay + anchors.margins: ScreenTools.defaultFontPixelWidth + anchors.left: parent.left + anchors.right: rightPanel.left + anchors.bottom: parent.bottom + missionItems: missionController.visualItems + //visible: _editingLayer === _layerMission && !ScreenTools.isShortScreen + } } // QGCViewPanel Component { diff --git a/src/PlanView/SurveyMapVisual.qml b/src/PlanView/SurveyMapVisual.qml index 00d1d511288ad03b49a4ca6e72980c51b482348d..e46205f7a6f27090bb00d90cdf8d6730a46be0e4 100644 --- a/src/PlanView/SurveyMapVisual.qml +++ b/src/PlanView/SurveyMapVisual.qml @@ -52,20 +52,29 @@ Item { if (_mapPolygon.count < 3) { // Initial polygon is inset to take 2/3rds space var rect = Qt.rect(map.centerViewport.x, map.centerViewport.y, map.centerViewport.width, map.centerViewport.height) - console.log(map.centerViewport) rect.x += (rect.width * 0.25) / 2 rect.y += (rect.height * 0.25) / 2 rect.width *= 0.75 rect.height *= 0.75 - console.log(map.centerViewport) - var topLeft = Qt.point(rect.x, rect.y) - var topRight = Qt.point(rect.x + rect.width, rect.y) - var bottomLeft = Qt.point(rect.x, rect.y + rect.height) - var bottomRight = Qt.point(rect.x + rect.width, rect.y + rect.height) - _mapPolygon.appendVertex(map.toCoordinate(topLeft, false /* clipToViewPort */)) - _mapPolygon.appendVertex(map.toCoordinate(topRight, false /* clipToViewPort */)) - _mapPolygon.appendVertex(map.toCoordinate(bottomRight, false /* clipToViewPort */)) - _mapPolygon.appendVertex(map.toCoordinate(bottomLeft, false /* clipToViewPort */)) + + var centerCoord = map.toCoordinate(Qt.point(rect.x + (rect.width / 2), rect.y + (rect.height / 2)), false /* clipToViewPort */) + var topLeftCoord = map.toCoordinate(Qt.point(rect.x, rect.y), false /* clipToViewPort */) + var topRightCoord = map.toCoordinate(Qt.point(rect.x + rect.width, rect.y), false /* clipToViewPort */) + var bottomLeftCoord = map.toCoordinate(Qt.point(rect.x, rect.y + rect.height), false /* clipToViewPort */) + var bottomRightCoord = map.toCoordinate(Qt.point(rect.x + rect.width, rect.y + rect.height), false /* clipToViewPort */) + + // Initial polygon has max width and height of 3000 meters + var halfWidthMeters = Math.min(topLeftCoord.distanceTo(topRightCoord), 3000) / 2 + var halfHeightMeters = Math.min(topLeftCoord.distanceTo(bottomLeftCoord), 3000) / 2 + topLeftCoord = centerCoord.atDistanceAndAzimuth(halfWidthMeters, -90).atDistanceAndAzimuth(halfHeightMeters, 0) + topRightCoord = centerCoord.atDistanceAndAzimuth(halfWidthMeters, 90).atDistanceAndAzimuth(halfHeightMeters, 0) + bottomLeftCoord = centerCoord.atDistanceAndAzimuth(halfWidthMeters, -90).atDistanceAndAzimuth(halfHeightMeters, 180) + bottomRightCoord = centerCoord.atDistanceAndAzimuth(halfWidthMeters, 90).atDistanceAndAzimuth(halfHeightMeters, 180) + + _mapPolygon.appendVertex(topLeftCoord) + _mapPolygon.appendVertex(topRightCoord) + _mapPolygon.appendVertex(bottomRightCoord) + _mapPolygon.appendVertex(bottomLeftCoord) } } diff --git a/src/QmlControls/MissionItemIndexLabel.qml b/src/QmlControls/MissionItemIndexLabel.qml index 48df184b4b6e1bbf88686da2d19d717c922d5e99..c39447b1630b0310a153e307babf88bb5956cf5b 100644 --- a/src/QmlControls/MissionItemIndexLabel.qml +++ b/src/QmlControls/MissionItemIndexLabel.qml @@ -81,7 +81,6 @@ Canvas { visible: _label.length !== 0 } - QGCLabel { id: labelControlLabel anchors.leftMargin: indicator.width + _labelMargin