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 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + + + 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 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + 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; + } }