From f68b5622306544b993d90a8742b26eb9cc2df061 Mon Sep 17 00:00:00 2001
From: dogmaphobic <mavlink@grubba.com>
Date: Mon, 25 Apr 2016 00:06:59 -0400
Subject: [PATCH] All done but low battery parameter.

---
 qgcresources.qrc                                   |   3 +
 src/AutoPilotPlugins/PX4/Images/GeoFence.svg       |  48 +-
 src/AutoPilotPlugins/PX4/Images/GeoFenceLight.svg  |  24 +
 src/AutoPilotPlugins/PX4/Images/LowBattery.svg     |  26 +-
 .../PX4/Images/LowBatteryLight.svg                 |  19 +
 src/AutoPilotPlugins/PX4/Images/RCLoss.svg         |  28 +-
 src/AutoPilotPlugins/PX4/Images/RCLossLight.svg    |  82 +++
 src/AutoPilotPlugins/PX4/SafetyComponent.qml       | 725 +++++++++------------
 8 files changed, 495 insertions(+), 460 deletions(-)
 create mode 100644 src/AutoPilotPlugins/PX4/Images/GeoFenceLight.svg
 create mode 100644 src/AutoPilotPlugins/PX4/Images/LowBatteryLight.svg
 create mode 100644 src/AutoPilotPlugins/PX4/Images/RCLossLight.svg

diff --git a/qgcresources.qrc b/qgcresources.qrc
index f0f05f1..59e798b 100644
--- a/qgcresources.qrc
+++ b/qgcresources.qrc
@@ -50,9 +50,11 @@
         <file alias="FlightModesComponentIcon.png">src/AutoPilotPlugins/PX4/Images/FlightModesComponentIcon.png</file>
         <file alias="CameraComponentIcon.png">src/AutoPilotPlugins/PX4/Images/CameraComponentIcon.png</file>
         <file alias="GeoFence.svg">src/AutoPilotPlugins/PX4/Images/GeoFence.svg</file>
+        <file alias="GeoFenceLight.svg">src/AutoPilotPlugins/PX4/Images/GeoFenceLight.svg</file>
         <file alias="LandMode.svg">src/AutoPilotPlugins/PX4/Images/LandMode.svg</file>
         <file alias="LandModeCopter.svg">src/AutoPilotPlugins/PX4/Images/LandModeCopter.svg</file>
         <file alias="LowBattery.svg">src/AutoPilotPlugins/PX4/Images/LowBattery.svg</file>
+        <file alias="LowBatteryLight.svg">src/AutoPilotPlugins/PX4/Images/LowBatteryLight.svg</file>
         <file alias="PowerComponentBattery_01cell.svg">src/AutoPilotPlugins/PX4/Images/PowerComponentBattery_01cell.svg</file>
         <file alias="PowerComponentBattery_02cell.svg">src/AutoPilotPlugins/PX4/Images/PowerComponentBattery_02cell.svg</file>
         <file alias="PowerComponentBattery_03cell.svg">src/AutoPilotPlugins/PX4/Images/PowerComponentBattery_03cell.svg</file>
@@ -62,6 +64,7 @@
         <file alias="PowerComponentIcon.png">src/AutoPilotPlugins/PX4/Images/PowerComponentIcon.png</file>
         <file alias="RadioComponentIcon.png">src/AutoPilotPlugins/PX4/Images/RadioComponentIcon.png</file>
         <file alias="RCLoss.svg">src/AutoPilotPlugins/PX4/Images/RCLoss.svg</file>
+        <file alias="RCLossLight.svg">src/AutoPilotPlugins/PX4/Images/RCLossLight.svg</file>
         <file alias="ReturnToHomeAltitude.svg">src/AutoPilotPlugins/PX4/Images/ReturnToHomeAltitude.svg</file>
         <file alias="ReturnToHomeAltitudeCopter.svg">src/AutoPilotPlugins/PX4/Images/ReturnToHomeAltitudeCopter.svg</file>
         <file alias="SafetyComponentIcon.png">src/AutoPilotPlugins/PX4/Images/SafetyComponentIcon.png</file>
diff --git a/src/AutoPilotPlugins/PX4/Images/GeoFence.svg b/src/AutoPilotPlugins/PX4/Images/GeoFence.svg
index 6247fbc..331053c 100644
--- a/src/AutoPilotPlugins/PX4/Images/GeoFence.svg
+++ b/src/AutoPilotPlugins/PX4/Images/GeoFence.svg
@@ -1,39 +1,25 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!-- Generator: Adobe Illustrator 19.2.1, 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"
-	 viewBox="0 0 84.295 121.246" style="enable-background:new 0 0 84.295 121.246;" xml:space="preserve">
+	 viewBox="0 0 201.6 155.534" style="enable-background:new 0 0 201.6 155.534;" xml:space="preserve">
 <style type="text/css">
-	.st0{fill:none;stroke:#FFFFFF;stroke-width:2;stroke-linejoin:round;stroke-dasharray:2.9701,2.9701;}
-	.st1{fill:none;stroke:#FFFFFF;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
-	.st2{fill:none;stroke:#FFFFFF;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.0241,3.0241;}
-	.st3{fill:none;stroke:#FFFFFF;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.024,3.024;}
-	.st4{fill:#FFFFFF;}
+	.st0{fill:#00AA10;}
+	.st1{fill:none;stroke:#FFFFFF;stroke-width:4;stroke-linejoin:round;stroke-miterlimit:10;}
+	.st2{fill:none;stroke:#FFFFFF;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
+	.st3{fill:#FFFFFF;}
 </style>
 <g>
-	<ellipse class="st0" cx="42.135" cy="15.157" rx="41.127" ry="14.157"/>
+	<ellipse class="st0" cx="100.8" cy="119.056" rx="97.2" ry="32.784"/>
+	<ellipse class="st1" cx="100.8" cy="24.593" rx="68.894" ry="20.9"/>
+	<line class="st2" x1="32.295" y1="26.396" x2="32.287" y2="113.914"/>
+	<line class="st2" x1="169.207" y1="114.115" x2="169.262" y2="23.213"/>
+	<path class="st3" d="M79.006,78.38c-0.05-0.477,0.126-0.842,0.528-1.093l36.177-24.118c0.201-0.151,0.427-0.226,0.678-0.226
+		c0.251,0,0.477,0.075,0.678,0.226c0.402,0.251,0.578,0.653,0.528,1.206l-6.03,36.177c-0.1,0.352-0.301,0.628-0.603,0.829
+		c-0.201,0.1-0.402,0.151-0.603,0.151c-0.151,0-0.301-0.025-0.452-0.075l-11.682-4.673l-2.487,4.145
+		c-0.251,0.402-0.603,0.603-1.055,0.603s-0.804-0.201-1.055-0.603l-4.447-7.763l-9.421-3.768
+		C79.307,79.197,79.056,78.857,79.006,78.38L79.006,78.38z M82.774,77.966l7.311,2.939c0.05,0.05,0.113,0.1,0.188,0.151l0.113,0.075
+		l20.35-21.782L82.774,77.966z M91.291,81.96l3.392,5.879l19.445-30.374L91.291,81.96z M98.375,84.372
+		c0.301,0.05,0.553,0.1,0.754,0.151l10.25,4.145l4.824-28.866L98.375,84.372z"/>
+	<ellipse class="st1" cx="100.8" cy="116.605" rx="68.894" ry="20.9"/>
 </g>
-<g>
-	<ellipse class="st0" cx="42.135" cy="106.089" rx="41.127" ry="14.157"/>
-</g>
-<g>
-	<g>
-		<line class="st1" x1="1.007" y1="14.788" x2="1.007" y2="16.288"/>
-		<line class="st2" x1="1.007" y1="19.313" x2="1" y2="102.477"/>
-		<line class="st1" x1="1" y1="103.989" x2="1" y2="105.489"/>
-	</g>
-</g>
-<g>
-	<g>
-		<line class="st1" x1="83.262" y1="106.089" x2="83.262" y2="104.589"/>
-		<line class="st3" x1="83.264" y1="101.565" x2="83.294" y2="18.405"/>
-		<line class="st1" x1="83.294" y1="16.893" x2="83.295" y2="15.393"/>
-	</g>
-</g>
-<path class="st4" d="M15.016,72.932c-0.064-0.608,0.16-1.073,0.672-1.393l46.104-30.736c0.256-0.192,0.544-0.288,0.864-0.288
-	c0.32,0,0.608,0.096,0.864,0.288c0.512,0.32,0.736,0.832,0.672,1.537L56.51,88.444c-0.128,0.448-0.384,0.8-0.768,1.057
-	c-0.256,0.128-0.512,0.192-0.768,0.192c-0.192,0-0.384-0.032-0.576-0.096l-14.888-5.955l-3.17,5.283
-	c-0.32,0.512-0.768,0.768-1.345,0.768s-1.025-0.256-1.345-0.768l-5.667-9.893l-12.006-4.803C15.4,73.972,15.08,73.54,15.016,72.932
-	L15.016,72.932z M19.818,72.404l9.317,3.746c0.064,0.064,0.144,0.128,0.24,0.192l0.144,0.096l25.934-27.759L19.818,72.404z
-	 M30.672,77.494l4.322,7.492l24.781-38.709L30.672,77.494z M39.701,80.568c0.384,0.064,0.704,0.128,0.961,0.192l13.063,5.283
-	l6.147-36.787L39.701,80.568z"/>
 </svg>
diff --git a/src/AutoPilotPlugins/PX4/Images/GeoFenceLight.svg b/src/AutoPilotPlugins/PX4/Images/GeoFenceLight.svg
new file mode 100644
index 0000000..295586c
--- /dev/null
+++ b/src/AutoPilotPlugins/PX4/Images/GeoFenceLight.svg
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 19.2.1, 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"
+	 viewBox="0 0 201.6 155.534" style="enable-background:new 0 0 201.6 155.534;" xml:space="preserve">
+<style type="text/css">
+	.st0{fill:#008A0D;}
+	.st1{fill:none;stroke:#231F20;stroke-width:4;stroke-linejoin:round;stroke-miterlimit:10;}
+	.st2{fill:#231F20;stroke:#231F20;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
+	.st3{fill:none;stroke:#231F20;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
+	.st4{fill:#231F20;stroke:#231F20;stroke-miterlimit:10;}
+</style>
+<ellipse class="st0" cx="100.8" cy="119.056" rx="97.2" ry="32.784"/>
+<ellipse class="st1" cx="100.8" cy="24.593" rx="68.894" ry="20.9"/>
+<line class="st2" x1="32.295" y1="26.396" x2="32.287" y2="113.914"/>
+<line class="st3" x1="169.207" y1="114.115" x2="169.262" y2="23.213"/>
+<path class="st4" d="M79.006,78.38c-0.05-0.477,0.126-0.842,0.528-1.093l36.177-24.118c0.201-0.151,0.427-0.226,0.678-0.226
+	c0.251,0,0.477,0.075,0.678,0.226c0.402,0.251,0.578,0.653,0.528,1.206l-6.03,36.177c-0.1,0.352-0.301,0.628-0.603,0.829
+	c-0.201,0.1-0.402,0.151-0.603,0.151c-0.151,0-0.301-0.025-0.452-0.075l-11.682-4.673l-2.487,4.145
+	c-0.251,0.402-0.603,0.603-1.055,0.603s-0.804-0.201-1.055-0.603l-4.447-7.763l-9.421-3.768
+	C79.307,79.197,79.056,78.857,79.006,78.38L79.006,78.38z M82.774,77.966l7.311,2.939c0.05,0.05,0.113,0.1,0.188,0.151l0.113,0.075
+	l20.35-21.782L82.774,77.966z M91.291,81.96l3.392,5.879l19.445-30.374L91.291,81.96z M98.375,84.372
+	c0.301,0.05,0.553,0.1,0.754,0.151l10.25,4.145l4.824-28.866L98.375,84.372z"/>
+<ellipse class="st1" cx="100.8" cy="116.605" rx="68.894" ry="20.9"/>
+</svg>
diff --git a/src/AutoPilotPlugins/PX4/Images/LowBattery.svg b/src/AutoPilotPlugins/PX4/Images/LowBattery.svg
index a0d83a8..f1b99e3 100644
--- a/src/AutoPilotPlugins/PX4/Images/LowBattery.svg
+++ b/src/AutoPilotPlugins/PX4/Images/LowBattery.svg
@@ -1,23 +1,19 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!-- Generator: Adobe Illustrator 19.2.1, 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"
-	 viewBox="0 0 162 288" style="enable-background:new 0 0 162 288;" xml:space="preserve">
+	 viewBox="0 0 142.56 230.096" style="enable-background:new 0 0 142.56 230.096;" xml:space="preserve">
 <style type="text/css">
-	.st0{fill:#E7E7E7;stroke:#E7E7E7;stroke-width:6;}
-	.st1{fill:none;}
-	.st2{fill:#CB2027;}
-	.st3{fill:#E7E7E7;stroke:#E7E7E7;stroke-width:6;stroke-miterlimit:10;}
+	.st0{fill:none;stroke:#FFFFFF;stroke-width:10;}
+	.st1{fill:#A01D20;}
+	.st2{fill:none;stroke:#FFFFFF;stroke-width:10;stroke-miterlimit:10;}
 </style>
-<path id="rect4970" inkscape:connector-curvature="0" class="st0" d="M14.742,264.074V40.618c0-6.588,5.831-11.93,13.042-11.93
-	H134.26c7.211,0,13.042,5.342,13.042,11.93v223.456c0,6.588-5.831,11.93-13.042,11.93H27.785
-	C20.573,276.003,14.742,270.662,14.742,264.074z"/>
-<path id="rect4360" inkscape:connector-curvature="0" class="st1" d="M9,268.391V36.255c0-6.855,6.321-12.419,14.155-12.419h115.69
-	c7.834,0,14.155,5.609,14.155,12.419v232.136c0,6.855-6.321,12.419-14.155,12.419H23.2C15.365,280.811,9,275.246,9,268.391z"/>
-<path id="path4679" inkscape:connector-curvature="0" sodipodi:nodetypes="ccccc" class="st2" d="M30.9,265.899v-39.866H131.1
-	v39.866H30.9z"/>
+<path id="rect4970" inkscape:connector-curvature="0" class="st0" d="M5,215.908V43.8c0-5.074,5.831-9.188,13.042-9.188h106.475
+	c7.211,0,13.042,4.114,13.042,9.188v172.107c0,5.074-5.831,9.188-13.042,9.188H18.042C10.831,225.096,5,220.982,5,215.908z"/>
+<path id="path4679" inkscape:connector-curvature="0" sodipodi:nodetypes="ccccc" class="st1" d="M21.158,214.991v-39.866h100.199
+	v39.866H21.158z"/>
 <g id="g4222" transform="translate(-127.22081,216.20249)">
-	<path id="path4224" inkscape:connector-curvature="0" class="st3" d="M244.512-189.383c0,0.979-0.757,1.736-1.736,1.736h-68.995
-		c-0.979,0-1.736-0.757-1.736-1.736v-17.894c0-0.979,0.757-1.736,1.736-1.736h68.995c0.979,0,1.736,0.757,1.736,1.736V-189.383
-		L244.512-189.383L244.512-189.383z"/>
+	<path id="path4224" inkscape:connector-curvature="0" class="st2" d="M234.77-184.09c0,1.353-0.757,2.398-1.736,2.398h-68.995
+		c-0.979,0-1.736-1.045-1.736-2.398v-24.715c0-1.353,0.757-2.398,1.736-2.398h68.995c0.979,0,1.736,1.045,1.736,2.398V-184.09
+		L234.77-184.09L234.77-184.09z"/>
 </g>
 </svg>
diff --git a/src/AutoPilotPlugins/PX4/Images/LowBatteryLight.svg b/src/AutoPilotPlugins/PX4/Images/LowBatteryLight.svg
new file mode 100644
index 0000000..5332167
--- /dev/null
+++ b/src/AutoPilotPlugins/PX4/Images/LowBatteryLight.svg
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 19.2.1, 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"
+	 viewBox="0 0 142.56 230.096" style="enable-background:new 0 0 142.56 230.096;" xml:space="preserve">
+<style type="text/css">
+	.st0{fill:none;stroke:#000000;stroke-width:10;}
+	.st1{fill:#CB2027;}
+	.st2{fill:none;stroke:#000000;stroke-width:10;stroke-miterlimit:10;}
+</style>
+<path id="rect4970" inkscape:connector-curvature="0" class="st0" d="M5,215.908V43.8c0-5.074,5.831-9.188,13.042-9.188h106.475
+	c7.211,0,13.042,4.114,13.042,9.188v172.107c0,5.074-5.831,9.188-13.042,9.188H18.042C10.831,225.096,5,220.982,5,215.908z"/>
+<path id="path4679" inkscape:connector-curvature="0" sodipodi:nodetypes="ccccc" class="st1" d="M21.158,214.991v-39.866h100.199
+	v39.866H21.158z"/>
+<g id="g4222" transform="translate(-127.22081,216.20249)">
+	<path id="path4224" inkscape:connector-curvature="0" class="st2" d="M234.77-184.09c0,1.353-0.757,2.398-1.736,2.398h-68.995
+		c-0.979,0-1.736-1.045-1.736-2.398v-24.715c0-1.353,0.757-2.398,1.736-2.398h68.995c0.979,0,1.736,1.045,1.736,2.398V-184.09
+		L234.77-184.09L234.77-184.09z"/>
+</g>
+</svg>
diff --git a/src/AutoPilotPlugins/PX4/Images/RCLoss.svg b/src/AutoPilotPlugins/PX4/Images/RCLoss.svg
index 88bcaef..03d38d5 100644
--- a/src/AutoPilotPlugins/PX4/Images/RCLoss.svg
+++ b/src/AutoPilotPlugins/PX4/Images/RCLoss.svg
@@ -2,17 +2,17 @@
 <!-- Generator: Adobe Illustrator 19.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
 <svg version="1.1"
 	 id="svg3852" inkscape:version="0.91 r13725" sodipodi:docname="gps.svg" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:svg="http://www.w3.org/2000/svg"
-	 xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="-250 452 72 72"
-	 style="enable-background:new -250 452 72 72;" xml:space="preserve">
+	 xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="-250 452 78.5 81.4"
+	 style="enable-background:new -250 452 78.5 81.4;" xml:space="preserve">
 <style type="text/css">
 	.st0{display:none;}
 	.st1{display:inline;}
 	.st2{fill:none;stroke:#EB008B;stroke-width:0.25;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
 	.st3{display:inline;fill:none;stroke:#224A80;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
 	.st4{fill:none;stroke:#FFFFFF;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
-	.st5{fill:#FFFFFF;}
+	.st5{fill:#FFFFFF;stroke:#FFFFFF;stroke-miterlimit:10;}
 	.st6{fill:#FFFFFF;stroke:#FFFFFF;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
-	.st7{fill:none;stroke:#DD0000;stroke-width:3;stroke-linecap:round;stroke-miterlimit:10;}
+	.st7{fill:none;stroke:#A10000;stroke-width:10;stroke-linecap:round;stroke-miterlimit:10;}
 </style>
 <title  id="title4758">GPS</title>
 <sodipodi:namedview  bordercolor="#666666" borderopacity="1" gridtolerance="10" guidetolerance="10" id="namedview3929" inkscape:current-layer="svg3852" inkscape:cx="55" inkscape:cy="55" inkscape:pageopacity="0" inkscape:pageshadow="2" inkscape:window-height="480" inkscape:window-width="640" inkscape:zoom="11.136364" objecttolerance="10" pagecolor="#808080" showgrid="false">
@@ -67,12 +67,16 @@
 	<polygon id="polygon3927" class="st3" points="-264.6,453.2 -269.5,453.2 -269.5,494.2 -246.6,494.2 -246.6,453.2 -251.5,453.2 
 		-251.5,446.7 -264.6,446.7 	"/>
 </g>
-<line class="st4" x1="-214" y1="479.9" x2="-214" y2="459.8"/>
-<circle class="st5" cx="-227" cy="497" r="4.1"/>
-<path class="st6" d="M-237,481.9v30.3h46.8v-30.3H-237z M-227,505.7c-4.8,0-8.7-3.9-8.7-8.7s3.9-8.7,8.7-8.7c4.8,0,8.7,3.9,8.7,8.7
-	S-222.2,505.7-227,505.7z M-200.1,505.7c-4.8,0-8.7-3.9-8.7-8.7s3.9-8.7,8.7-8.7c4.8,0,8.7,3.9,8.7,8.7S-195.3,505.7-200.1,505.7z"
-	/>
-<circle class="st5" cx="-200.1" cy="497" r="4.1"/>
-<line class="st7" x1="-239.5" y1="513.5" x2="-188.5" y2="462.5"/>
-<line class="st7" x1="-188.5" y1="513.4" x2="-239.5" y2="462.5"/>
+<g>
+	<line class="st4" x1="-211.3" y1="484.9" x2="-211.4" y2="459.4"/>
+	<circle class="st5" cx="-227.8" cy="506.7" r="5.2"/>
+	<path class="st6" d="M-240.5,487.5V526h59.6v-38.5H-240.5z M-227.8,517.8c-6.1,0-11.1-4.9-11.1-11.1s4.9-11.1,11.1-11.1
+		c6.1,0,11.1,4.9,11.1,11.1S-221.7,517.8-227.8,517.8z M-193.7,517.8c-6.1,0-11.1-4.9-11.1-11.1s4.9-11.1,11.1-11.1
+		c6.1,0,11.1,4.9,11.1,11.1S-187.6,517.8-193.7,517.8z"/>
+	<circle class="st5" cx="-193.7" cy="506.7" r="5.2"/>
+</g>
+<g>
+	<line class="st7" x1="-243.2" y1="525.1" x2="-178.4" y2="460.3"/>
+	<line class="st7" x1="-178.4" y1="525.1" x2="-243.2" y2="460.3"/>
+</g>
 </svg>
diff --git a/src/AutoPilotPlugins/PX4/Images/RCLossLight.svg b/src/AutoPilotPlugins/PX4/Images/RCLossLight.svg
new file mode 100644
index 0000000..b6f71d7
--- /dev/null
+++ b/src/AutoPilotPlugins/PX4/Images/RCLossLight.svg
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 19.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<svg version="1.1"
+	 id="svg3852" inkscape:version="0.91 r13725" sodipodi:docname="gps.svg" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:svg="http://www.w3.org/2000/svg"
+	 xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="-250 452 78.5 81.4"
+	 style="enable-background:new -250 452 78.5 81.4;" xml:space="preserve">
+<style type="text/css">
+	.st0{display:none;}
+	.st1{display:inline;}
+	.st2{fill:none;stroke:#EB008B;stroke-width:0.25;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
+	.st3{display:inline;fill:none;stroke:#224A80;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
+	.st4{stroke:#000000;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
+	.st5{stroke:#000000;stroke-miterlimit:10;}
+	.st6{stroke:#000000;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
+	.st7{fill:none;stroke:#CB2027;stroke-width:10;stroke-linecap:round;stroke-miterlimit:10;}
+</style>
+<title  id="title4758">GPS</title>
+<sodipodi:namedview  bordercolor="#666666" borderopacity="1" gridtolerance="10" guidetolerance="10" id="namedview3929" inkscape:current-layer="svg3852" inkscape:cx="55" inkscape:cy="55" inkscape:pageopacity="0" inkscape:pageshadow="2" inkscape:window-height="480" inkscape:window-width="640" inkscape:zoom="11.136364" objecttolerance="10" pagecolor="#808080" showgrid="false">
+	</sodipodi:namedview>
+<g id="Layer_2" class="st0">
+</g>
+<g id="ex_thick" transform="matrix(-1,0,0,-1,111.82126,108.29692)">
+</g>
+<g id="Layer_2_copy_3" class="st0">
+</g>
+<g id="ex_thin" transform="matrix(-1,0,0,-1,111.82126,108.29692)">
+</g>
+<g id="Layer_2_copy" class="st0">
+</g>
+<g id="em_thick" transform="matrix(-1,0,0,-1,111.82126,108.29692)">
+</g>
+<g id="Layer_2_copy_4" class="st0">
+	<g id="g3861" class="st1">
+		<rect id="rect3863" x="-286.1" y="320.7" class="st2" width="56.3" height="56.3"/>
+		<circle id="circle3865" class="st2" cx="-258" cy="348.8" r="28.2"/>
+	</g>
+	<g id="g3867" class="st1">
+		<rect id="rect3869" x="-221.7" y="320.7" class="st2" width="56.3" height="56.3"/>
+		<circle id="circle3871" class="st2" cx="-193.5" cy="348.8" r="28.2"/>
+	</g>
+	<g id="g3873" class="st1">
+		<rect id="rect3875" x="-158.5" y="320.7" class="st2" width="56.3" height="56.3"/>
+		<circle id="circle3877" class="st2" cx="-130.3" cy="348.8" r="28.2"/>
+	</g>
+</g>
+<g id="Layer_2_copy_2" class="st0">
+	<g id="g3905" class="st1">
+		<rect id="rect3907" x="-286.1" y="425.3" class="st2" width="56.3" height="56.3"/>
+		<circle id="circle3909" class="st2" cx="-258" cy="453.5" r="28.2"/>
+	</g>
+	<g id="g3911" class="st1">
+		<rect id="rect3913" x="-221.7" y="425.3" class="st2" width="56.3" height="56.3"/>
+		<circle id="circle3915" class="st2" cx="-193.5" cy="453.5" r="28.2"/>
+	</g>
+	<g id="g3917" class="st1">
+		<rect id="rect3919" x="-158.5" y="425.3" class="st2" width="56.3" height="56.3"/>
+		<circle id="circle3921" class="st2" cx="-130.3" cy="453.5" r="28.2"/>
+	</g>
+</g>
+<g id="hornet" transform="matrix(-1,0,0,-1,111.82126,108.29692)">
+</g>
+<g id="Layer_2_copy_5" class="st0">
+</g>
+<g id="hornet_THIN" transform="matrix(-1,0,0,-1,111.82126,108.29692)">
+</g>
+<g id="Layer_6" class="st0">
+	<polygon id="polygon3927" class="st3" points="-264.6,453.2 -269.5,453.2 -269.5,494.2 -246.6,494.2 -246.6,453.2 -251.5,453.2 
+		-251.5,446.7 -264.6,446.7 	"/>
+</g>
+<g>
+	<line class="st4" x1="-211.3" y1="484.9" x2="-211.4" y2="459.4"/>
+	<circle class="st5" cx="-227.8" cy="506.7" r="5.2"/>
+	<path class="st6" d="M-240.5,487.5V526h59.6v-38.5H-240.5z M-227.8,517.8c-6.1,0-11.1-4.9-11.1-11.1s4.9-11.1,11.1-11.1
+		c6.1,0,11.1,4.9,11.1,11.1S-221.7,517.8-227.8,517.8z M-193.7,517.8c-6.1,0-11.1-4.9-11.1-11.1s4.9-11.1,11.1-11.1
+		c6.1,0,11.1,4.9,11.1,11.1S-187.6,517.8-193.7,517.8z"/>
+	<circle class="st5" cx="-193.7" cy="506.7" r="5.2"/>
+</g>
+<g>
+	<line class="st7" x1="-243.2" y1="525.1" x2="-178.4" y2="460.3"/>
+	<line class="st7" x1="-178.4" y1="525.1" x2="-243.2" y2="460.3"/>
+</g>
+</svg>
diff --git a/src/AutoPilotPlugins/PX4/SafetyComponent.qml b/src/AutoPilotPlugins/PX4/SafetyComponent.qml
index 39f3e90..8401576 100644
--- a/src/AutoPilotPlugins/PX4/SafetyComponent.qml
+++ b/src/AutoPilotPlugins/PX4/SafetyComponent.qml
@@ -43,7 +43,10 @@ QGCView {
 
     QGCPalette { id: palette; colorGroupEnabled: enabled }
 
-    property real _margins: ScreenTools.defaultFontPixelHeight
+    property real _margins:         ScreenTools.defaultFontPixelHeight
+    property real _middleRowWidth:  ScreenTools.defaultFontPixelWidth * 22
+    property real _editFieldWidth:  ScreenTools.defaultFontPixelWidth * 18
+    property bool _fixedWing:       controller.fixedWing
 
     property Fact _fenceAction:     controller.getParameterFact(-1, "GF_ACTION")
     property Fact _fenceRadius:     controller.getParameterFact(-1, "GF_MAX_HOR_DIST")
@@ -55,108 +58,314 @@ QGCView {
     QGCViewPanel {
         id:             panel
         anchors.fill:   parent
-
         QGCFlickable {
-            clip:               true
-            anchors.fill:       parent
-            contentHeight:      mainCol.height
-            contentWidth:       parent.width
-            flickableDirection: Flickable.VerticalFlick
-
+            clip:                                       true
+            anchors.top:                                parent.top
+            anchors.bottom:                             parent.bottom
+            anchors.horizontalCenter:                   parent.horizontalCenter
+            width:                                      mainCol.width
+            contentHeight:                              mainCol.height
+            contentWidth:                               mainCol.width
+            flickableDirection:                         Flickable.VerticalFlick
             Column {
-                id:             mainCol
-                spacing:        _margins
-
+                id:                                     mainCol
+                spacing:                                _margins
+                /*
+                   **** Low Battery ****
+                */
+                Item { width: 1; height: _margins * 0.5; }
                 QGCLabel {
-                    id:                 rtlLabel
-                    text:               qsTr("Return Home Settings")
-                    font.weight:        Font.DemiBold
+                    text:                               qsTr("Low Battery Trigger")
+                    font.weight:                        Font.DemiBold
                 }
-
                 Rectangle {
-                    id:                 rtlSettings
-                    color:              palette.windowShade
-                    width:              rtlRow.width  + _margins * 2
-                    height:             rtlRow.height + _margins * 2
+                    color:                              palette.windowShade
+                    width:                              rtlSettings.width
+                    height:                             lowBattRow.height + _margins * 2
                     Row {
-                        id:                     rtlRow
-                        spacing:                _margins
-                        anchors.verticalCenter: parent.verticalCenter
-                        Item {
-                            width:              _margins * 0.5
-                            height:             1
+                        id:                             lowBattRow
+                        spacing:                        _margins
+                        anchors.verticalCenter:         parent.verticalCenter
+                        Item { width: _margins * 0.5; height: 1; }
+                        Image {
+                            height:                     ScreenTools.defaultFontPixelWidth * 6
+                            width:                      ScreenTools.defaultFontPixelWidth * 20
+                            mipmap:                     true
+                            fillMode:                   Image.PreserveAspectFit
+                            source:                     qgcPal.globalTheme === QGCPalette.Light ? "/qmlimages/LowBatteryLight.svg" : "/qmlimages/LowBattery.svg"
+                            anchors.verticalCenter:     parent.verticalCenter
                         }
-                        QGCColoredImage {
-                            id:                 icon
-                            height:             ScreenTools.defaultFontPixelWidth * 10
-                            width:              ScreenTools.defaultFontPixelWidth * 20
-                            mipmap:             true
-                            fillMode:           Image.PreserveAspectFit
-                            source:             controller.fixedWing ? "/qmlimages/ReturnToHomeAltitude.svg" : "/qmlimages/ReturnToHomeAltitudeCopter.svg"
-                            anchors.verticalCenter: parent.verticalCenter
+                        Item { width: _margins * 0.5; height: 1; }
+                        Column {
+                            spacing:                    _margins * 0.5
+                            anchors.verticalCenter:     parent.verticalCenter
+                            Row {
+                                visible:                !_fixedWing
+                                QGCLabel {
+                                    anchors.baseline:   lowBattCombo.baseline
+                                    width:              _middleRowWidth
+                                    text:               qsTr("Action:")
+                                }
+                                FactComboBox {
+                                    id:                 lowBattCombo
+                                    width:              _editFieldWidth
+                                    model:              [ qsTr("No Action"), qsTr("Return To Land") ]
+                                    fact:               _lowBattAction
+                                }
+                            }
+                            Row {
+                                QGCLabel {
+                                    anchors.baseline:   batLowLevelField.baseline
+                                    width:              _middleRowWidth
+                                    text:               qsTr("Battery Low Level:")
+                                }
+                                FactTextField {
+                                    id:                 batLowLevelField
+                                    fact:               controller.getParameterFact(-1, "COM_DISARM_LAND")
+                                    showUnits:          true
+                                    width:              _editFieldWidth
+                                }
+                            }
                         }
-                        Item {
-                            width:              _margins * 0.5
-                            height:             1
+                    }
+                }
+                /*
+                   **** RC Loss ****
+                */
+                QGCLabel {
+                    text:                               qsTr("RC Loss Trigger")
+                    font.weight:                        Font.DemiBold
+                }
+                Rectangle {
+                    color:                              palette.windowShade
+                    width:                              rtlSettings.width
+                    height:                             rcLossRow.height + _margins * 2
+                    Row {
+                        id:                             rcLossRow
+                        spacing:                        _margins
+                        anchors.verticalCenter:         parent.verticalCenter
+                        Item { width: _margins * 0.5; height: 1; }
+                        Image {
+                            height:                     ScreenTools.defaultFontPixelWidth * 6
+                            width:                      ScreenTools.defaultFontPixelWidth * 20
+                            mipmap:                     true
+                            fillMode:                   Image.PreserveAspectFit
+                            source:                     qgcPal.globalTheme === QGCPalette.Light ? "/qmlimages/RCLossLight.svg" : "/qmlimages/RCLoss.svg"
+                            anchors.verticalCenter:     parent.verticalCenter
                         }
+                        Item { width: _margins * 0.5; height: 1; }
                         Column {
-                            spacing:            _margins * 0.5
+                            spacing:                    _margins * 0.5
+                            anchors.verticalCenter:     parent.verticalCenter
+                            Row {
+                                QGCLabel {
+                                    anchors.baseline:   rcLossCombo.baseline
+                                    width:              _middleRowWidth
+                                    text:               qsTr("Action:")
+                                }
+                                FactComboBox {
+                                    id:                 rcLossCombo
+                                    width:              _editFieldWidth
+                                    model:              [ qsTr("Loiter"), qsTr("Return To Land"), qsTr("Land at current position") ]
+                                    fact:               _rcLossAction
+                                }
+                            }
+                            Row {
+                                QGCLabel {
+                                    anchors.baseline:   rcLossField.baseline
+                                    width:              _middleRowWidth
+                                    text:               qsTr("RC Loss Timeout:")
+                                }
+                                FactTextField {
+                                    id:                 rcLossField
+                                    fact:               controller.getParameterFact(-1, "COM_RC_LOSS_T")
+                                    showUnits:          true
+                                    width:              _editFieldWidth
+                                }
+                            }
+                            /*
+                                This is defined in the parameter specification but it is not clear how it is used.
+                                The actions above (RTL, Loiter, and Land At Current Position) makes its meaning
+                                ambiguous. Loiter before RTL and/or Land At Current Position? What if the action
+                                is set to "Loiter"? What happens after the timeout?
+                            Row {
+                                QGCLabel {
+                                    anchors.baseline:   rcLossLoiterField.baseline
+                                    width:              _middleRowWidth
+                                    text:               qsTr("RC Loss Loiter Period:")
+                                }
+                                FactTextField {
+                                    id:                 rcLossLoiterField
+                                    fact:               controller.getParameterFact(-1, "NAV_RCL_LT")
+                                    showUnits:          true
+                                }
+                            }
+                            */
+                        }
+                    }
+                }
+                /*
+                   **** Geofence ****
+                */
+                QGCLabel {
+                    text:                               qsTr("Geofence Trigger")
+                    font.weight:                        Font.DemiBold
+                }
+                Rectangle {
+                    color:                              palette.windowShade
+                    width:                              rtlSettings.width
+                    height:                             geofenceRow.height + _margins * 2
+                    Row {
+                        id:                             geofenceRow
+                        spacing:                        _margins
+                        anchors.verticalCenter:         parent.verticalCenter
+                        Item { width: _margins * 0.5; height: 1; }
+                        Image {
+                            height:                     ScreenTools.defaultFontPixelWidth * 8
+                            width:                      ScreenTools.defaultFontPixelWidth * 20
+                            mipmap:                     true
+                            fillMode:                   Image.PreserveAspectFit
+                            source:                     qgcPal.globalTheme === QGCPalette.Light ? "/qmlimages/GeoFenceLight.svg" : "/qmlimages/GeoFence.svg"
+                            anchors.verticalCenter:     parent.verticalCenter
+                        }
+                        Item { width: _margins * 0.5; height: 1; }
+                        Column {
+                            spacing:                    _margins * 0.5
+                            anchors.verticalCenter:     parent.verticalCenter
+                            Row {
+                                QGCLabel {
+                                    id:                 fenceActionLabel
+                                    anchors.baseline:   fenceActionCombo.baseline
+                                    text:               qsTr("Action on breach:")
+                                    width:              _middleRowWidth
+                                }
+                                FactComboBox {
+                                    id:                 fenceActionCombo
+                                    width:              _editFieldWidth
+                                    model:              [ qsTr("None"), qsTr("Warning"), qsTr("Loiter"), qsTr("Return Home"), qsTr("Flight termination") ]
+                                    fact:               _fenceAction
+                                }
+                            }
+                            Row {
+                                QGCCheckBox {
+                                    id:                 fenceRadiusCheckBox
+                                    anchors.baseline:   fenceRadiusField.baseline
+                                    text:               qsTr("Max radius:")
+                                    checked:            _fenceRadius.value >= 0
+                                    onClicked:          _fenceRadius.value = checked ? 100 : -1
+                                    width:              _middleRowWidth
+                                }
+                                FactTextField {
+                                    id:                 fenceRadiusField
+                                    showUnits:          true
+                                    fact:               _fenceRadius
+                                    enabled:            fenceRadiusCheckBox.checked
+                                    width:              _editFieldWidth
+                                }
+                            }
+                            Row {
+                                QGCCheckBox {
+                                    id:                 fenceAltMaxCheckBox
+                                    anchors.baseline:   fenceAltMaxField.baseline
+                                    text:               qsTr("Max altitude:")
+                                    checked:            _fenceAlt.value >= 0
+                                    onClicked:          _fenceAlt.value = checked ? 100 : -1
+                                    width:              _middleRowWidth
+                                }
+                                FactTextField {
+                                    id:                 fenceAltMaxField
+                                    showUnits:          true
+                                    fact:               _fenceAlt
+                                    enabled:            fenceAltMaxCheckBox.checked
+                                    width:              _editFieldWidth
+                                }
+                            }
+                        }
+                    }
+                }
+                /*
+                   **** Return Home Settings ****
+                */
+                QGCLabel {
+                    id:                                 rtlLabel
+                    text:                               qsTr("Return Home Settings")
+                    font.weight:                        Font.DemiBold
+                }
+                Rectangle {
+                    id:                                 rtlSettings
+                    color:                              palette.windowShade
+                    width:                              rtlRow.width  + _margins * 2
+                    height:                             rtlRow.height + _margins * 2
+                    Row {
+                        id:                             rtlRow
+                        spacing:                        _margins
+                        anchors.verticalCenter:         parent.verticalCenter
+                        Item { width: _margins * 0.5; height: 1; }
+                        QGCColoredImage {
+                            id:                         icon
+                            color:                      palette.text
+                            height:                     ScreenTools.defaultFontPixelWidth * 10
+                            width:                      ScreenTools.defaultFontPixelWidth * 20
+                            mipmap:                     true
+                            fillMode:                   Image.PreserveAspectFit
+                            source:                     _fixedWing ? "/qmlimages/ReturnToHomeAltitude.svg" : "/qmlimages/ReturnToHomeAltitudeCopter.svg"
+                            anchors.verticalCenter:     parent.verticalCenter
+                        }
+                        Item { width: _margins * 0.5; height: 1; }
+                        Column {
+                            spacing:                    _margins * 0.5
                             Row {
                                 QGCLabel {
                                     id:                 climbLabel
                                     anchors.baseline:   climbField.baseline
-                                    width:              ScreenTools.defaultFontPixelWidth * 22
+                                    width:              _middleRowWidth
                                     text:               qsTr("Climb to altitude of:")
                                 }
                                 FactTextField {
                                     id:                 climbField
                                     fact:               controller.getParameterFact(-1, "RTL_RETURN_ALT")
                                     showUnits:          true
+                                    width:              _editFieldWidth
                                 }
                             }
+                            Item { width: 1; height: _margins * 0.5; }
                             QGCLabel {
-                                id:                 returnHomeLabel
-                                text:               "Return home, then:"
+                                id:                     returnHomeLabel
+                                text:                   "Return home, then:"
                             }
                             Row {
-                                Item {
-                                    height:     1
-                                    width:      _margins
-                                }
+                                Item { height: 1; width: _margins; }
                                 Column {
                                     spacing:            _margins * 0.5
                                     ExclusiveGroup { id: homeLoiterGroup }
                                     QGCRadioButton {
-                                        id:                 homeLandRadio
-                                        checked:            _rtlLandDelay.value < 0
-                                        exclusiveGroup:     homeLoiterGroup
-                                        text:               "Land immediately"
-                                        onClicked:          _rtlLandDelay.value = 0
+                                        id:             homeLandRadio
+                                        checked:        _rtlLandDelay.value === 0
+                                        exclusiveGroup: homeLoiterGroup
+                                        text:           "Land immediately"
+                                        onClicked:      _rtlLandDelay.value = 0
                                     }
                                     QGCRadioButton {
-                                        id:                 homeLoiterNoLandRadio
-                                        checked:            _rtlLandDelay.value < 0
-                                        exclusiveGroup:     homeLoiterGroup
-                                        text:               "Loiter, do not land"
-                                        onClicked:          _rtlLandDelay.value = -1
+                                        id:             homeLoiterNoLandRadio
+                                        checked:        _rtlLandDelay.value < 0
+                                        exclusiveGroup: homeLoiterGroup
+                                        text:           "Loiter and do not land"
+                                        onClicked:      _rtlLandDelay.value = -1
                                     }
                                     QGCRadioButton {
-                                        id:                 homeLoiterLandRadio
-                                        checked:            _rtlLandDelay.value >= 0
-                                        exclusiveGroup:     homeLoiterGroup
-                                        text:               qsTr("Loiter and land after specified time")
-                                        onClicked:          _rtlLandDelay.value = 60
+                                        id:             homeLoiterLandRadio
+                                        checked:        _rtlLandDelay.value > 0
+                                        exclusiveGroup: homeLoiterGroup
+                                        text:           qsTr("Loiter and land after specified time")
+                                        onClicked:      _rtlLandDelay.value = 60
                                     }
                                 }
                             }
-                            Item {
-                                width:  1
-                                height: _margins
-                            }
+                            Item { width: 1; height: _margins * 0.5; }
                             Row {
                                 QGCLabel {
                                     text:               qsTr("Loiter Time")
-                                    width:              ScreenTools.defaultFontPixelWidth * 22
+                                    width:              _middleRowWidth
                                     anchors.baseline:   landDelayField.baseline
                                     color:              palette.text
                                     enabled:            homeLoiterLandRadio.checked === true
@@ -166,402 +375,114 @@ QGCView {
                                     fact:               controller.getParameterFact(-1, "RTL_LAND_DELAY")
                                     showUnits:          true
                                     enabled:            homeLoiterLandRadio.checked === true
+                                    width:              _editFieldWidth
                                 }
                             }
                             Row {
                                 QGCLabel {
                                     text:               qsTr("Loiter Altitude")
-                                    width:              ScreenTools.defaultFontPixelWidth * 22
+                                    width:              _middleRowWidth
                                     anchors.baseline:   descendField.baseline
                                     color:              palette.text
-                                    enabled:            homeLoiterLandRadio.checked === true
+                                    enabled:            homeLoiterLandRadio.checked === true || homeLoiterNoLandRadio.checked === true
                                 }
                                 FactTextField {
                                     id:                 descendField
                                     fact:               controller.getParameterFact(-1, "RTL_DESCEND_ALT")
-                                    enabled:            homeLoiterLandRadio.checked === true
+                                    enabled:            homeLoiterLandRadio.checked === true || homeLoiterNoLandRadio.checked === true
                                     showUnits:          true
+                                    width:              _editFieldWidth
                                 }
                             }
                         }
                     }
                 }
-
+                /*
+                   **** Land Mode Settings ****
+                */
                 QGCLabel {
-                    text:               qsTr("Land Mode")
-                    font.weight:        Font.DemiBold
+                    text:                               qsTr("Land Mode Settings")
+                    font.weight:                        Font.DemiBold
                 }
-
                 Rectangle {
-                    color:              palette.windowShade
-                    width:              rtlSettings.width
-                    height:             landModeRow.height + _margins * 2
+                    color:                              palette.windowShade
+                    width:                              rtlSettings.width
+                    height:                             landModeRow.height + _margins * 2
                     Row {
-                        id:                     landModeRow
-                        spacing:                _margins
-                        anchors.verticalCenter: parent.verticalCenter
+                        id:                             landModeRow
+                        spacing:                        _margins
+                        anchors.verticalCenter:         parent.verticalCenter
                         Item {
-                            width:              _margins * 0.5
-                            height:             1
+                            width:                      _margins * 0.5
+                            height:                     1
                         }
                         QGCColoredImage {
-                            height:             ScreenTools.defaultFontPixelWidth * 10
-                            width:              ScreenTools.defaultFontPixelWidth * 20
-                            mipmap:             true
-                            fillMode:           Image.PreserveAspectFit
-                            source:             controller.fixedWing ? "/qmlimages/LandMode.svg" : "/qmlimages/LandModeCopter.svg"
-                            anchors.verticalCenter: parent.verticalCenter
+                            color:                      palette.text
+                            height:                     ScreenTools.defaultFontPixelWidth * 10
+                            width:                      ScreenTools.defaultFontPixelWidth * 20
+                            mipmap:                     true
+                            fillMode:                   Image.PreserveAspectFit
+                            source:                     _fixedWing ? "/qmlimages/LandMode.svg" : "/qmlimages/LandModeCopter.svg"
+                            anchors.verticalCenter:     parent.verticalCenter
                         }
                         Item {
-                            width:              _margins * 0.5
-                            height:             1
+                            width:                      _margins * 0.5
+                            height:                     1
                         }
                         Column {
                             spacing:                    _margins * 0.5
                             anchors.verticalCenter:     parent.verticalCenter
                             Row {
-                                visible:                !controller.fixedWing
+                                visible:                !_fixedWing
                                 QGCLabel {
                                     anchors.baseline:   landVelField.baseline
-                                    width:              ScreenTools.defaultFontPixelWidth * 22
-                                    text:               qsTr("Land Velocity:")
+                                    width:              _middleRowWidth
+                                    text:               qsTr("Landing Velocity:")
                                 }
                                 FactTextField {
                                     id:                 landVelField
                                     fact:               controller.getParameterFact(-1, "MPC_LAND_SPEED")
                                     showUnits:          true
+                                    width:              _editFieldWidth
                                 }
                             }
                             Row {
                                 QGCLabel {
                                     anchors.baseline:   disarmField.baseline
-                                    width:              ScreenTools.defaultFontPixelWidth * 22
+                                    width:              _middleRowWidth
                                     text:               qsTr("Disarm After:")
                                 }
                                 FactTextField {
                                     id:                 disarmField
                                     fact:               controller.getParameterFact(-1, "COM_DISARM_LAND")
                                     showUnits:          true
+                                    width:              _editFieldWidth
                                 }
                             }
                         }
                     }
                 }
-
+                /*  Don't know about these
                 QGCLabel {
-                    text:               qsTr("Low Battery Trigger")
-                    font.weight:        Font.DemiBold
+                    id:                 navRclObc
+                    font.pixelSize:     ScreenTools.mediumFontPixelSize
+                    text:               qsTr("Warning: You have an advanced safety configuration set using the NAV_RCL_OBC parameter. The above settings may not apply.")
+                    visible:            fact.value !== 0
+                    wrapMode:           Text.Wrap
+                    property Fact fact: controller.getParameterFact(-1, "NAV_RCL_OBC")
                 }
 
-                Rectangle {
-                    color:              palette.windowShade
-                    width:              rtlSettings.width
-                    height:             lowBattRow.height + _margins * 2
-                    Row {
-                        id:                     lowBattRow
-                        spacing:                _margins
-                        anchors.verticalCenter: parent.verticalCenter
-                        Item {
-                            width:              _margins * 0.5
-                            height:             1
-                        }
-                        QGCColoredImage {
-                            height:             ScreenTools.defaultFontPixelWidth * 10
-                            width:              ScreenTools.defaultFontPixelWidth * 20
-                            mipmap:             true
-                            fillMode:           Image.PreserveAspectFit
-                            source:             "/qmlimages/LowBattery.svg"
-                            anchors.verticalCenter: parent.verticalCenter
-                        }
-                        Item {
-                            width:              _margins * 0.5
-                            height:             1
-                        }
-                        Column {
-                            spacing:                    _margins * 0.5
-                            anchors.verticalCenter:     parent.verticalCenter
-                            Row {
-                                visible:                !controller.fixedWing
-                                QGCLabel {
-                                    anchors.baseline:   lowBattCombo.baseline
-                                    width:              ScreenTools.defaultFontPixelWidth * 22
-                                    text:               qsTr("Action:")
-                                }
-                                FactComboBox {
-                                    id:                 lowBattCombo
-                                    width:              climbField.width
-                                    model:              [ qsTr("No Action"), qsTr("Return To Land") ]
-                                    fact:               _lowBattAction
-                                }
-                            }
-                            Row {
-                                QGCLabel {
-                                    anchors.baseline:   batLowLevelField.baseline
-                                    width:              ScreenTools.defaultFontPixelWidth * 22
-                                    text:               qsTr("Battery Low Level:")
-                                }
-                                FactTextField {
-                                    id:                 batLowLevelField
-                                    fact:               controller.getParameterFact(-1, "COM_DISARM_LAND")
-                                    showUnits:          true
-                                }
-                            }
-                        }
-                    }
-                }
-
-
-
-
-
-
-
-
-
-
-
-                Rectangle {
-                    color:              palette.windowShade
-                    width:              rtlSettings.width
-                    height:             _triggerCol.height + _margins * 2
-                    Column {
-                        id:                     _triggerCol
-                        spacing:                _margins
-                        anchors.verticalCenter: parent.verticalCenter
-                        Row {
-                            id:                     rcLossRow
-                            spacing:                _margins
-                            Item {
-                                width:              _margins * 0.5
-                                height:             1
-                            }
-                            QGCLabel {
-                                text:               qsTr("RC Loss")
-                                font.weight:        Font.DemiBold
-                                width:              ScreenTools.defaultFontPixelWidth * 20
-                            }
-                            Item {
-                                width:              _margins * 0.5
-                                height:             1
-                            }
-                            Column {
-                                spacing:                    _margins * 0.5
-                                Row {
-                                    QGCLabel {
-                                        anchors.baseline:   rcLossCombo.baseline
-                                        width:              ScreenTools.defaultFontPixelWidth * 22
-                                        text:               qsTr("Action:")
-                                    }
-                                    FactComboBox {
-                                        id:                 rcLossCombo
-                                        width:              climbField.width
-                                        model:              [ qsTr("Loiter"), qsTr("Return To Land"), qsTr("Land at current position") ]
-                                        fact:               _rcLossAction
-                                    }
-                                }
-                                Row {
-                                    QGCLabel {
-                                        anchors.baseline:   rcLossField.baseline
-                                        width:              ScreenTools.defaultFontPixelWidth * 22
-                                        text:               qsTr("RC Loss Timeout:")
-                                    }
-                                    FactTextField {
-                                        id:                 rcLossField
-                                        fact:               controller.getParameterFact(-1, "COM_RC_LOSS_T")
-                                        showUnits:          true
-                                    }
-                                }
-                                /*
-                                    This is defined in the parameter specification but it is not clear how it is used.
-                                    The actions above (RTL, Loiter, and Land At Current Position) makes its meaning
-                                    ambiguous. Loiter before RTL and/or Land At Current Position? What if the action
-                                    is set to "Loiter"? What happens after the timeout?
-                                Row {
-                                    QGCLabel {
-                                        anchors.baseline:   rcLossLoiterField.baseline
-                                        width:              ScreenTools.defaultFontPixelWidth * 22
-                                        text:               qsTr("RC Loss Loiter Period:")
-                                    }
-                                    FactTextField {
-                                        id:                 rcLossLoiterField
-                                        fact:               controller.getParameterFact(-1, "NAV_RCL_LT")
-                                        showUnits:          true
-                                    }
-                                }
-                                */
-                            }
-                        }
-                        Item {
-                            width:  1
-                            height: _margins
-                        }
-                        Row {
-                            id:                     geofenceRow
-                            spacing:                _margins
-                            Item {
-                                width:              _margins * 0.5
-                                height:             1
-                            }
-                            QGCLabel {
-                                text:               qsTr("GeoFence")
-                                font.weight:        Font.DemiBold
-                                width:              ScreenTools.defaultFontPixelWidth * 20
-                            }
-                            Item {
-                                width:              _margins * 0.5
-                                height:             1
-                            }
-                            Column {
-                                spacing:                    _margins * 0.5
-                                Row {
-                                    QGCLabel {
-                                        id:                 fenceActionLabel
-                                        anchors.baseline:   fenceActionCombo.baseline
-                                        text:               qsTr("Action on breach:")
-                                        width:              ScreenTools.defaultFontPixelWidth * 22
-                                    }
-                                    FactComboBox {
-                                        id:                 fenceActionCombo
-                                        width:              fenceAltMaxField.width
-                                        model:              [ qsTr("None"), qsTr("Warning"), qsTr("Loiter"), qsTr("Return Home"), qsTr("Flight termination") ]
-                                        fact:               _fenceAction
-                                    }
-                                }
-                                Row {
-                                    QGCCheckBox {
-                                        id:                 fenceRadiusCheckBox
-                                        anchors.baseline:   fenceRadiusField.baseline
-                                        text:               qsTr("Max radius:")
-                                        checked:            _fenceRadius.value >= 0
-                                        onClicked:          _fenceRadius.value = checked ? 100 : -1
-                                        width:              ScreenTools.defaultFontPixelWidth * 22
-                                    }
-                                    FactTextField {
-                                        id:                 fenceRadiusField
-                                        showUnits:          true
-                                        fact:               _fenceRadius
-                                        enabled:            fenceRadiusCheckBox.checked
-                                    }
-                                }
-                                Row {
-                                    QGCCheckBox {
-                                        id:                 fenceAltMaxCheckBox
-                                        anchors.baseline:   fenceAltMaxField.baseline
-                                        text:               qsTr("Max altitude:")
-                                        checked:            _fenceAlt.value >= 0
-                                        onClicked:          _fenceAlt.value = checked ? 100 : -1
-                                        width:              ScreenTools.defaultFontPixelWidth * 22
-                                    }
-                                    FactTextField {
-                                        id:                 fenceAltMaxField
-                                        showUnits:          true
-                                        fact:               _fenceAlt
-                                        enabled:            fenceAltMaxCheckBox.checked
-                                    }
-                                }
-                            }
-                        }
-                    }
-                }
-            }
-
-            /*
-
-            QGCLabel {
-                id:             triggerLabel
-                text:           qsTr("Triggers For Return Home")
-                font.weight:    Font.DemiBold
-            }
-
-            Rectangle {
-                id:                     triggerSettings
-                anchors.topMargin:      _margins / 2
-                anchors.rightMargin:    _margins
-                anchors.left:           parent.left
-                anchors.top:            triggerLabel.bottom
-                anchors.bottom:         geoFenceSettings.bottom
-                width:                  telemetryLossField.x + telemetryLossField.width + (_margins * 2)
-                color:                  palette.windowShade
-
                 QGCLabel {
-                    text:               qsTr("RC Transmitter Signal Loss: Return Home after")
-                    anchors.margins:    _margins
-                    anchors.left:       parent.left
-                    anchors.baseline:   rcLossField.baseline
-                }
-
-                FactTextField {
-                    id:                 rcLossField
-                    anchors.topMargin:  _margins
-                    anchors.top:        parent.top
-                    anchors.left:       telemetryLossField.left
-                    fact:               controller.getParameterFact(-1, "COM_RC_LOSS_T")
-                    showUnits:          true
-                }
-
-                FactCheckBox {
-                    id:                 telemetryTimeoutCheckbox
-                    anchors.margins:    _margins
-                    anchors.left:       parent.left
-                    anchors.baseline:   telemetryLossField.baseline
-                    fact:               controller.getParameterFact(-1, "COM_DL_LOSS_EN")
-                    checkedValue:       1
-                    uncheckedValue:     0
-                    text:               qsTr("Telemetry Signal Timeout: Return Home after")
+                    id:                 navDllObc
+                    font.pixelSize:     ScreenTools.mediumFontPixelSize
+                    text:               qsTr("Warning: You have an advanced safety configuration set using the NAV_DLL_OBC parameter. The above settings may not apply.")
+                    visible:            fact.value !== 0
+                    wrapMode:           Text.Wrap
+                    property Fact fact: controller.getParameterFact(-1, "NAV_DLL_OBC")
                 }
-
-                FactTextField {
-                    id:                 telemetryLossField
-                    anchors.leftMargin: _margins
-                    anchors.topMargin:  _margins / 2
-                    anchors.left:       telemetryTimeoutCheckbox.right
-                    anchors.top:        rcLossField.bottom
-                    fact:               controller.getParameterFact(-1, "COM_DL_LOSS_T")
-                    showUnits:          true
-                    enabled:            telemetryTimeoutCheckbox.checked
-                }
-            } // Rectangle - Trigger settings
-
-
-
-            QGCLabel {
-                id:                 navRclObc
-                anchors.topMargin:  _margins
-                anchors.top:        rtlSettings.bottom
-                anchors.left:       parent.left
-                anchors.right:      parent.right
-                font.pixelSize:     ScreenTools.mediumFontPixelSize
-                text:               qsTr("Warning: You have an advanced safety configuration set using the NAV_RCL_OBC parameter. The above settings may not apply.")
-                visible:            fact.value !== 0
-                wrapMode:           Text.Wrap
-
-                property Fact fact: controller.getParameterFact(-1, "NAV_RCL_OBC")
+                */
             }
-
-            QGCLabel {
-                id:                 navDllObc
-                anchors.topMargin:  _margins / 2
-                anchors.top:        navRclObc.bottom
-                anchors.left:       parent.left
-                anchors.right:      parent.right
-                font.pixelSize:     ScreenTools.mediumFontPixelSize
-                text:               qsTr("Warning: You have an advanced safety configuration set using the NAV_DLL_OBC parameter. The above settings may not apply.")
-                visible:            fact.value !== 0
-                wrapMode:           Text.Wrap
-
-                property Fact fact: controller.getParameterFact(-1, "NAV_DLL_OBC")
-            }
-
-            Item {
-                id:             screenBottom
-                anchors.top:    navDllObc.bottom
-                width:          1
-                height:         1
-            }
-*/
-
-
-        } // QGCFlickable
-    } // QGCViewPanel
-} // QGCView
+        }
+    }
+}