diff --git a/qgcresources.qrc b/qgcresources.qrc
index 1adcca7a6f3c8f61ad2f9c6182230a324745696b..43c1605e0b716fd69e18017e2cb2ec3f54200169 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 0000000000000000000000000000000000000000..e583b3e21b469b89dcffbcc5a1dc8e130d91fbc8
--- /dev/null
+++ b/resources/wind-rose-arrows.svg
@@ -0,0 +1,75 @@
+
+
+
+
diff --git a/resources/wind-rose.svg b/resources/wind-rose.svg
new file mode 100644
index 0000000000000000000000000000000000000000..106fe09537a60969df4fcf317083da23ae651d92
--- /dev/null
+++ b/resources/wind-rose.svg
@@ -0,0 +1,92 @@
+
+
+
+
diff --git a/src/PlanView/SurveyItemEditor.qml b/src/PlanView/SurveyItemEditor.qml
index 7415c6c583b42397c3d35e13dfea8961c48b659a..943fe66b67e9065dcdcf800c411d4dac22469f02 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;
+ }
}