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
b14e1a46
Commit
b14e1a46
authored
Oct 26, 2015
by
dogmaphobic
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Done with first pass of the Flight View re-work.
parent
a9a17e88
Changes
10
Show whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
375 additions
and
336 deletions
+375
-336
qgroundcontrol.qrc
qgroundcontrol.qrc
+4
-1
FlightDisplayView.qml
src/FlightDisplay/FlightDisplayView.qml
+80
-112
FlightDisplayViewWidgets.qml
src/FlightDisplay/FlightDisplayViewWidgets.qml
+202
-0
qmldir
src/FlightDisplay/qmldir
+0
-1
FlightMap.qml
src/FlightMap/FlightMap.qml
+3
-1
ZoomMinus.svg
src/FlightMap/Images/ZoomMinus.svg
+11
-5
ZoomPlus.svg
src/FlightMap/Images/ZoomPlus.svg
+9
-4
VehicleMapItem.qml
src/FlightMap/MapItems/VehicleMapItem.qml
+4
-3
QGCInstrumentWidget.qml
src/FlightMap/Widgets/QGCInstrumentWidget.qml
+48
-8
MissionEditor.qml
src/MissionEditor/MissionEditor.qml
+14
-201
No files found.
qgroundcontrol.qrc
View file @
b14e1a46
...
@@ -77,11 +77,14 @@
...
@@ -77,11 +77,14 @@
<file alias="FlightDisplayView.qml">src/FlightDisplay/FlightDisplayView.qml</file>
<file alias="FlightDisplayView.qml">src/FlightDisplay/FlightDisplayView.qml</file>
<file alias="FlightDisplayWidget.qml">src/FlightDisplay/FlightDisplayWidget.qml</file>
<file alias="FlightDisplayWidget.qml">src/FlightDisplay/FlightDisplayWidget.qml</file>
<file alias="MissionEditor.qml">src/MissionEditor/MissionEditor.qml</file>
<file alias="MissionEditor.qml">src/MissionEditor/MissionEditor.qml</file>
<file alias="MissionEditorHelp.qml">src/MissionEditor/MissionEditorHelp.qml</file>
<!-- FlightDisplay module -->
<!-- FlightDisplay module -->
<file alias="QGroundControl/FlightDisplay/qmldir">src/FlightDisplay/qmldir</file>
<file alias="QGroundControl/FlightDisplay/qmldir">src/FlightDisplay/qmldir</file>
<file alias="QGroundControl/FlightDisplay/FlightDisplayView.qml">src/FlightDisplay/FlightDisplayView.qml</file>
<file alias="QGroundControl/FlightDisplay/FlightDisplayView.qml">src/FlightDisplay/FlightDisplayView.qml</file>
<file alias="QGroundControl/FlightDisplay/FlightDisplayViewDelayLoad.qml">src/FlightDisplay/FlightDisplayViewDelayLoad.qml</file>
<file alias="QGroundControl/FlightDisplay/FlightDisplayViewMap.qml">src/FlightDisplay/FlightDisplayViewMap.qml</file>
<file alias="QGroundControl/FlightDisplay/FlightDisplayViewVideo.qml">src/FlightDisplay/FlightDisplayViewVideo.qml</file>
<file alias="QGroundControl/FlightDisplay/FlightDisplayViewWidgets.qml">src/FlightDisplay/FlightDisplayViewWidgets.qml</file>
<!-- FlightMap module -->
<!-- FlightMap module -->
<file alias="QGroundControl/FlightMap/qmldir">src/FlightMap/qmldir</file>
<file alias="QGroundControl/FlightMap/qmldir">src/FlightMap/qmldir</file>
...
...
src/FlightDisplay/FlightDisplayView.qml
View file @
b14e1a46
...
@@ -41,16 +41,6 @@ import QGroundControl.Controllers 1.0
...
@@ -41,16 +41,6 @@ import QGroundControl.Controllers 1.0
Item
{
Item
{
id
:
root
id
:
root
property
alias
latitude
:
flightMap
.
latitude
property
alias
longitude
:
flightMap
.
longitude
// Top margin for all widgets. Used to prevent overlap with the toolbar
property
real
topMargin
:
0
// Used by parent to hide widgets when it displays something above in the z order.
// Prevents z order drawing problems.
property
bool
hideWidgets
:
false
QGCPalette
{
id
:
qgcPal
;
colorGroupEnabled
:
enabled
}
QGCPalette
{
id
:
qgcPal
;
colorGroupEnabled
:
enabled
}
property
var
_activeVehicle
:
multiVehicleManager
.
activeVehicle
property
var
_activeVehicle
:
multiVehicleManager
.
activeVehicle
...
@@ -67,7 +57,7 @@ Item {
...
@@ -67,7 +57,7 @@ Item {
readonly
property
string
_mapName
:
"
FlightDisplayView
"
readonly
property
string
_mapName
:
"
FlightDisplayView
"
readonly
property
string
_showMapBackgroundKey
:
"
/showMapBackground
"
readonly
property
string
_showMapBackgroundKey
:
"
/showMapBackground
"
readonly
property
var
_flightMap
:
flightMap
property
bool
_mainIsMap
:
!
_controller
.
hasVideo
property
real
_roll
:
_activeVehicle
?
(
isNaN
(
_activeVehicle
.
roll
)
?
_defaultRoll
:
_activeVehicle
.
roll
)
:
_defaultRoll
property
real
_roll
:
_activeVehicle
?
(
isNaN
(
_activeVehicle
.
roll
)
?
_defaultRoll
:
_activeVehicle
.
roll
)
:
_defaultRoll
property
real
_pitch
:
_activeVehicle
?
(
isNaN
(
_activeVehicle
.
pitch
)
?
_defaultPitch
:
_activeVehicle
.
pitch
)
:
_defaultPitch
property
real
_pitch
:
_activeVehicle
?
(
isNaN
(
_activeVehicle
.
pitch
)
?
_defaultPitch
:
_activeVehicle
.
pitch
)
:
_defaultPitch
...
@@ -80,123 +70,101 @@ Item {
...
@@ -80,123 +70,101 @@ Item {
property
real
_airSpeed
:
_activeVehicle
?
_activeVehicle
.
airSpeed
:
_defaultAirSpeed
property
real
_airSpeed
:
_activeVehicle
?
_activeVehicle
.
airSpeed
:
_defaultAirSpeed
property
real
_climbRate
:
_activeVehicle
?
_activeVehicle
.
climbRate
:
_defaultClimbRate
property
real
_climbRate
:
_activeVehicle
?
_activeVehicle
.
climbRate
:
_defaultClimbRate
property
bool
_showMap
:
getBool
(
QGroundControl
.
flightMapSettings
.
loadMapSetting
(
flightMap
.
mapName
,
_showMapBackgroundKey
,
"
1
"
))
property
var
_flightMap
:
null
property
var
_flightVideo
:
null
property
var
_savedZoomLevel
:
0
FlightDisplayViewController
{
id
:
_controller
}
FlightDisplayViewController
{
id
:
_controller
}
MissionController
{
MissionController
{
id
:
_missionController
id
:
_missionController
Component.onCompleted
:
start
(
false
/* editMode */
)
Component.onCompleted
:
start
(
false
/* editMode */
)
}
}
ExclusiveGroup
{
function
reloadContents
()
{
id
:
_dropButtonsExclusiveGroup
if
(
_flightVideo
)
{
_flightVideo
.
visible
=
false
}
}
if
(
_mainIsMap
)
{
// Validate _showMap setting
mainLoader
.
source
=
"
FlightDisplayViewMap.qml
"
Component.onCompleted
:
{
pipLoader
.
source
=
"
FlightDisplayViewVideo.qml
"
delayLoader
.
source
=
"
FlightDisplayViewDelayLoad.qml
"
}
else
{
mainLoader
.
source
=
"
FlightDisplayViewVideo.qml
"
// We have to be careful to not reference root properties in a function which is in a subcomponent
pipLoader
.
source
=
"
FlightDisplayViewMap.qml
"
// until the root component has completed loading. Otherwise you get undefined references.
flightMap
.
rootLoadCompleted
=
true
flightMap
.
updateMapPosition
(
true
/* force */
)
_setShowMap
(
_showMap
)
}
function
getBool
(
value
)
{
return
value
===
'
0
'
?
false
:
true
;
}
}
function
setBool
(
value
)
{
return
value
?
"
1
"
:
"
0
"
;
}
}
function
_setShowMap
(
showMap
)
{
Component.onCompleted
:
{
_showMap
=
_controller
.
hasVideo
?
showMap
:
true
reloadContents
();
QGroundControl
.
flightMapSettings
.
saveMapSetting
(
flightMap
.
mapName
,
_showMapBackgroundKey
,
setBool
(
_showMap
))
widgetsLoader
.
source
=
"
FlightDisplayViewWidgets.qml
"
}
}
FlightMap
{
//-- Main Window
id
:
flightMap
Loader
{
id
:
mainLoader
anchors.fill
:
parent
anchors.fill
:
parent
mapName
:
_mapName
onLoaded
:
{
visible
:
_showMap
if
(
_mainIsMap
)
{
latitude
:
root
.
_defaultCoordinate
.
latitude
_flightMap
=
item
longitude
:
root
.
_defaultCoordinate
.
longitude
if
(
_savedZoomLevel
!=
0
)
_flightMap
.
zoomLevel
=
_savedZoomLevel
property
var
rootVehicleCoordinate
:
_vehicleCoordinate
else
property
bool
rootLoadCompleted
:
false
_savedZoomLevel
=
_flightMap
.
zoomLevel
_flightMap
.
updateMapPosition
(
true
/* force */
)
property
bool
_followVehicle
:
true
}
else
{
_flightVideo
=
item
onRootVehicleCoordinateChanged
:
updateMapPosition
(
false
/* force */
)
_flightVideo
.
visible
=
true
}
function
updateMapPosition
(
force
)
{
}
if
((
_followVehicle
||
force
)
&&
rootLoadCompleted
)
{
}
flightMap
.
latitude
=
root
.
_vehicleCoordinate
.
latitude
flightMap
.
longitude
=
root
.
_vehicleCoordinate
.
longitude
//-- PIP Window
}
Rectangle
{
}
id
:
pip
visible
:
_controller
.
hasVideo
// Home position
anchors.margins
:
ScreenTools
.
defaultFontPixelHeight
MissionItemIndicator
{
anchors.left
:
parent
.
left
label
:
"
H
"
anchors.bottom
:
parent
.
bottom
coordinate
:
(
_activeVehicle
&&
_activeVehicle
.
homePositionAvailable
)
?
_activeVehicle
.
homePosition
:
QtPositioning
.
coordinate
(
0
,
0
)
height
:
ScreenTools
.
defaultFontPixelSize
*
(
9
)
visible
:
_activeVehicle
?
_activeVehicle
.
homePositionAvailable
:
false
width
:
ScreenTools
.
defaultFontPixelSize
*
(
9
)
*
(
16
/
9
)
z
:
QGroundControl
.
zOrderMapItems
color
:
"
#000010
"
}
border.width
:
4
radius
:
4
// Add trajectory points to the map
border.color
:
{
MapItemView
{
if
(
_mainIsMap
&&
_flightMap
!=
null
)
model
:
multiVehicleManager
.
activeVehicle
?
multiVehicleManager
.
activeVehicle
.
trajectoryPoints
:
0
return
_flightMap
.
isSatelliteMap
?
Qt
.
rgba
(
1
,
1
,
1
,
0.75
)
:
Qt
.
rgba
(
0
,
0
,
0
,
0.75
)
else
delegate
:
return
Qt
.
rgba
(
0
,
0
,
0
,
0.75
)
MapPolyline
{
line.width
:
3
line.color
:
"
orange
"
z
:
QGroundControl
.
zOrderMapItems
-
1
path
:
[
{
latitude
:
object
.
coordinate1
.
latitude
,
longitude
:
object
.
coordinate1
.
longitude
},
{
latitude
:
object
.
coordinate2
.
latitude
,
longitude
:
object
.
coordinate2
.
longitude
},
]
}
}
// Add the vehicles to the map
MapItemView
{
model
:
multiVehicleManager
.
vehicles
delegate
:
VehicleMapItem
{
vehicle
:
object
coordinate
:
object
.
coordinate
isSatellite
:
flightMap
.
isSatelliteMap
z
:
QGroundControl
.
zOrderMapItems
}
}
Loader
{
id
:
pipLoader
anchors.fill
:
parent
anchors.margins
:
2
onLoaded
:
{
if
(
_mainIsMap
)
{
_flightVideo
=
item
_flightVideo
.
visible
=
true
}
else
{
_flightMap
=
item
_savedZoomLevel
=
_flightMap
.
zoomLevel
_flightMap
.
zoomLevel
=
_savedZoomLevel
-
3
}
}
pip
.
visible
=
_controller
.
hasVideo
// Add the mission items to the map
MissionItemView
{
model
:
_missionController
.
missionItems
}
}
// Add lines between waypoints
MissionLineView
{
model
:
_missionController
.
waypointLines
}
}
// Used to make pinch zoom work
MouseArea
{
MouseArea
{
anchors.fill
:
parent
anchors.fill
:
parent
onClicked
:
{
_mainIsMap
=
!
_mainIsMap
pip
.
visible
=
false
reloadContents
();
}
}
}
}
}
// Flight Map
//-- Widgets
Loader
{
Loader
{
id
:
delay
Loader
id
:
widgets
Loader
anchors.fill
:
parent
anchors.fill
:
parent
}
}
}
}
src/FlightDisplay/FlightDisplayView
DelayLoad
.qml
→
src/FlightDisplay/FlightDisplayView
Widgets
.qml
View file @
b14e1a46
...
@@ -39,32 +39,8 @@ import QGroundControl.FlightMap 1.0
...
@@ -39,32 +39,8 @@ import QGroundControl.FlightMap 1.0
/// FlightDisplayViewControl.
/// FlightDisplayViewControl.
Item
{
Item
{
QGCVideoBackground
{
ExclusiveGroup
{
anchors.fill
:
parent
id
:
_dropButtonsExclusiveGroup
display
:
_controller
.
videoSurface
receiver
:
_controller
.
videoReceiver
visible
:
!
_showMap
QGCCompassHUD
{
id
:
compassHUD
y
:
root
.
height
*
0.7
x
:
root
.
width
*
0.5
-
ScreenTools
.
defaultFontPixelSize
*
(
5
)
width
:
ScreenTools
.
defaultFontPixelSize
*
(
10
)
height
:
ScreenTools
.
defaultFontPixelSize
*
(
10
)
heading
:
_heading
active
:
multiVehicleManager
.
activeVehicleAvailable
z
:
QGroundControl
.
zOrderWidgets
}
QGCAttitudeHUD
{
id
:
attitudeHUD
rollAngle
:
_roll
pitchAngle
:
_pitch
width
:
ScreenTools
.
defaultFontPixelSize
*
(
30
)
height
:
ScreenTools
.
defaultFontPixelSize
*
(
30
)
active
:
multiVehicleManager
.
activeVehicleAvailable
z
:
QGroundControl
.
zOrderWidgets
}
}
}
//-- Vehicle GPS lock display
//-- Vehicle GPS lock display
...
@@ -87,25 +63,43 @@ Item {
...
@@ -87,25 +63,43 @@ Item {
}
}
}
}
//-- Dismiss Drop Down (if any)
MouseArea
{
anchors.fill
:
parent
enabled
:
_dropButtonsExclusiveGroup
.
current
!=
null
onClicked
:
{
if
(
_dropButtonsExclusiveGroup
.
current
)
_dropButtonsExclusiveGroup
.
current
.
checked
=
false
_dropButtonsExclusiveGroup
.
current
=
null
}
}
//-- Instrument Pannel
//-- Instrument Pannel
QGCInstrumentWidget
{
QGCInstrumentWidget
{
anchors.margins
:
ScreenTools
.
defaultFontPixelHeight
anchors.margins
:
ScreenTools
.
defaultFontPixelHeight
anchors.left
:
parent
.
left
anchors.bottom
:
parent
.
bottom
anchors.bottom
:
parent
.
bottom
anchors.right
:
parent
.
right
size
:
ScreenTools
.
defaultFontPixelSize
*
(
9
)
size
:
ScreenTools
.
defaultFontPixelSize
*
(
9
)
active
:
_activeVehicle
!=
null
heading
:
_heading
heading
:
_heading
rollAngle
:
_roll
rollAngle
:
_roll
pitchAngle
:
_pitch
pitchAngle
:
_pitch
isSatellite
:
_mainIsMap
?
_flightMap
?
_flightMap
.
isSatelliteMap
:
true
:
true
z
:
QGroundControl
.
zOrderWidgets
z
:
QGroundControl
.
zOrderWidgets
}
}
//-- Vertical Tool Buttons
Column
{
id
:
toolColumn
anchors.margins
:
ScreenTools
.
defaultFontPixelHeight
anchors.left
:
parent
.
left
anchors.top
:
parent
.
top
spacing
:
ScreenTools
.
defaultFontPixelHeight
//-- Map Center Control
//-- Map Center Control
DropButton
{
DropButton
{
id
:
centerMapDropButton
id
:
centerMapDropButton
anchors.rightMargin
:
ScreenTools
.
defaultFontPixelHeight
dropDirection
:
dropRight
anchors.right
:
mapTypeButton
.
left
anchors.top
:
mapTypeButton
.
top
dropDirection
:
dropDown
buttonImage
:
"
/qmlimages/MapCenter.svg
"
buttonImage
:
"
/qmlimages/MapCenter.svg
"
viewportMargins
:
ScreenTools
.
defaultFontPixelWidth
/
2
viewportMargins
:
ScreenTools
.
defaultFontPixelWidth
/
2
exclusiveGroup
:
_dropButtonsExclusiveGroup
exclusiveGroup
:
_dropButtonsExclusiveGroup
...
@@ -118,12 +112,12 @@ Item {
...
@@ -118,12 +112,12 @@ Item {
QGCCheckBox
{
QGCCheckBox
{
id
:
followVehicleCheckBox
id
:
followVehicleCheckBox
text
:
"
Follow Vehicle
"
text
:
"
Follow Vehicle
"
checked
:
flightMap
.
_followVehicl
e
checked
:
_flightMap
?
_flightMap
.
_followVehicle
:
fals
e
anchors.baseline
:
centerMapButton
.
baseline
anchors.baseline
:
centerMapButton
.
baseline
onClicked
:
{
onClicked
:
{
centerMapDropButton
.
hideDropDown
()
_dropButtonsExclusiveGroup
.
current
=
null
flightMap
.
_followVehicle
=
!
flightMap
.
_followVehicle
_flightMap
.
_followVehicle
=
!
_
flightMap
.
_followVehicle
}
}
}
}
...
@@ -135,9 +129,9 @@ Item {
...
@@ -135,9 +129,9 @@ Item {
property
var
activeVehicle
:
multiVehicleManager
.
activeVehicle
property
var
activeVehicle
:
multiVehicleManager
.
activeVehicle
onClicked
:
{
onClicked
:
{
centerMapDropButton
.
hideDropDown
()
_dropButtonsExclusiveGroup
.
current
=
null
flightMap
.
latitude
=
activeVehicle
.
latitude
_flightMap
.
latitude
=
activeVehicle
.
latitude
flightMap
.
longitude
=
activeVehicle
.
longitude
_
flightMap
.
longitude
=
activeVehicle
.
longitude
}
}
}
}
}
}
...
@@ -147,11 +141,7 @@ Item {
...
@@ -147,11 +141,7 @@ Item {
//-- Map Type Control
//-- Map Type Control
DropButton
{
DropButton
{
id
:
mapTypeButton
id
:
mapTypeButton
anchors.topMargin
:
topMargin
dropDirection
:
dropRight
anchors.rightMargin
:
ScreenTools
.
defaultFontPixelHeight
anchors.top
:
parent
.
top
anchors.right
:
parent
.
right
dropDirection
:
dropDown
buttonImage
:
"
/qmlimages/MapType.svg
"
buttonImage
:
"
/qmlimages/MapType.svg
"
viewportMargins
:
ScreenTools
.
defaultFontPixelWidth
/
2
viewportMargins
:
ScreenTools
.
defaultFontPixelWidth
/
2
exclusiveGroup
:
_dropButtonsExclusiveGroup
exclusiveGroup
:
_dropButtonsExclusiveGroup
...
@@ -166,12 +156,12 @@ Item {
...
@@ -166,12 +156,12 @@ Item {
QGCButton
{
QGCButton
{
checkable
:
true
checkable
:
true
checked
:
flightMap
.
mapType
==
text
checked
:
_flightMap
?
_flightMap
.
mapType
==
text
:
false
text
:
modelData
text
:
modelData
onClicked
:
{
onClicked
:
{
flightMap
.
mapType
=
text
_
flightMap
.
mapType
=
text
mapTypeButton
.
hideDropDown
()
_dropButtonsExclusiveGroup
.
current
=
null
}
}
}
}
}
}
...
@@ -179,44 +169,34 @@ Item {
...
@@ -179,44 +169,34 @@ Item {
}
}
}
}
//-- Temporary Options Button
//-- Zoom Map In
QGCButton
{
RoundButton
{
id
:
optionsButton
id
:
mapZoomPlus
x
:
_flightMap
.
mapWidgets
.
x
visible
:
_mainIsMap
y
:
_flightMap
.
mapWidgets
.
y
-
height
-
(
ScreenTools
.
defaultFontPixelHeight
/
2
)
buttonImage
:
"
/qmlimages/ZoomPlus.svg
"
exclusiveGroup
:
_dropButtonsExclusiveGroup
z
:
QGroundControl
.
zOrderWidgets
z
:
QGroundControl
.
zOrderWidgets
width
:
_flightMap
.
mapWidgets
.
width
onClicked
:
{
text
:
"
Options
"
if
(
_flightMap
)
menu
:
optionsMenu
_flightMap
.
zoomLevel
+=
0.5
visible
:
_controller
.
hasVideo
&&
!
hideWidgets
checked
=
false
ExclusiveGroup
{
id
:
backgroundTypeGroup
}
}
Menu
{
id
:
optionsMenu
MenuItem
{
id
:
mapBackgroundMenuItem
exclusiveGroup
:
backgroundTypeGroup
checkable
:
true
checked
:
_showMap
text
:
"
Show map as background
"
onTriggered
:
_setShowMap
(
true
)
}
}
MenuItem
{
//-- Zoom Map Out
id
:
videoBackgroundMenuItem
RoundButton
{
exclusiveGroup
:
backgroundTypeGroup
id
:
mapZoomMinus
checkable
:
true
visible
:
_mainIsMap
checked
:
!
_showMap
buttonImage
:
"
/qmlimages/ZoomMinus.svg
"
text
:
"
Show video as background
"
exclusiveGroup
:
_dropButtonsExclusiveGroup
z
:
QGroundControl
.
zOrderWidgets
onTriggered
:
_setShowMap
(
false
)
onClicked
:
{
if
(
_flightMap
)
_flightMap
.
zoomLevel
-=
0.5
checked
=
false
}
}
}
}
}
}
}
}
src/FlightDisplay/qmldir
View file @
b14e1a46
Module QGroundControl.FlightDisplay
Module QGroundControl.FlightDisplay
FlightDisplayView 1.0 FlightDisplayView.qml
FlightDisplayView 1.0 FlightDisplayView.qml
FlightDisplayViewDelayLoad 1.0 FlightDisplayViewDelayLoad.qml
src/FlightMap/FlightMap.qml
View file @
b14e1a46
...
@@ -49,7 +49,7 @@ Map {
...
@@ -49,7 +49,7 @@ Map {
property
bool
interactive
:
true
property
bool
interactive
:
true
property
string
mapName
:
'
defaultMap
'
property
string
mapName
:
'
defaultMap
'
property
string
mapType
:
QGroundControl
.
flightMapSettings
.
mapTypeForMapName
(
mapName
)
property
string
mapType
:
QGroundControl
.
flightMapSettings
.
mapTypeForMapName
(
mapName
)
property
alias
mapWidgets
:
controlWidgets
//
property alias mapWidgets: controlWidgets
property
bool
isSatelliteMap
:
mapType
==
"
Satellite Map
"
||
mapType
==
"
Hybrid Map
"
property
bool
isSatelliteMap
:
mapType
==
"
Satellite Map
"
||
mapType
==
"
Hybrid Map
"
property
real
lon
:
(
longitude
>=
-
180
&&
longitude
<=
180
)
?
longitude
:
0
property
real
lon
:
(
longitude
>=
-
180
&&
longitude
<=
180
)
?
longitude
:
0
...
@@ -80,6 +80,7 @@ Map {
...
@@ -80,6 +80,7 @@ Map {
}
}
}
}
/*********************************************
/// Map control widgets
/// Map control widgets
Column {
Column {
id: controlWidgets
id: controlWidgets
...
@@ -151,6 +152,7 @@ Map {
...
@@ -151,6 +152,7 @@ Map {
}
}
} // Row - +/- buttons
} // Row - +/- buttons
} // Column - Map control widgets
} // Column - Map control widgets
*********************************************/
/*
/*
The slider and scale display are commented out for now to try to save real estate - DonLakeFlyer
The slider and scale display are commented out for now to try to save real estate - DonLakeFlyer
...
...
src/FlightMap/Images/ZoomMinus.svg
View file @
b14e1a46
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!-- Generator: Adobe Illustrator 19.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg
version=
"1.1"
id=
"Layer_1"
xmlns=
"http://www.w3.org/2000/svg"
xmlns:xlink=
"http://www.w3.org/1999/xlink"
x=
"0px"
y=
"0px"
<svg
version=
"1.1"
id=
"Layer_1"
xmlns=
"http://www.w3.org/2000/svg"
xmlns:xlink=
"http://www.w3.org/1999/xlink"
x=
"0px"
y=
"0px"
viewBox=
"0 0 72 72"
enable-background=
"new 0 0 72 72"
xml:space=
"preserve"
>
viewBox=
"-269 361 72 72"
style=
"enable-background:new -269 361 72 72;"
xml:space=
"preserve"
>
<circle
fill=
"none"
stroke=
"#FFFFFF"
stroke-width=
"2"
stroke-miterlimit=
"10"
cx=
"29.573"
cy=
"30.04"
r=
"22.416"
/>
<style
type=
"text/css"
>
<line
fill=
"none"
stroke=
"#FFFFFF"
stroke-width=
"3"
stroke-miterlimit=
"10"
x1=
"64.8"
y1=
"64.83"
x2=
"45.801"
y2=
"45.765"
/>
.st0{fill:none;stroke:#FFFFFF;stroke-width:2;stroke-miterlimit:10;}
<line
fill=
"none"
x1=
"16.973"
y1=
"30.04"
x2=
"42.173"
y2=
"30.04"
/>
.st1{fill:none;stroke:#FFFFFF;stroke-width:3;stroke-miterlimit:10;}
<line
fill=
"none"
stroke=
"#FFFFFF"
stroke-width=
"5"
stroke-miterlimit=
"10"
x1=
"16.973"
y1=
"30.134"
x2=
"42.173"
y2=
"29.946"
/>
.st2{fill:none;}
.st3{fill:none;stroke:#FFFFFF;stroke-width:5;stroke-miterlimit:10;}
</style>
<circle
class=
"st0"
cx=
"-236.2"
cy=
"393.9"
r=
"11.2"
/>
<line
class=
"st1"
x1=
"-218.6"
y1=
"411.3"
x2=
"-228.1"
y2=
"401.8"
/>
<line
class=
"st2"
x1=
"-242.5"
y1=
"393.9"
x2=
"-229.9"
y2=
"393.9"
/>
<line
class=
"st3"
x1=
"-242.5"
y1=
"394"
x2=
"-229.9"
y2=
"393.9"
/>
</svg>
</svg>
src/FlightMap/Images/ZoomPlus.svg
View file @
b14e1a46
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!-- Generator: Adobe Illustrator 19.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg
version=
"1.1"
id=
"Layer_1"
xmlns=
"http://www.w3.org/2000/svg"
xmlns:xlink=
"http://www.w3.org/1999/xlink"
x=
"0px"
y=
"0px"
<svg
version=
"1.1"
id=
"Layer_1"
xmlns=
"http://www.w3.org/2000/svg"
xmlns:xlink=
"http://www.w3.org/1999/xlink"
x=
"0px"
y=
"0px"
viewBox=
"0 0 72 72"
enable-background=
"new 0 0 72 72"
xml:space=
"preserve"
>
viewBox=
"-269 361 72 72"
style=
"enable-background:new -269 361 72 72;"
xml:space=
"preserve"
>
<circle
fill=
"none"
stroke=
"#FFFFFF"
stroke-width=
"2"
stroke-miterlimit=
"10"
cx=
"29.573"
cy=
"30.04"
r=
"22.416"
/>
<style
type=
"text/css"
>
<line
fill=
"none"
stroke=
"#FFFFFF"
stroke-width=
"3"
stroke-miterlimit=
"10"
x1=
"64.8"
y1=
"64.83"
x2=
"45.801"
y2=
"45.765"
/>
.st0{fill:none;stroke:#FFFFFF;stroke-width:2;stroke-miterlimit:10;}
<path
fill=
"#FFFFFF"
d=
"M27.36,42.653V32.187H16.973v-4.374H27.36V17.426h4.426v10.387h10.387v4.374H31.786v10.466H27.36z"
/>
.st1{fill:none;stroke:#FFFFFF;stroke-width:3;stroke-miterlimit:10;}
.st2{fill:#FFFFFF;}
</style>
<circle
class=
"st0"
cx=
"-236.2"
cy=
"393.9"
r=
"11.2"
/>
<line
class=
"st1"
x1=
"-218.6"
y1=
"411.3"
x2=
"-228.1"
y2=
"401.8"
/>
<path
class=
"st2"
d=
"M-237.3,400.2V395h-5.2v-2.2h5.2v-5.2h2.2v5.2h5.2v2.2h-5.2v5.2H-237.3z"
/>
</svg>
</svg>
src/FlightMap/MapItems/VehicleMapItem.qml
View file @
b14e1a46
...
@@ -35,6 +35,7 @@ import QGroundControl.Vehicle 1.0
...
@@ -35,6 +35,7 @@ import QGroundControl.Vehicle 1.0
MapQuickItem
{
MapQuickItem
{
property
var
vehicle
///< Vehicle object
property
var
vehicle
///< Vehicle object
property
bool
isSatellite
:
false
///< true: satellite map is showing
property
bool
isSatellite
:
false
///< true: satellite map is showing
property
real
size
:
ScreenTools
.
defaultFontPixelHeight
*
5
anchorPoint.x
:
vehicleIcon
.
width
/
2
anchorPoint.x
:
vehicleIcon
.
width
/
2
anchorPoint.y
:
vehicleIcon
.
height
/
2
anchorPoint.y
:
vehicleIcon
.
height
/
2
...
@@ -44,7 +45,7 @@ MapQuickItem {
...
@@ -44,7 +45,7 @@ MapQuickItem {
id
:
vehicleIcon
id
:
vehicleIcon
source
:
isSatellite
?
"
/qmlimages/airplaneOpaque.svg
"
:
"
/qmlimages/airplaneOutline.svg
"
source
:
isSatellite
?
"
/qmlimages/airplaneOpaque.svg
"
:
"
/qmlimages/airplaneOutline.svg
"
mipmap
:
true
mipmap
:
true
width
:
ScreenTools
.
defaultFontPixelHeight
*
5
width
:
size
fillMode
:
Image
.
PreserveAspectFit
fillMode
:
Image
.
PreserveAspectFit
transform
:
Rotation
{
transform
:
Rotation
{
...
...
src/FlightMap/Widgets/QGCInstrumentWidget.qml
View file @
b14e1a46
...
@@ -37,20 +37,25 @@ Item {
...
@@ -37,20 +37,25 @@ Item {
height
:
size
height
:
size
property
alias
heading
:
compass
.
heading
property
alias
heading
:
compass
.
heading
property
alias
active
:
attitude
.
active
property
alias
rollAngle
:
attitude
.
rollAngle
property
alias
rollAngle
:
attitude
.
rollAngle
property
alias
pitchAngle
:
attitude
.
pitchAngle
property
alias
pitchAngle
:
attitude
.
pitchAngle
property
real
size
:
ScreenTools
.
defaultFontPixelSize
*
(
10
)
property
real
size
:
ScreenTools
.
defaultFontPixelSize
*
(
10
)
property
bool
isSatellite
:
false
property
bool
active
:
false
property
bool
_isVisible
:
true
//-- Instrument Pannel
Rectangle
{
Rectangle
{
id
:
instrumentPannel
id
:
instrumentPannel
anchors.
left
:
parent
.
lef
t
anchors.
right
:
parent
.
righ
t
anchors.bottom
:
parent
.
bottom
anchors.bottom
:
parent
.
bottom
height
:
root
.
size
height
:
root
.
size
width
:
instruments
.
width
+
8
width
:
instruments
.
width
+
8
radius
:
root
.
size
/
2
radius
:
root
.
size
/
2
color
:
Qt
.
rgba
(
0
,
0
,
0
,
0.5
)
visible
:
_isVisible
color
:
isSatellite
?
Qt
.
rgba
(
1
,
1
,
1
,
0.5
)
:
Qt
.
rgba
(
0
,
0
,
0
,
0.5
)
Row
{
Row
{
id
:
instruments
id
:
instruments
height
:
parent
.
height
height
:
parent
.
height
...
@@ -59,14 +64,49 @@ Item {
...
@@ -59,14 +64,49 @@ Item {
QGCAttitudeWidget
{
QGCAttitudeWidget
{
id
:
attitude
id
:
attitude
size
:
parent
.
height
*
0.9
size
:
parent
.
height
*
0.9
active
:
root
.
active
anchors.verticalCenter
:
parent
.
verticalCenter
anchors.verticalCenter
:
parent
.
verticalCenter
}
}
QGCCompassWidget
{
QGCCompassWidget
{
id
:
compass
id
:
compass
size
:
parent
.
height
*
0.9
size
:
parent
.
height
*
0.9
active
:
root
.
active
anchors.verticalCenter
:
parent
.
verticalCenter
anchors.verticalCenter
:
parent
.
verticalCenter
}
}
}
}
MouseArea
{
anchors.fill
:
parent
onClicked
:
{
_isVisible
=
!
_isVisible
}
}
}
//-- Show Instruments
Rectangle
{
id
:
openButton
anchors.right
:
parent
.
right
anchors.bottom
:
parent
.
bottom
height
:
24
width
:
24
radius
:
4
visible
:
!
_isVisible
color
:
isSatellite
?
Qt
.
rgba
(
1
,
1
,
1
,
0.5
)
:
Qt
.
rgba
(
0
,
0
,
0
,
0.5
)
Image
{
width
:
parent
.
width
*
0.75
height
:
parent
.
height
*
0.75
source
:
"
/qmlimages/buttonLeft.svg
"
mipmap
:
true
fillMode
:
Image
.
PreserveAspectFit
anchors.verticalCenter
:
parent
.
verticalCenter
anchors.horizontalCenter
:
parent
.
horizontalCenter
}
MouseArea
{
anchors.fill
:
parent
onClicked
:
{
_isVisible
=
!
_isVisible
}
}
}
}
}
}
src/MissionEditor/MissionEditor.qml
View file @
b14e1a46
...
@@ -75,7 +75,11 @@ QGCView {
...
@@ -75,7 +75,11 @@ QGCView {
property
bool
_showHelp
:
QGroundControl
.
flightMapSettings
.
loadBoolMapSetting
(
editorMap
.
mapName
,
_showHelpKey
,
true
)
property
bool
_showHelp
:
QGroundControl
.
flightMapSettings
.
loadBoolMapSetting
(
editorMap
.
mapName
,
_showHelpKey
,
true
)
onGpsLockChanged
:
updateMapToVehiclePosition
()
onGpsLockChanged
:
updateMapToVehiclePosition
()
Component.onCompleted
:
updateMapToVehiclePosition
()
Component.onCompleted
:
{
helpPanel
.
source
=
"
MissionEditorHelp.qml
"
updateMapToVehiclePosition
()
}
function
updateMapToVehiclePosition
()
{
function
updateMapToVehiclePosition
()
{
if
(
gpsLock
&&
_firstGpsLock
)
{
if
(
gpsLock
&&
_firstGpsLock
)
{
...
@@ -676,207 +680,16 @@ QGCView {
...
@@ -676,207 +680,16 @@ QGCView {
} // Item - Home Position Manager
} // Item - Home Position Manager
*/
*/
// Help Panel
//
--
Help Panel
Rectangle
{
Loader
{
id
:
helpPanel
id
:
helpPanel
anchors.margins
:
margins
width
:
parent
.
width
*
0.65
anchors.top
:
parent
.
top
height
:
parent
.
height
*
0.75
anchors.bottom
:
parent
.
bottom
anchors.left
:
addMissionItemsButton
.
right
anchors.right
:
missionItemEditor
.
left
width
:
parent
.
width
-
(
margins
*
2
)
-
_rightPanelWidth
visible
:
helpButton
.
checked
color
:
qgcPal
.
window
opacity
:
_rightPanelOpacity
radius
:
ScreenTools
.
defaultFontPixelHeight
z
:
QGroundControl
.
zOrderTopMost
z
:
QGroundControl
.
zOrderTopMost
anchors.verticalCenter
:
parent
.
verticalCenter
readonly
property
real
margins
:
ScreenTools
.
defaultFontPixelHeight
anchors.horizontalCenter
:
parent
.
horizontalCenter
Image
{
anchors.margins
:
ScreenTools
.
defaultFontPixelHeight
anchors.top
:
parent
.
top
anchors.right
:
parent
.
right
width
:
ScreenTools
.
defaultFontPixelHeight
*
1.5
height
:
ScreenTools
.
defaultFontPixelHeight
*
1.5
source
:
(
qgcPal
.
globalTheme
===
QGCPalette
.
Light
)
?
"
/qmlimages/XDeleteBlack.svg
"
:
"
/qmlimages/XDelete.svg
"
fillMode
:
Image
.
PreserveAspectFit
mipmap
:
true
smooth
:
true
MouseArea
{
anchors.fill
:
parent
onClicked
:
helpButton
.
checked
=
false
}
}
Item
{
anchors.margins
:
_margin
anchors.fill
:
parent
QGCLabel
{
id
:
helpTitle
font.pixelSize
:
ScreenTools
.
mediumFontPixelSize
text
:
"
Mission Planner
"
}
QGCLabel
{
id
:
helpIconLabel
anchors.topMargin
:
ScreenTools
.
defaultFontPixelHeight
anchors.top
:
helpTitle
.
bottom
width
:
parent
.
width
wrapMode
:
Text
.
WordWrap
text
:
"
Mission Planner tool buttons:
"
}
Image
{
id
:
addMissionItemsHelpIcon
anchors.topMargin
:
ScreenTools
.
defaultFontPixelHeight
anchors.top
:
helpIconLabel
.
bottom
width
:
ScreenTools
.
defaultFontPixelHeight
*
3
fillMode
:
Image
.
PreserveAspectFit
mipmap
:
true
smooth
:
true
source
:
(
qgcPal
.
globalTheme
===
QGCPalette
.
Light
)
?
"
/qmlimages/MapAddMissionBlack.svg
"
:
"
/qmlimages/MapAddMission.svg
"
}
QGCLabel
{
id
:
addMissionItemsHelpText
anchors.leftMargin
:
ScreenTools
.
defaultFontPixelHeight
anchors.left
:
mapTypeHelpIcon
.
right
anchors.right
:
parent
.
right
anchors.top
:
addMissionItemsHelpIcon
.
top
wrapMode
:
Text
.
WordWrap
text
:
"
<b>Add Mission Items</b><br>
"
+
"
When enabled, add mission items by clicking on the map.
"
}
Image
{
id
:
deleteHelpIcon
anchors.topMargin
:
ScreenTools
.
defaultFontPixelHeight
anchors.top
:
addMissionItemsHelpText
.
bottom
width
:
ScreenTools
.
defaultFontPixelHeight
*
3
fillMode
:
Image
.
PreserveAspectFit
mipmap
:
true
smooth
:
true
source
:
(
qgcPal
.
globalTheme
===
QGCPalette
.
Light
)
?
"
/qmlimages/TrashDeleteBlack.svg
"
:
"
/qmlimages/TrashDelete.svg
"
}
QGCLabel
{
id
:
deleteHelpText
anchors.leftMargin
:
ScreenTools
.
defaultFontPixelHeight
anchors.left
:
mapTypeHelpIcon
.
right
anchors.right
:
parent
.
right
anchors.top
:
deleteHelpIcon
.
top
wrapMode
:
Text
.
WordWrap
text
:
"
<b>Delete Mission Item</b><br>
"
+
"
Delete the currently selected mission item.
"
}
/*
Home Position Manager disabled
Image {
id: homePositionManagerHelpIcon
anchors.topMargin: ScreenTools.defaultFontPixelHeight
anchors.top: deleteHelpText.bottom
width: ScreenTools.defaultFontPixelHeight * 3
fillMode: Image.PreserveAspectFit
mipmap: true
smooth: true
source: (qgcPal.globalTheme === QGCPalette.Light) ? "/qmlimages/MapHomeBlack.svg" : "/qmlimages/MapHome.svg"
}
QGCLabel {
id: homePositionManagerHelpText
anchors.leftMargin: ScreenTools.defaultFontPixelHeight
anchors.left: mapTypeHelpIcon.right
anchors.right: parent.right
anchors.top: homePositionManagerHelpIcon.top
wrapMode: Text.WordWrap
text: "<b>Flying Field Manager</b><br>" +
"When enabled, allows you to select/add/update flying field locations. " +
"You can save multiple flying field locations for use while creating missions while you are not connected to your vehicle."
}
*/
Image
{
id
:
mapCenterHelpIcon
anchors.topMargin
:
ScreenTools
.
defaultFontPixelHeight
anchors.top
:
deleteHelpText
.
bottom
width
:
ScreenTools
.
defaultFontPixelHeight
*
3
fillMode
:
Image
.
PreserveAspectFit
mipmap
:
true
smooth
:
true
source
:
(
qgcPal
.
globalTheme
===
QGCPalette
.
Light
)
?
"
/qmlimages/MapCenterBlack.svg
"
:
"
/qmlimages/MapCenter.svg
"
}
QGCLabel
{
id
:
mapCenterHelpText
anchors.leftMargin
:
ScreenTools
.
defaultFontPixelHeight
anchors.left
:
mapTypeHelpIcon
.
right
anchors.right
:
parent
.
right
anchors.top
:
mapCenterHelpIcon
.
top
wrapMode
:
Text
.
WordWrap
text
:
"
<b>Map Center</b><br>
"
+
"
Options for centering the map.
"
}
Image
{
id
:
syncHelpIcon
anchors.topMargin
:
ScreenTools
.
defaultFontPixelHeight
anchors.top
:
mapCenterHelpText
.
bottom
width
:
ScreenTools
.
defaultFontPixelHeight
*
3
fillMode
:
Image
.
PreserveAspectFit
mipmap
:
true
smooth
:
true
source
:
(
qgcPal
.
globalTheme
===
QGCPalette
.
Light
)
?
"
/qmlimages/MapSyncBlack.svg
"
:
"
/qmlimages/MapSync.svg
"
}
QGCLabel
{
id
:
syncHelpText
anchors.leftMargin
:
ScreenTools
.
defaultFontPixelHeight
anchors.left
:
mapTypeHelpIcon
.
right
anchors.right
:
parent
.
right
anchors.top
:
syncHelpIcon
.
top
wrapMode
:
Text
.
WordWrap
text
:
"
<b>Sync</b><br>
"
+
"
Options for saving/loading mission items.
"
}
Image
{
id
:
mapTypeHelpIcon
anchors.topMargin
:
ScreenTools
.
defaultFontPixelHeight
anchors.top
:
syncHelpText
.
bottom
width
:
ScreenTools
.
defaultFontPixelHeight
*
3
fillMode
:
Image
.
PreserveAspectFit
mipmap
:
true
smooth
:
true
source
:
(
qgcPal
.
globalTheme
===
QGCPalette
.
Light
)
?
"
/qmlimages/MapTypeBlack.svg
"
:
"
/qmlimages/MapType.svg
"
}
QGCLabel
{
id
:
mapTypeHelpText
anchors.leftMargin
:
ScreenTools
.
defaultFontPixelHeight
anchors.left
:
mapTypeHelpIcon
.
right
anchors.right
:
parent
.
right
anchors.top
:
mapTypeHelpIcon
.
top
wrapMode
:
Text
.
WordWrap
text
:
"
<b>Map Type</b><br>
"
+
"
Map type options.
"
}
}
QGCCheckBox
{
anchors.left
:
parent
.
left
anchors.bottom
:
parent
.
bottom
anchors.margins
:
_margin
checked
:
!
_showHelp
text
:
"
Don't show me again
"
onClicked
:
QGroundControl
.
flightMapSettings
.
saveBoolMapSetting
(
editorMap
.
mapName
,
_showHelpKey
,
!
checked
)
}
}
// Item - margin
}
// Item - Help Panel
RoundButton
{
RoundButton
{
id
:
addMissionItemsButton
id
:
addMissionItemsButton
...
...
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