5 changed files with 291 additions and 221 deletions
@ -0,0 +1,105 @@
@@ -0,0 +1,105 @@
|
||||
/**************************************************************************** |
||||
* |
||||
* (c) 2009-2016 QGROUNDCONTROL PROJECT <http://www.qgroundcontrol.org> |
||||
* |
||||
* QGroundControl is licensed according to the terms in the file |
||||
* COPYING.md in the root of the source code directory. |
||||
* |
||||
****************************************************************************/ |
||||
|
||||
import QtQuick 2.3 |
||||
import QtQuick.Controls 1.2 |
||||
|
||||
import QGroundControl 1.0 |
||||
import QGroundControl.ScreenTools 1.0 |
||||
import QGroundControl.Controls 1.0 |
||||
import QGroundControl.Palette 1.0 |
||||
|
||||
/// Guided actions confirmation dialog |
||||
Rectangle { |
||||
id: _root |
||||
border.color: qgcPal.alertBorder |
||||
border.width: 1 |
||||
width: confirmColumn.width + (_margins * 4) |
||||
height: confirmColumn.height + (_margins * 4) |
||||
radius: ScreenTools.defaultFontPixelHeight / 2 |
||||
color: qgcPal.alertBackground |
||||
opacity: 0.9 |
||||
z: guidedController.z |
||||
visible: false |
||||
|
||||
property var guidedController |
||||
property var altitudeSlider |
||||
property alias title: titleText.text |
||||
property alias message: messageText.text |
||||
property int action |
||||
property var actionData |
||||
|
||||
property real _margins: ScreenTools.defaultFontPixelWidth |
||||
|
||||
QGCPalette { id: qgcPal } |
||||
|
||||
Column { |
||||
id: confirmColumn |
||||
anchors.margins: _margins |
||||
anchors.centerIn: parent |
||||
spacing: _margins |
||||
|
||||
QGCLabel { |
||||
id: titleText |
||||
color: qgcPal.alertText |
||||
anchors.left: slider.left |
||||
anchors.right: slider.right |
||||
horizontalAlignment: Text.AlignHCenter |
||||
} |
||||
|
||||
QGCLabel { |
||||
id: messageText |
||||
color: qgcPal.alertText |
||||
anchors.left: slider.left |
||||
anchors.right: slider.right |
||||
horizontalAlignment: Text.AlignHCenter |
||||
wrapMode: Text.WordWrap |
||||
} |
||||
|
||||
// Action confirmation control |
||||
SliderSwitch { |
||||
id: slider |
||||
confirmText: qsTr("Slide to confirm") |
||||
width: Math.max(implicitWidth, ScreenTools.defaultFontPixelWidth * 30) |
||||
|
||||
onAccept: { |
||||
_root.visible = false |
||||
if (altitudeSlider.visible) { |
||||
_root.actionData = altitudeSlider.getValue() |
||||
altitudeSlider.visible = false |
||||
} |
||||
guidedController.executeAction(_root.action, _root.actionData) |
||||
} |
||||
|
||||
onReject: { |
||||
altitudeSlider.visible = false |
||||
_root.visible = false |
||||
} |
||||
} |
||||
} |
||||
|
||||
QGCColoredImage { |
||||
anchors.margins: _margins |
||||
anchors.top: parent.top |
||||
anchors.right: parent.right |
||||
width: ScreenTools.defaultFontPixelHeight |
||||
height: width |
||||
sourceSize.height: width |
||||
source: "/res/XDelete.svg" |
||||
fillMode: Image.PreserveAspectFit |
||||
color: qgcPal.alertText |
||||
QGCMouseArea { |
||||
fillItem: parent |
||||
onClicked: { |
||||
altitudeSlider.visible = false |
||||
_root.visible = false |
||||
} |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,119 @@
@@ -0,0 +1,119 @@
|
||||
/**************************************************************************** |
||||
* |
||||
* (c) 2009-2016 QGROUNDCONTROL PROJECT <http://www.qgroundcontrol.org> |
||||
* |
||||
* QGroundControl is licensed according to the terms in the file |
||||
* COPYING.md in the root of the source code directory. |
||||
* |
||||
****************************************************************************/ |
||||
|
||||
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 |
||||
|
||||
/// Dialog showing list of available guided actions |
||||
Rectangle { |
||||
id: _root |
||||
width: actionColumn.width + (_margins * 4) |
||||
height: actionColumn.height + (_margins * 4) |
||||
radius: _margins / 2 |
||||
color: qgcPal.window |
||||
opacity: 0.9 |
||||
z: guidedController.z |
||||
visible: false |
||||
|
||||
property var guidedController |
||||
property var altitudeSlider |
||||
property alias model: actionRepeater.model |
||||
|
||||
property real _margins: Math.round(ScreenTools.defaultFontPixelHeight * 0.66) |
||||
|
||||
QGCPalette { id: qgcPal } |
||||
|
||||
ColumnLayout { |
||||
id: actionColumn |
||||
anchors.margins: _root._margins |
||||
anchors.centerIn: parent |
||||
spacing: _margins |
||||
|
||||
QGCLabel { |
||||
text: qsTr("Select Action") |
||||
Layout.alignment: Qt.AlignHCenter |
||||
} |
||||
|
||||
QGCFlickable { |
||||
contentWidth: actionRow.width |
||||
contentHeight: actionRow.height |
||||
Layout.minimumHeight: actionRow.height |
||||
Layout.maximumHeight: actionRow.height |
||||
Layout.minimumWidth: _width |
||||
Layout.maximumWidth: _width |
||||
|
||||
property real _width: Math.min(root.width * 0.8, actionRow.width) |
||||
|
||||
RowLayout { |
||||
id: actionRow |
||||
spacing: ScreenTools.defaultFontPixelHeight * 2 |
||||
|
||||
Repeater { |
||||
id: actionRepeater |
||||
|
||||
ColumnLayout { |
||||
spacing: ScreenTools.defaultFontPixelHeight / 2 |
||||
visible: modelData.visible |
||||
Layout.fillHeight: true |
||||
|
||||
QGCLabel { |
||||
id: actionMessage |
||||
text: modelData.text |
||||
horizontalAlignment: Text.AlignHCenter |
||||
wrapMode: Text.WordWrap |
||||
Layout.minimumWidth: _width |
||||
Layout.maximumWidth: _width |
||||
Layout.fillHeight: true |
||||
|
||||
property real _width: ScreenTools.defaultFontPixelWidth * 25 |
||||
} |
||||
|
||||
QGCButton { |
||||
id: actionButton |
||||
anchors.horizontalCenter: parent.horizontalCenter |
||||
text: modelData.title |
||||
|
||||
onClicked: { |
||||
if (modelData.action === guidedController.actionChangeAlt) { |
||||
altitudeSlider.reset() |
||||
altitudeSlider.visible = true |
||||
} |
||||
_root.visible = false |
||||
guidedController.confirmAction(modelData.action) |
||||
} |
||||
} |
||||
} |
||||
} |
||||
} |
||||
} |
||||
} |
||||
|
||||
QGCColoredImage { |
||||
anchors.margins: _margins |
||||
anchors.top: parent.top |
||||
anchors.right: parent.right |
||||
width: ScreenTools.defaultFontPixelHeight |
||||
height: width |
||||
sourceSize.height: width |
||||
source: "/res/XDelete.svg" |
||||
fillMode: Image.PreserveAspectFit |
||||
color: qgcPal.text |
||||
|
||||
QGCMouseArea { |
||||
fillItem: parent |
||||
onClicked: _root.visible = false |
||||
} |
||||
} |
||||
} |
Loading…
Reference in new issue