5 changed files with 291 additions and 221 deletions
@ -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 @@ |
|||||||
|
/**************************************************************************** |
||||||
|
* |
||||||
|
* (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