diff --git a/qgroundcontrol.qrc b/qgroundcontrol.qrc index f07d6a3..5877af0 100644 --- a/qgroundcontrol.qrc +++ b/qgroundcontrol.qrc @@ -185,7 +185,7 @@ src/PlanView/TerrainStatus.qml src/PlanView/TakeoffItemMapVisual.qml src/QmlControls/ToolStrip.qml - src/QmlControls/ToolStripHoverButton.qml + src/QmlControls/ToolStripHoverButton.qml src/PlanView/TransectStyleComplexItemEditor.qml src/PlanView/TransectStyleComplexItemStats.qml src/PlanView/TransectStyleComplexItemTabBar.qml @@ -287,6 +287,8 @@ src/AnalyzeView/VibrationPage.qml src/FlightDisplay/VirtualJoystick.qml src/PlanView/VTOLLandingPatternEditor.qml + src/comm/MockLinkOptionsDlg.qml + src/FlightDisplay/FlyViewInsetViewer.qml src/FirstRunPromptDialogs/UnitsFirstRunPrompt.qml @@ -357,7 +359,4 @@ src/comm/MockLink.Parameter.MetaData.json src/comm/Mocklink.Arduplane.params.ftp.bin - - src/comm/MockLinkOptionsDlg.qml - diff --git a/src/FlightDisplay/FlyView.qml b/src/FlightDisplay/FlyView.qml index 0f0a378..68c2a8b 100644 --- a/src/FlightDisplay/FlyView.qml +++ b/src/FlightDisplay/FlyView.qml @@ -85,6 +85,7 @@ Item { visible: !QGroundControl.videoManager.fullScreen } + FlyViewCustomLayer { id: customOverlay anchors.fill: widgetLayer @@ -94,6 +95,20 @@ Item { visible: !QGroundControl.videoManager.fullScreen } + // Development tool for visualizing the insets for a paticular layer, enable if needed + /* + FlyViewInsetViewer { + id: widgetLayerInsetViewer + anchors.top: parent.top + anchors.bottom: parent.bottom + anchors.left: parent.left + anchors.right: guidedValueSlider.visible ? guidedValueSlider.left : parent.right + + z: widgetLayer.z + 1 + + insetsToView: customOverlay.totalToolInsets + }*/ + GuidedActionsController { id: guidedActionsController missionController: _missionController diff --git a/src/FlightDisplay/FlyViewInsetViewer.qml b/src/FlightDisplay/FlyViewInsetViewer.qml new file mode 100644 index 0000000..2f95208 --- /dev/null +++ b/src/FlightDisplay/FlyViewInsetViewer.qml @@ -0,0 +1,194 @@ +/**************************************************************************** + * + * (c) 2009-2020 QGROUNDCONTROL PROJECT + * + * QGroundControl is licensed according to the terms in the file + * COPYING.md in the root of the source code directory. + * + ****************************************************************************/ + +import QtQuick 2.12 +import QtQuick.Controls 2.4 +import QtQuick.Dialogs 1.3 +import QtQuick.Layouts 1.12 + +import QtLocation 5.3 +import QtPositioning 5.3 +import QtQuick.Window 2.2 +import QtQml.Models 2.1 + +import QGroundControl 1.0 +import QGroundControl.Controls 1.0 +import QGroundControl.Controllers 1.0 +import QGroundControl.FlightDisplay 1.0 +import QGroundControl.ScreenTools 1.0 +import QGroundControl.FlightMap 1.0 + + +// This is the ui overlay layer for the widgets/tools for Fly View +Item { + id: _root + property var insetsToView: QGCToolInsets {} + property int _linethickness: 3 + + Rectangle { + anchors.left: parent.left + anchors.verticalCenter: parent.verticalCenter + anchors.leftMargin: parent.width/8 + height: checkboxcolumn.height + width: checkboxcolumn.width + color: "dimgray" + + ColumnLayout { + id: checkboxcolumn + QGCCheckBox{ + checked: true + text: "leftEdgeTopInset" + onClicked: leftEdgeTopInset.visible = checked + textColor: leftEdgeTopInset.color + textBold: true + } + QGCCheckBox{ + checked: true + text: "leftEdgeBottomInset" + onClicked: leftEdgeBottomInset.visible = checked + textColor: leftEdgeBottomInset.color + textBold: true + } + QGCCheckBox{ + checked: true + text: "rightEdgeTopInset" + onClicked: rightEdgeTopInset.visible = checked + textColor: rightEdgeTopInset.color + textBold: true + } + QGCCheckBox{ + checked: true + text: "rightEdgeBottomInset" + onClicked: rightEdgeBottomInset.visible = checked + textColor: rightEdgeBottomInset.color + textBold: true + } + QGCCheckBox{ + checked: true + text: "topEdgeLeftInset" + onClicked: topEdgeLeftInset.visible = checked + textColor: topEdgeLeftInset.color + textBold: true + } + QGCCheckBox{ + checked: true + text: "topEdgeRightInset" + onClicked: topEdgeRightInset.visible = checked + textColor: topEdgeRightInset.color + textBold: true + } + QGCCheckBox{ + checked: true + text: "bottomEdgeLeftInset" + onClicked: bottomEdgeLeftInset.visible = checked + textColor: bottomEdgeLeftInset.color + textBold: true + } + QGCCheckBox{ + checked: true + text: "bottomEdgeRightInset" + onClicked: bottomEdgeRightInset.visible = checked + textColor: bottomEdgeRightInset.color + textBold: true + } + QGCCheckBox{ + checked: true + text: "centerInsetRect" + onClicked: centerInsetRect.visible = checked + textColor: centerInsetRect.border.color + textBold: true + } + } + + } + + Rectangle { // leftEdgeTopInset + id: leftEdgeTopInset + anchors.top: parent.top + anchors.left: parent.left + anchors.leftMargin: insetsToView.leftEdgeTopInset + height: parent.height + width: _linethickness + color: "coral" + } + Rectangle { // leftEdgeBottomInset + id: leftEdgeBottomInset + anchors.top: parent.top + anchors.left: parent.left + anchors.leftMargin: insetsToView.leftEdgeBottomInset + height: parent.height + width: _linethickness + color: "cornflowerblue" + } + Rectangle { // rightEdgeTopInset + id: rightEdgeTopInset + anchors.top: parent.top + anchors.right: parent.right + anchors.rightMargin: insetsToView.rightEdgeTopInset + height: parent.height + width: _linethickness + color: "darkslateblue" + } + Rectangle { // rightEdgeBottomInset + id: rightEdgeBottomInset + anchors.top: parent.top + anchors.right: parent.right + anchors.rightMargin: insetsToView.rightEdgeBottomInset + height: parent.height + width: _linethickness + color: "firebrick" + } + Rectangle { // topEdgeLeftInset + id: topEdgeLeftInset + anchors.top: parent.top + anchors.left: parent.left + anchors.topMargin: insetsToView.topEdgeLeftInset + height: _linethickness + width: parent.width + color: "mediumseagreen" + } + Rectangle { // topEdgeRightInset + id: topEdgeRightInset + anchors.top: parent.top + anchors.left: parent.left + anchors.topMargin: insetsToView.topEdgeRightInset + height: _linethickness + width: parent.width + color: "moccasin" + } + Rectangle { // bottomEdgeLeftInset + id: bottomEdgeLeftInset + anchors.bottom: parent.bottom + anchors.left: parent.left + anchors.bottomMargin: insetsToView.bottomEdgeLeftInset + height: _linethickness + width: parent.width + color: "salmon" + } + Rectangle { // bottomEdgeRightInset + id: bottomEdgeRightInset + anchors.bottom: parent.bottom + anchors.left: parent.left + anchors.bottomMargin: insetsToView.bottomEdgeRightInset + height: _linethickness + width: parent.width + color: "slategrey" + } + Rectangle { + id: centerInsetRect + x: insetsToView.leftEdgeCenterInset + y: insetsToView.topEdgeCenterInset + width: _root.width - insetsToView.leftEdgeCenterInset - insetsToView.rightEdgeCenterInset + height: _root.height - insetsToView.topEdgeCenterInset - insetsToView.bottomEdgeCenterInset + color: "transparent" + border.color: "yellow" + border.width: 1 + radius: 0 + } +} diff --git a/src/QmlControls/QGroundControl/FlightDisplay/qmldir b/src/QmlControls/QGroundControl/FlightDisplay/qmldir index 4c2ee84..f27005c 100644 --- a/src/QmlControls/QGroundControl/FlightDisplay/qmldir +++ b/src/QmlControls/QGroundControl/FlightDisplay/qmldir @@ -11,6 +11,7 @@ FlyViewToolStrip 1.0 FlyViewToolStrip.qml FlyViewToolStripActionList 1.0 FlyViewToolStripActionList.qml FlyViewVideo 1.0 FlyViewVideo.qml FlyViewWidgetLayer 1.0 FlyViewWidgetLayer.qml +FlyViewInsetViewer 1.0 FlyViewInsetViewer.qml GuidedActionActionList 1.0 GuidedActionActionList.qml GuidedActionConfirm 1.0 GuidedActionConfirm.qml GuidedActionsController 1.0 GuidedActionsController.qml