Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Q
qgroundcontrol
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Valentin Platzgummer
qgroundcontrol
Commits
e89498d1
Commit
e89498d1
authored
Apr 12, 2017
by
DonLakeFlyer
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Start/Resume Mission automatically pop up
parent
2db30a14
Changes
5
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
291 additions
and
221 deletions
+291
-221
qgroundcontrol.qrc
qgroundcontrol.qrc
+2
-0
FlightDisplayView.qml
src/FlightDisplay/FlightDisplayView.qml
+62
-220
GuidedActionConfirm.qml
src/FlightDisplay/GuidedActionConfirm.qml
+105
-0
GuidedActionList.qml
src/FlightDisplay/GuidedActionList.qml
+119
-0
qmldir
src/FlightDisplay/qmldir
+3
-1
No files found.
qgroundcontrol.qrc
View file @
e89498d1
...
...
@@ -129,6 +129,8 @@
<file alias="QGroundControl/FlightDisplay/FlightDisplayViewVideo.qml">src/FlightDisplay/FlightDisplayViewVideo.qml</file>
<file alias="QGroundControl/FlightDisplay/FlightDisplayViewWidgets.qml">src/FlightDisplay/FlightDisplayViewWidgets.qml</file>
<file alias="QGroundControl/FlightDisplay/GuidedActionsController.qml">src/FlightDisplay/GuidedActionsController.qml</file>
<file alias="QGroundControl/FlightDisplay/GuidedActionConfirm.qml">src/FlightDisplay/GuidedActionConfirm.qml</file>
<file alias="QGroundControl/FlightDisplay/GuidedActionList.qml">src/FlightDisplay/GuidedActionList.qml</file>
<file alias="QGroundControl/FlightDisplay/GuidedAltitudeSlider.qml">src/FlightDisplay/GuidedAltitudeSlider.qml</file>
<file alias="QGroundControl/FlightDisplay/MultiVehicleList.qml">src/FlightDisplay/MultiVehicleList.qml</file>
<file alias="QGroundControl/FlightDisplay/qmldir">src/FlightDisplay/qmldir</file>
...
...
src/FlightDisplay/FlightDisplayView.qml
View file @
e89498d1
...
...
@@ -34,8 +34,6 @@ QGCView {
QGCPalette
{
id
:
qgcPal
;
colorGroupEnabled
:
enabled
}
property
alias
guidedController
:
guidedActionsController
property
bool
activeVehicleJoystickEnabled
:
_activeVehicle
?
_activeVehicle
.
joystickEnabled
:
false
property
var
_activeVehicle
:
QGroundControl
.
multiVehicleManager
.
activeVehicle
...
...
@@ -44,6 +42,9 @@ QGCView {
property
real
_savedZoomLevel
:
0
property
real
_margins
:
ScreenTools
.
defaultFontPixelWidth
/
2
property
real
_pipSize
:
mainWindow
.
width
*
0.2
property
alias
_guidedController
:
guidedActionsController
property
alias
_altitudeSlider
:
altitudeSlider
readonly
property
bool
isBackgroundDark
:
_mainIsMap
?
(
_flightMap
?
_flightMap
.
isSatelliteMap
:
true
)
:
true
readonly
property
real
_defaultRoll
:
0
...
...
@@ -159,7 +160,7 @@ QGCView {
id
:
_flightMap
anchors.fill
:
parent
missionController
:
flyMissionController
guidedActionsController
:
guidedController
guidedActionsController
:
_
guidedController
flightWidgets
:
flightDisplayViewWidgets
rightPanelWidth
:
ScreenTools
.
defaultFontPixelHeight
*
9
qgcView
:
root
...
...
@@ -352,66 +353,66 @@ QGCView {
z
:
_panel
.
z
+
4
title
:
qsTr
(
"
Fly
"
)
maxHeight
:
(
_flightVideo
.
visible
?
_flightVideo
.
y
:
parent
.
height
)
-
toolStrip
.
y
buttonVisible
:
[
guidedController
.
showTakeoff
||
!
guidedController
.
showLand
,
guidedController
.
showLand
&&
!
guidedController
.
showTakeoff
,
true
,
true
,
true
,
guidedController
.
smartShotsAvailable
]
buttonEnabled
:
[
guidedController
.
showTakeoff
,
guidedController
.
showLand
,
guidedController
.
showRTL
,
guidedController
.
showPause
,
_anyActionAvailable
,
_anySmartShotAvailable
]
buttonVisible
:
[
_guidedController
.
showTakeoff
||
!
_guidedController
.
showLand
,
_guidedController
.
showLand
&&
!
_guidedController
.
showTakeoff
,
true
,
true
,
true
,
_
guidedController
.
smartShotsAvailable
]
buttonEnabled
:
[
_guidedController
.
showTakeoff
,
_guidedController
.
showLand
,
_guidedController
.
showRTL
,
_
guidedController
.
showPause
,
_anyActionAvailable
,
_anySmartShotAvailable
]
property
bool
_anyActionAvailable
:
guidedController
.
showEmergenyStop
||
guidedController
.
showStartMission
||
guidedController
.
showResumeMission
||
guidedController
.
showChangeAlt
||
guidedController
.
showLandAbort
property
bool
_anySmartShotAvailable
:
guidedController
.
showOrbit
property
bool
_anyActionAvailable
:
_guidedController
.
showEmergenyStop
||
_guidedController
.
showStartMission
||
_guidedController
.
showResumeMission
||
_guidedController
.
showChangeAlt
||
_
guidedController
.
showLandAbort
property
bool
_anySmartShotAvailable
:
_
guidedController
.
showOrbit
property
var
_actionModel
:
[
{
title
:
guidedController
.
startMissionTitle
,
text
:
guidedController
.
startMissionMessage
,
action
:
guidedController
.
actionStartMission
,
visible
:
guidedController
.
showStartMission
title
:
_
guidedController
.
startMissionTitle
,
text
:
_
guidedController
.
startMissionMessage
,
action
:
_
guidedController
.
actionStartMission
,
visible
:
_
guidedController
.
showStartMission
},
{
title
:
guidedController
.
resumeMissionTitle
,
text
:
guidedController
.
resumeMissionMessage
,
action
:
guidedController
.
actionResumeMission
,
visible
:
guidedController
.
showResumeMission
title
:
_
guidedController
.
resumeMissionTitle
,
text
:
_
guidedController
.
resumeMissionMessage
,
action
:
_
guidedController
.
actionResumeMission
,
visible
:
_
guidedController
.
showResumeMission
},
{
title
:
guidedController
.
changeAltTitle
,
text
:
guidedController
.
changeAltMessage
,
action
:
guidedController
.
actionChangeAlt
,
visible
:
guidedController
.
showChangeAlt
title
:
_
guidedController
.
changeAltTitle
,
text
:
_
guidedController
.
changeAltMessage
,
action
:
_
guidedController
.
actionChangeAlt
,
visible
:
_
guidedController
.
showChangeAlt
},
{
title
:
guidedController
.
landAbortTitle
,
text
:
guidedController
.
landAbortMessage
,
action
:
guidedController
.
actionLandAbort
,
visible
:
guidedController
.
showLandAbort
title
:
_
guidedController
.
landAbortTitle
,
text
:
_
guidedController
.
landAbortMessage
,
action
:
_
guidedController
.
actionLandAbort
,
visible
:
_
guidedController
.
showLandAbort
}
]
property
var
_smartShotModel
:
[
{
title
:
guidedController
.
orbitTitle
,
text
:
guidedController
.
orbitMessage
,
action
:
guidedController
.
actionOrbit
,
visible
:
guidedController
.
showOrbit
title
:
_
guidedController
.
orbitTitle
,
text
:
_
guidedController
.
orbitMessage
,
action
:
_
guidedController
.
actionOrbit
,
visible
:
_
guidedController
.
showOrbit
}
]
model
:
[
{
name
:
guidedController
.
takeoffTitle
,
name
:
_
guidedController
.
takeoffTitle
,
iconSource
:
"
/res/takeoff.svg
"
,
action
:
guidedController
.
actionTakeoff
action
:
_
guidedController
.
actionTakeoff
},
{
name
:
guidedController
.
landTitle
,
name
:
_
guidedController
.
landTitle
,
iconSource
:
"
/res/land.svg
"
,
action
:
guidedController
.
actionLand
action
:
_
guidedController
.
actionLand
},
{
name
:
guidedController
.
rtlTitle
,
name
:
_
guidedController
.
rtlTitle
,
iconSource
:
"
/res/rtl.svg
"
,
action
:
guidedController
.
actionRTL
action
:
_
guidedController
.
actionRTL
},
{
name
:
guidedController
.
pauseTitle
,
name
:
_
guidedController
.
pauseTitle
,
iconSource
:
"
/res/pause-mission.svg
"
,
action
:
guidedController
.
actionPause
action
:
_
guidedController
.
actionPause
},
{
name
:
qsTr
(
"
Action
"
),
...
...
@@ -442,7 +443,7 @@ QGCView {
guidedActionList
.
visible
=
true
}
}
else
{
guidedController
.
confirmAction
(
action
)
_
guidedController
.
confirmAction
(
action
)
}
}
}
...
...
@@ -452,6 +453,18 @@ QGCView {
missionController
:
flyMissionController
z
:
_flightVideoPipControl
.
z
+
1
onShowStartMissionChanged
:
{
if
(
showStartMission
)
{
confirmAction
(
actionStartMission
)
}
}
onShowResumeMissionChanged
:
{
if
(
showResumeMission
)
{
confirmAction
(
actionResumeMission
)
}
}
onShowConfirmAction
:
{
guidedActionConfirm
.
title
=
title
guidedActionConfirm
.
message
=
message
...
...
@@ -461,193 +474,22 @@ QGCView {
}
}
Rectangle
{
GuidedActionConfirm
{
id
:
guidedActionConfirm
anchors.margins
:
_margins
anchors.bottom
:
parent
.
bottom
anchors.bottomMargin
:
ScreenTools
.
defaultFontPixelHeight
*
4
anchors.horizontalCenter
:
parent
.
horizontalCenter
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
alias
title
:
titleText
.
text
property
alias
message
:
messageText
.
text
property
int
action
property
var
actionData
property
real
_margins
:
ScreenTools
.
defaultFontPixelWidth
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
:
{
guidedActionConfirm
.
visible
=
false
if
(
altitudeSlider
.
visible
)
{
guidedActionConfirm
.
actionData
=
altitudeSlider
.
getValue
()
altitudeSlider
.
visible
=
false
}
guidedController
.
executeAction
(
guidedActionConfirm
.
action
,
guidedActionConfirm
.
actionData
)
}
onReject
:
{
altitudeSlider
.
visible
=
false
guidedActionConfirm
.
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
guidedActionConfirm
.
visible
=
false
}
}
}
guidedController
:
_guidedController
altitudeSlider
:
_altitudeSlider
}
Rectangle
{
GuidedActionList
{
id
:
guidedActionList
anchors.margins
:
_margins
anchors.bottom
:
parent
.
bottom
anchors.bottomMargin
:
ScreenTools
.
defaultFontPixelHeight
*
4
anchors.horizontalCenter
:
parent
.
horizontalCenter
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
alias
model
:
actionRepeater
.
model
property
real
_margins
:
Math
.
round
(
ScreenTools
.
defaultFontPixelHeight
*
0.66
)
ColumnLayout
{
id
:
actionColumn
anchors.margins
:
guidedActionList
.
_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
}
guidedActionList
.
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
:
guidedActionList
.
visible
=
false
}
}
guidedController
:
_guidedController
altitudeSlider
:
_altitudeSlider
}
//-- Altitude slider
...
...
@@ -658,7 +500,7 @@ QGCView {
anchors.topMargin
:
ScreenTools
.
toolbarHeight
+
_margins
anchors.top
:
parent
.
top
anchors.bottom
:
parent
.
bottom
z
:
guidedController
.
z
z
:
_
guidedController
.
z
radius
:
ScreenTools
.
defaultFontPixelWidth
/
2
width
:
ScreenTools
.
defaultFontPixelWidth
*
10
color
:
qgcPal
.
window
...
...
src/FlightDisplay/GuidedActionConfirm.qml
0 → 100644
View file @
e89498d1
/****************************************************************************
*
* (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
}
}
}
}
src/FlightDisplay/GuidedActionList.qml
0 → 100644
View file @
e89498d1
/****************************************************************************
*
* (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
}
}
}
src/FlightDisplay/qmldir
View file @
e89498d1
...
...
@@ -4,7 +4,9 @@ FlightDisplayView 1.0 FlightDisplayView.qml
FlightDisplayViewMap 1.0 FlightDisplayViewMap.qml
FlightDisplayViewVideo 1.0 FlightDisplayViewVideo.qml
FlightDisplayViewWidgets 1.0 FlightDisplayViewWidgets.qml
GuidedActionsConfirm 1.0 GuidedActionsConfirm.qml
GuidedActionsController 1.0 GuidedActionsController.qml
GuidedActionsList 1.0 GuidedActionsList.qml
GuidedAltitudeSlider 1.0 GuidedAltitudeSlider.qml
GuidedCommands 1.0 GuidedCommands.qml
MultiVehicleList 1.0 MultiVehicleList.qml
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment