From 5040a42d36a2c32928785ae7423800719a7b175b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patrick=20Jos=C3=A9=20Pereira?= Date: Tue, 18 Apr 2017 17:55:34 -0300 Subject: [PATCH] Add wind rose in survey pattern editor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Patrick José Pereira --- qgcresources.qrc | 2 + resources/wind-rose-arrows.svg | 75 ++++++++++++++++++++ resources/wind-rose.svg | 92 ++++++++++++++++++++++++ src/PlanView/SurveyItemEditor.qml | 112 +++++++++++++++++++++++++++++- 4 files changed, 280 insertions(+), 1 deletion(-) create mode 100644 resources/wind-rose-arrows.svg create mode 100644 resources/wind-rose.svg diff --git a/qgcresources.qrc b/qgcresources.qrc index 1adcca7a6..43c1605e0 100644 --- a/qgcresources.qrc +++ b/qgcresources.qrc @@ -193,6 +193,8 @@ resources/takeoff.svg resources/TrashDelete.svg resources/waves.svg + resources/wind-rose.svg + resources/wind-rose-arrows.svg resources/XDelete.svg resources/XDeleteBlack.svg resources/icons/qgroundcontrol.ico diff --git a/resources/wind-rose-arrows.svg b/resources/wind-rose-arrows.svg new file mode 100644 index 000000000..e583b3e21 --- /dev/null +++ b/resources/wind-rose-arrows.svg @@ -0,0 +1,75 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + + + diff --git a/resources/wind-rose.svg b/resources/wind-rose.svg new file mode 100644 index 000000000..106fe0953 --- /dev/null +++ b/resources/wind-rose.svg @@ -0,0 +1,92 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + diff --git a/src/PlanView/SurveyItemEditor.qml b/src/PlanView/SurveyItemEditor.qml index 7415c6c58..943fe66b6 100644 --- a/src/PlanView/SurveyItemEditor.qml +++ b/src/PlanView/SurveyItemEditor.qml @@ -1,6 +1,8 @@ import QtQuick 2.3 import QtQuick.Controls 1.2 +import QtQuick.Controls.Styles 1.4 import QtQuick.Dialogs 1.2 +import QtQuick.Extras 1.4 import QtQuick.Layouts 1.2 import QGroundControl 1.0 @@ -398,10 +400,38 @@ Rectangle { columns: 2 visible: gridHeader.checked - QGCLabel { text: qsTr("Angle") } + GridLayout { + anchors.left: parent.left + anchors.right: parent.right + columnSpacing: _margin + rowSpacing: _margin + columns: 3 + visible: gridHeader.checked + + QGCLabel { + id: angleText + text: qsTr("Angle") + } + + Item { Layout.fillWidth: true } + + ToolButton { + id: windRoseButton + anchors.verticalCenter: angleText.verticalCenter + iconSource: "/res/wind-rose.svg" + + onClicked: { + var cords = windRoseButton.mapToItem(_root, 0, 0) + windRose.popup(cords.x + windRoseButton.width/2, cords.y + windRoseButton.height/2); + } + } + } + FactTextField { + id: gridAngleText fact: missionItem.gridAngle Layout.fillWidth: true + Layout.columnSpan: 1 } QGCLabel { text: qsTr("Turnaround dist") } @@ -516,4 +546,84 @@ Rectangle { } } } + + + PieMenu { + id: windRose + triggerMode: TriggerMode.TriggerOnPress + height: 2.75*windRoseButton.height + width: 2.75*windRoseButton.width + + onVisibleChanged: { + windRoseSvg.visible = visible + } + + style: PieMenuStyle { + cancelRadius: windRoseButton.height*0.5 + shadowRadius: 0 + startAngle: -22.5 + endAngle: 337.5 + } + + + MenuItem { + onTriggered: { + gridAngleText.text = "-90"; + gridAngleText.editingFinished(); + } + } + MenuItem { + onTriggered: { + gridAngleText.text = "-45"; + gridAngleText.editingFinished(); + } + } + MenuItem { + onTriggered: { + gridAngleText.text = "0"; + gridAngleText.editingFinished(); + } + } + MenuItem { + onTriggered: { + gridAngleText.text = "45"; + gridAngleText.editingFinished(); + } + } + MenuItem { + onTriggered: { + gridAngleText.text = "90"; + gridAngleText.editingFinished(); + } + } + MenuItem { + onTriggered: { + gridAngleText.text = "135"; + gridAngleText.editingFinished(); + } + } + MenuItem { + onTriggered: { + gridAngleText.text = "180"; + gridAngleText.editingFinished(); + } + } + MenuItem { + onTriggered: { + gridAngleText.text = "-135"; + gridAngleText.editingFinished(); + } + } + } + + Image { + id: windRoseSvg + source: "/res/wind-rose-arrows.svg" + visible: false + width: windRose.width + height: windRose.height + x: windRose.x; + y: windRose.y; + z: windRose.z; + } } -- 2.22.0