Commit 67239b4f authored by Lorenz Meier's avatar Lorenz Meier

Merged QGC master with project-specific startup selection

parents 64cfb10b 43bd7b72
This source diff could not be displayed because it is too large. You can view the blob instead.
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="204.65625"
height="203.875"
id="svg2"
version="1.1"
inkscape:version="0.48.2 r9819"
sodipodi:docname="qgroundcontrol-ardrone.svg">
<defs
id="defs4">
<linearGradient
inkscape:collect="always"
id="linearGradient4002">
<stop
style="stop-color:#020202;stop-opacity:1;"
offset="0"
id="stop4004" />
<stop
style="stop-color:#020202;stop-opacity:0;"
offset="1"
id="stop4006" />
</linearGradient>
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4002"
id="radialGradient4020"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1,0,0,1.0868293,0,-36.925542)"
cx="121.8222"
cy="425.26608"
fx="121.8222"
fy="425.26608"
r="26.555349" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4002"
id="radialGradient4028"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1,0,0,1.0868293,0,-36.925542)"
cx="121.8222"
cy="425.26608"
fx="121.8222"
fy="425.26608"
r="26.555349" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4002"
id="radialGradient4036"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1,0,0,1.0868293,0,-36.925542)"
cx="121.8222"
cy="425.26608"
fx="121.8222"
fy="425.26608"
r="26.555349" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient4002"
id="radialGradient4038"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1,0,0,1.0868293,0,-36.925542)"
cx="121.8222"
cy="425.26608"
fx="121.8222"
fy="425.26608"
r="26.555349" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.86772068"
inkscape:cx="89.14956"
inkscape:cy="84.037903"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:window-width="1138"
inkscape:window-height="714"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="0" />
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Ebene 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-69.4375,-373.03125)">
<path
style="fill:#3f3f3f;fill-opacity:0.72347263;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.82315111"
d="m 123.4375,373.53125 c -29.25014,0 -52.9375,22.87542 -52.9375,51.09375 0,7.58451 1.739369,14.77789 4.8125,21.25 l -0.03125,0.0312 2.40625,5.125 2.96875,4.28125 2.6875,4.5625 -1.625,31.46875 0.34375,0.5 c -7.581525,8.93266 -12.125,20.40661 -12.125,32.90625 0,28.51621 23.717689,51.625 52.96875,51.625 7.80208,0 15.20584,-1.67195 21.875,-4.625 l 5.5,-1.90625 9.40625,-3.5 7.78125,-0.53125 3.21875,-0.28125 5.125,0 4.28125,0 5.125,1.34375 7,2.15625 7.5,2.40625 0.59375,0.1875 c 6.57323,3.04879 13.88198,4.78125 21.59375,4.78125 28.54753,0 51.6875,-23.31839 51.6875,-52.0625 0,-8.73443 -2.16142,-16.95923 -5.9375,-24.1875 L 268,499.6875 264.25,493.5 l -1.0625,-1.625 -1.375,-4.5625 -1.59375,-22.0625 1.03125,-5.8125 c 0.77945,-0.93304 1.53641,-1.8878 2.25,-2.875 l 1.8125,-2.3125 2.96875,-5.375 0.71875,-2 c 1.42622,-3.27588 2.55037,-6.72547 3.28125,-10.3125 l 0.3125,-1.125 0.78125,-5.9375 -0.15625,-0.125 c 0.0679,-1.08924 0.0937,-2.17481 0.0937,-3.28125 0,-28.66987 -23.13997,-51.90625 -51.6875,-51.90625 -9.81322,0 -18.96589,2.73092 -26.78125,7.5 l -1.5625,0.78125 -7.25,4.84375 -2.15625,1.34375 -7,10.75 -0.0625,0.84375 c -0.49879,0.87062 -0.98849,1.75477 -1.4375,2.65625 l -0.0937,0 0.53125,-1.625 -1.09375,0 -0.25,-3.75 -4.3125,-0.28125 -0.40625,2.59375 c -1.69175,-2.93298 -3.6707,-5.7082 -5.90625,-8.25 l -0.40625,-0.78125 -3.5,-3.78125 -2.375,-1.4375 c -9.21863,-7.50503 -21.11816,-12.0625 -34.125,-12.0625 z m 0.5,8.125 c 17.16197,0 32.04337,9.42094 39.5,23.25 l -0.25,9.8125 1.59375,2.6875 0.46875,24.0625 c -0.14966,0.35806 -0.30965,0.70928 -0.46875,1.0625 l 0,2.03125 -9.9375,15.875 -5.90625,2.9375 -2.6875,1.34375 -8.34375,2.15625 -0.0937,-0.5 c -4.36872,1.39249 -9.02615,2.15625 -13.875,2.15625 -24.643842,0 -44.625,-19.44816 -44.625,-43.4375 0,-23.98934 19.981158,-43.4375 44.625,-43.4375 z m 97.5625,0.8125 c 24.64383,0 44.625,19.44816 44.625,43.4375 0,23.98934 -19.98117,43.4375 -44.625,43.4375 -5.58587,0 -10.91714,-1.01946 -15.84375,-2.84375 l -4.84375,-0.6875 -9.40625,-4.3125 -4.34375,-8 c -1.9583,-2.31452 -3.68616,-4.82021 -5.125,-7.5 l -0.5,-2.78125 -0.53125,-25.8125 1.625,-2.15625 -0.1875,-10.1875 c 7.5797,-13.46636 22.27016,-22.59375 39.15625,-22.59375 z m -129.03125,84.6875 9.15625,5.09375 1.34375,1.09375 -0.5625,1.875 -12.875,8.0625 -0.5625,-1.09375 3.5,-15.03125 z M 251.625,468.5 l 3.21875,14.5 -12.90625,-7.53125 0,-2.125 9.6875,-4.84375 z m -106.46875,2.15625 2.96875,7.78125 -1.625,1.0625 -2.6875,-1.34375 -21.21875,-2.125 -0.5625,-1.625 23.125,-3.75 z m 54.3125,0.53125 22.5625,4.03125 0,0.8125 -17.46875,2.125 -4.84375,0.8125 -2.125,0.53125 0.25,-2.125 1.625,-6.1875 z m -76.625,9.65625 c 12.95415,0 24.62875,5.3551 32.78125,13.9375 L 165.0625,515 l -2.34375,28.75 c -0.21202,0.41084 -0.43141,0.81548 -0.65625,1.21875 l -2.375,12.78125 -17.75,6.4375 -0.21875,-0.53125 c -5.72964,2.6108 -12.12675,4.0625 -18.875,4.0625 -24.643842,0 -44.625,-19.44816 -44.625,-43.4375 0,-23.98934 19.981158,-43.4375 44.625,-43.4375 z m 97.59375,0 c 24.64383,0 44.625,19.44816 44.625,43.4375 0,23.98934 -19.98117,43.4375 -44.625,43.4375 -7.77961,0 -15.10307,-1.93502 -21.46875,-5.34375 l -1.375,-0.0625 -12.375,-4.03125 -1.875,-9.875 c -0.0723,-0.10514 -0.14735,-0.20672 -0.21875,-0.3125 l -3.03125,-30.40625 10.21875,-24.46875 -0.15625,-0.84375 c 7.95621,-7.15925 18.59298,-11.53125 30.28125,-11.53125 z"
id="path3115"
inkscape:connector-curvature="0" />
<g
id="g4010">
<path
inkscape:connector-curvature="0"
id="path3998"
d="m 155.25605,459.16108 -18.44626,-18.44626 -1.22975,0.46115 -0.92231,0 -9.37685,-6.60991 -1.38347,-2.76694 -3.68926,-0.30744 -2.30578,-1.6909 -1.07603,-2.15207 -0.30744,-3.99669 0.92231,-2.92066 2.92066,-1.99834 2.61322,-0.30744 3.2281,0.7686 1.69091,2.15206 1.38347,1.99835 -0.15372,2.61322 0,0.15371 2.61322,1.69091 2.61322,2.92066 3.99669,7.07107 0,1.99834 17.83139,17.83139 z"
style="fill:#020202;fill-opacity:0.60771706;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path4000"
d="m 97.61148,453.6272 -1.844627,-2.4595 20.905767,-23.36527 8.76197,-9.06941 0.30744,-2.92066 19.98345,-18.90742 2.15207,2.61322 -15.98676,19.06114 -3.2281,3.38182 -7.37851,8.1471 -1.07603,4.76528 z"
style="fill:url(#radialGradient4038);fill-opacity:1;stroke:none" />
</g>
<g
id="g4014"
transform="matrix(-1,0,0,-1,346.04072,951.29831)">
<path
style="fill:#020202;fill-opacity:0.60771706;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 155.25605,459.16108 -18.44626,-18.44626 -1.22975,0.46115 -0.92231,0 -9.37685,-6.60991 -1.38347,-2.76694 -3.68926,-0.30744 -2.30578,-1.6909 -1.07603,-2.15207 -0.30744,-3.99669 0.92231,-2.92066 2.92066,-1.99834 2.61322,-0.30744 3.2281,0.7686 1.69091,2.15206 1.38347,1.99835 -0.15372,2.61322 0,0.15371 2.61322,1.69091 2.61322,2.92066 3.99669,7.07107 0,1.99834 17.83139,17.83139 z"
id="path4016"
inkscape:connector-curvature="0" />
<path
style="fill:url(#radialGradient4020);fill-opacity:1;stroke:none"
d="m 97.61148,453.6272 -1.844627,-2.4595 20.905767,-23.36527 8.76197,-9.06941 0.30744,-2.92066 19.98345,-18.90742 2.15207,2.61322 -15.98676,19.06114 -3.2281,3.38182 -7.37851,8.1471 -1.07603,4.76528 z"
id="path4018"
inkscape:connector-curvature="0" />
</g>
<g
transform="matrix(0,-1,1,0,-305.09183,648.85898)"
id="g4022">
<path
inkscape:connector-curvature="0"
id="path4024"
d="m 155.25605,459.16108 -18.44626,-18.44626 -1.22975,0.46115 -0.92231,0 -9.37685,-6.60991 -1.38347,-2.76694 -3.68926,-0.30744 -2.30578,-1.6909 -1.07603,-2.15207 -0.30744,-3.99669 0.92231,-2.92066 2.92066,-1.99834 2.61322,-0.30744 3.2281,0.7686 1.69091,2.15206 1.38347,1.99835 -0.15372,2.61322 0,0.15371 2.61322,1.69091 2.61322,2.92066 3.99669,7.07107 0,1.99834 17.83139,17.83139 z"
style="fill:#020202;fill-opacity:0.60771706;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path4026"
d="m 97.61148,453.6272 -1.844627,-2.4595 20.905767,-23.36527 8.76197,-9.06941 0.30744,-2.92066 19.98345,-18.90742 2.15207,2.61322 -15.98676,19.06114 -3.2281,3.38182 -7.37851,8.1471 -1.07603,4.76528 z"
style="fill:url(#radialGradient4028);fill-opacity:1;stroke:none" />
</g>
<g
id="g4030"
transform="matrix(0,1,-1,0,648.10112,301.30254)">
<path
style="fill:#020202;fill-opacity:0.60771706;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 155.25605,459.16108 -18.44626,-18.44626 -1.22975,0.46115 -0.92231,0 -9.37685,-6.60991 -1.38347,-2.76694 -3.68926,-0.30744 -2.30578,-1.6909 -1.07603,-2.15207 -0.30744,-3.99669 0.92231,-2.92066 2.92066,-1.99834 2.61322,-0.30744 3.2281,0.7686 1.69091,2.15206 1.38347,1.99835 -0.15372,2.61322 0,0.15371 2.61322,1.69091 2.61322,2.92066 3.99669,7.07107 0,1.99834 17.83139,17.83139 z"
id="path4032"
inkscape:connector-curvature="0" />
<path
style="fill:url(#radialGradient4036);fill-opacity:1;stroke:none"
d="m 97.61148,453.6272 -1.844627,-2.4595 20.905767,-23.36527 8.76197,-9.06941 0.30744,-2.92066 19.98345,-18.90742 2.15207,2.61322 -15.98676,19.06114 -3.2281,3.38182 -7.37851,8.1471 -1.07603,4.76528 z"
id="path4034"
inkscape:connector-curvature="0" />
</g>
</g>
</svg>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="94.766922"
height="82.001389"
id="svg2"
version="1.1"
inkscape:version="0.48.2 r9819"
sodipodi:docname="qgroundcontrol-generic.svg"
inkscape:export-filename="/Users/lomeier/Documents/logos/qupgrade_logo.png"
inkscape:export-xdpi="197.41441"
inkscape:export-ydpi="197.41441">
<defs
id="defs4">
<linearGradient
id="linearGradient3886">
<stop
id="stop3888"
offset="0"
style="stop-color:#fd8f00;stop-opacity:1;" />
<stop
id="stop3890"
offset="1"
style="stop-color:#ff590f;stop-opacity:1;" />
</linearGradient>
<linearGradient
id="linearGradient3870">
<stop
style="stop-color:#101317;stop-opacity:0.67521369;"
offset="0"
id="stop3872" />
<stop
style="stop-color:#000f27;stop-opacity:0;"
offset="1"
id="stop3874" />
</linearGradient>
<linearGradient
id="linearGradient3769">
<stop
style="stop-color:#0b6cff;stop-opacity:1;"
offset="0"
id="stop3771" />
<stop
style="stop-color:#62a1ff;stop-opacity:1;"
offset="1"
id="stop3773" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3769"
id="linearGradient3777"
x1="256.27164"
y1="397.87418"
x2="388.64728"
y2="397.87418"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3769"
id="linearGradient3785"
x1="309.72726"
y1="430.48431"
x2="440.78152"
y2="430.48431"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3769"
id="linearGradient3793"
x1="221.13821"
y1="362.93268"
x2="317.54544"
y2="362.93268"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3769"
id="linearGradient3801"
x1="229.16389"
y1="462.22253"
x2="270.93777"
y2="462.22253"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(1.4347202,1.2912482)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3769"
id="linearGradient3809"
x1="267.68182"
y1="478.02814"
x2="309.43112"
y2="478.02814"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.9982874,0.05850016,-0.05850016,0.9982874,26.737243,-13.909849)" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3769"
id="linearGradient3853"
x1="221.13821"
y1="398.46805"
x2="440.78152"
y2="398.46805"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3769"
id="linearGradient3855"
gradientUnits="userSpaceOnUse"
x1="221.13821"
y1="398.46805"
x2="440.78152"
y2="398.46805" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3769"
id="linearGradient3857"
gradientUnits="userSpaceOnUse"
x1="221.13821"
y1="398.46805"
x2="440.78152"
y2="398.46805" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3769"
id="linearGradient3859"
gradientUnits="userSpaceOnUse"
x1="221.13821"
y1="398.46805"
x2="440.78152"
y2="398.46805" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3769"
id="linearGradient3861"
gradientUnits="userSpaceOnUse"
x1="221.13821"
y1="398.46805"
x2="440.78152"
y2="398.46805" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3769"
id="linearGradient3863"
gradientUnits="userSpaceOnUse"
x1="221.13821"
y1="398.46805"
x2="440.78152"
y2="398.46805" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3870"
id="radialGradient3876"
cx="314.65048"
cy="521.57562"
fx="314.65048"
fy="521.57562"
r="104.71806"
gradientTransform="matrix(1,0,0,0.20616113,0,414.047)"
gradientUnits="userSpaceOnUse" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient3886"
id="radialGradient3898"
cx="270.87222"
cy="392.51038"
fx="270.87222"
fy="392.51038"
r="61.659081"
gradientTransform="matrix(1,0,0,1.8914171,0,-349.89048)"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3886"
id="linearGradient3906"
x1="319.07666"
y1="406.0119"
x2="438.94656"
y2="406.0119"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3769"
id="linearGradient3017"
gradientUnits="userSpaceOnUse"
x1="221.13821"
y1="398.46805"
x2="440.78152"
y2="398.46805"
gradientTransform="translate(1.4888824,-1.9851766)" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="2.6687159"
inkscape:cx="86.896407"
inkscape:cy="-14.201037"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:window-width="1280"
inkscape:window-height="752"
inkscape:window-x="518"
inkscape:window-y="118"
inkscape:window-maximized="0"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0" />
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-218.41197,-301.6875)">
<g
id="g3926"
transform="matrix(0.38944465,0,0,0.38944465,131.71185,184.19692)">
<path
id="path2987"
d="m 232.8125,302.1875 -9.6875,21.4375 66.65625,90.96875 c -7.25015,13.5715 -14.3327,27.20023 -19.90625,38.59375 l -27.28125,-12.84375 -8.5,11.875 25.28125,25 c -0.65577,2.1993 -0.79174,3.60942 -0.3125,4 4.92138,4.0109 1.13367,1.46752 7.15625,5.28125 0.62827,0.39784 2.1212,-0.38979 4.28125,-2.03125 l 30.0625,16.125 9.125,-11.40625 -20.5625,-22.625 c 8.76527,-9.25589 19.08205,-20.76266 29.3125,-32.53125 l 103.75,28.59375 19.59375,-17.15625 -91.71875,-49 c 7.97727,-9.82795 14.02942,-17.64629 16.1875,-21.09375 9.60221,-15.33923 33.98072,-62.20143 18.1875,-69.3125 -15.79323,-7.11107 -50.73943,31.06094 -60.21875,46.59375 -1.75706,2.87912 -5.28553,8.99198 -9.8125,17.03125 l -81.59375,-67.5 z"
style="fill:#000000;fill-opacity:0.53376202;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.61093247"
inkscape:connector-curvature="0" />
<path
inkscape:export-ydpi="197.41441"
inkscape:export-xdpi="197.41441"
sodipodi:nodetypes="ccczccc"
inkscape:connector-curvature="0"
id="path3830"
d="m 388.47226,426.94175 c -14.14502,20.08913 -37.17423,14.7309 -37.17423,14.7309 0,0 2.22673,-11.0706 2.30274,-11.14995 0,0 15.50452,4.19264 25.83843,-9.50522 10.33393,-13.69786 0.55137,-32.59232 0.55137,-32.59232 l 10.3275,-3.81066 c 8.45771,20.14931 5.65551,30.55726 -1.84581,42.32725 z"
style="fill:#000000;fill-opacity:0.53376202;stroke:#000000;stroke-width:0.324599px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
style="fill:#000000;fill-opacity:0.53376202;stroke:#000000;stroke-width:0.53760475px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 411.47403,444.9229 c -23.42715,33.27186 -61.5684,24.39749 -61.5684,24.39749 0,0 3.68793,-18.33526 3.81382,-18.46668 0,0 25.67877,6.9439 42.79392,-15.74266 17.11517,-22.68656 0.91318,-53.97979 0.91318,-53.97979 l 17.10453,-6.31125 c 14.00776,33.37152 9.36672,50.60929 -3.05705,70.10289 z"
id="path3835"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccczccc"
inkscape:export-xdpi="197.41441"
inkscape:export-ydpi="197.41441" />
<path
inkscape:export-ydpi="197.41441"
inkscape:export-xdpi="197.41441"
sodipodi:nodetypes="ccczccc"
inkscape:connector-curvature="0"
id="path3837"
d="m 446.80628,470.86241 c -37.66593,53.49416 -98.98904,39.22603 -98.98904,39.22603 0,0 5.92941,-29.47924 6.13182,-29.69053 0,0 41.28606,11.16433 68.80362,-25.31089 27.5176,-36.47522 1.4682,-86.78815 1.4682,-86.78815 l 27.50049,-10.14716 c 22.52153,53.65438 15.05972,81.36909 -4.91509,112.7107 z"
style="fill:#000000;fill-opacity:0.53376202;stroke:#000000;stroke-width:0.86435539px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
</g>
</g>
</svg>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="123.80738"
height="59.78463"
id="svg2"
version="1.1"
inkscape:version="0.48.2 r9819"
sodipodi:docname="qgroundcontrol-px4.svg">
<defs
id="defs4" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.62016872"
inkscape:cx="-132.1219"
inkscape:cy="221.56275"
inkscape:document-units="px"
inkscape:current-layer="g4032"
showgrid="false"
inkscape:window-width="1031"
inkscape:window-height="699"
inkscape:window-x="154"
inkscape:window-y="0"
inkscape:window-maximized="0"
showguides="true"
inkscape:guide-bbox="true"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0" />
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Ebene 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-78.427289,-453.17262)">
<flowRoot
xml:space="preserve"
id="flowRoot2993"
style="font-size:40px;font-style:italic;font-variant:normal;font-weight:bold;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Airbus Special;-inkscape-font-specification:Airbus Special Bold Italic"><flowRegion
id="flowRegion2995"><rect
id="rect2997"
width="456.43564"
height="208.91089"
x="650.49506"
y="332.56021" /></flowRegion><flowPara
id="flowPara2999" /></flowRoot> <text
xml:space="preserve"
style="font-size:24px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Helvetica"
x="39.796597"
y="57.447254"
id="text3974"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan3976"
x="39.796597"
y="57.447254" /></text>
<g
id="g4032"
inkscape:export-filename="/Users/user/Desktop/px4-board-logo-extra-large.png"
inkscape:export-xdpi="509.58408"
inkscape:export-ydpi="509.58408"
transform="translate(-401.50364,67.723506)">
<path
sodipodi:nodetypes="sssssssss"
inkscape:connector-curvature="0"
id="path4017"
d="m 501.82345,386.34911 c 3.82294,0 92.11887,0 92.11887,0 6.3084,0 10.06031,5.25714 8.5701,11.387 l -9.00015,37.0215 c -1.49021,6.12986 -5.0786,9.57613 -11.387,9.57613 l -92.38814,0 c -6.3084,0 -10.09192,-5.2649 -8.5701,-11.387 l 9.20198,-37.0185 c 1.52182,-6.1221 5.14604,-9.57913 11.45444,-9.57913 z"
style="fill:none;stroke:#000000;stroke-width:3.9;stroke-miterlimit:4;stroke-opacity:0.66559488000000000;stroke-dasharray:none" />
<g
style="font-size:40px;font-style:italic;font-variant:normal;font-weight:bold;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:0.69453377;stroke:none;font-family:Airbus Special;-inkscape-font-specification:Airbus Special Bold Italic"
id="text4019">
<path
d="m 520.70435,402.33067 c 0.4533,2e-5 0.7333,0.08 0.84,0.24 0.1333,0.16002 0.1333,0.50669 0,1.04 l -3.16,12.92 c -0.13336,0.53334 -0.29336,0.88001 -0.48,1.04 -0.16003,0.16 -0.48003,0.24 -0.96,0.24 l -10.2,0 c -0.29335,0 -0.56001,0.08 -0.8,0.24 -0.21335,0.16 -0.34668,0.34667 -0.4,0.56 l -0.44,1.84 c -0.0534,0.21334 -0.0134,0.4 0.12,0.56 0.15999,0.16 0.38665,0.24 0.68,0.24 l 10.6,0 c 1.27997,0 2.37331,-0.0933 3.28,-0.28 0.9333,-0.18666 1.71997,-0.49333 2.36,-0.92 0.66664,-0.45333 1.2133,-1.04 1.64,-1.76 0.42663,-0.71999 0.7733,-1.62666 1.04,-2.72 l 2.68,-11 c 0.26663,-1.09331 0.35996,-1.99998 0.28,-2.72 -0.08,-0.71998 -0.3467,-1.29331 -0.8,-1.72 -0.45337,-0.45331 -1.12003,-0.77331 -2,-0.96 -0.88003,-0.18664 -2.00003,-0.27998 -3.36,-0.28 l -19.44,0 c -0.29334,2e-5 -0.56001,0.08 -0.8,0.24 -0.21334,0.16002 -0.34668,0.34669 -0.4,0.56 l -0.44,1.84 c -0.0533,0.21335 -0.0133,0.40002 0.12,0.56 0.15999,0.16002 0.38666,0.24002 0.68,0.24 l 19.36,0 m -15.68,5.56 c 0.0533,-0.21332 -1e-5,-0.41332 -0.16,-0.6 -0.13335,-0.21332 -0.34668,-0.31998 -0.64,-0.32 l -4.12,0 c -0.29334,2e-5 -0.56001,0.10668 -0.8,0.32 -0.21334,0.18668 -0.34667,0.38668 -0.4,0.6 l -5,20.52 c -0.0533,0.21333 -0.0133,0.39999 0.12,0.56 0.16,0.15999 0.38666,0.23999 0.68,0.24 l 4.12,0 c 0.29333,-10e-6 0.54666,-0.08 0.76,-0.24 0.23999,-0.16001 0.38666,-0.34667 0.44,-0.56 l 5,-20.52"
style="fill:#000000;font-family:Republika Exp;-inkscape-font-specification:Republika Exp Bold Italic;fill-opacity:0.69453377"
id="path3039"
inkscape:connector-curvature="0" />
<path
d="m 531.03685,421.25067 c 0.10666,0 0.25333,-0.0267 0.44,-0.08 0.18666,-0.08 0.30666,-0.14667 0.36,-0.2 l 9.68,-7.2 4.6,7.16 c 0.0533,0.08 0.14664,0.16 0.28,0.24 0.15998,0.0533 0.29331,0.08 0.4,0.08 l 5.36,0 c 0.4533,0 0.79997,-0.13333 1.04,-0.4 0.23997,-0.29333 0.2533,-0.58666 0.04,-0.88 l -7.12,-10.2 12.28,-9.52 c 0.3733,-0.29331 0.50663,-0.58664 0.4,-0.88 -0.1067,-0.29331 -0.3867,-0.43998 -0.84,-0.44 l -4.12,0 c -0.1067,2e-5 -0.24003,0.04 -0.4,0.12 -0.16003,0.0534 -0.29336,0.10669 -0.4,0.16 l -9.2,7.24 -4.92,-7.2 c -0.0533,-0.08 -0.17335,-0.14664 -0.36,-0.2 -0.16001,-0.08 -0.29335,-0.11998 -0.4,-0.12 l -5.56,0 c -0.45334,2e-5 -0.80001,0.14669 -1.04,0.44 -0.24001,0.26669 -0.25334,0.54669 -0.04,0.84 l 7.24,10.36 -9.56,7.28 -6.44,0 c -0.29333,0 -0.54666,0.08 -0.76,0.24 -0.24,0.16 -0.38666,0.34667 -0.44,0.56 l -0.44,1.84 c -0.0533,0.21334 0,0.4 0.16,0.56 0.13334,0.16 0.34667,0.24 0.64,0.24 l 9.12,-0.04"
style="fill:#000000;font-family:Republika Exp;-inkscape-font-specification:Republika Exp Bold Italic;fill-opacity:0.69453377"
id="path3041"
inkscape:connector-curvature="0" />
<path
d="m 565.64372,406.45067 1.6,-6.56 c 0.0533,-0.21331 0.0133,-0.42664 -0.12,-0.64 -0.13334,-0.21331 -0.34668,-0.31998 -0.64,-0.32 l -4.24,0 c -0.29334,2e-5 -0.56,0.10669 -0.8,0.32 -0.21334,0.21336 -0.34667,0.42669 -0.4,0.64 l -1.88,7.68 c -0.10667,0.42668 -0.16,0.85335 -0.16,1.28 0.0267,0.42668 0.12,0.81335 0.28,1.16 0.18666,0.34668 0.45333,0.64001 0.8,0.88 0.37333,0.21334 0.86666,0.32001 1.48,0.32 l 11.68,0 -2.24,9.24 c -0.0534,0.21334 -0.0134,0.4 0.12,0.56 0.15999,0.16 0.38665,0.24 0.68,0.24 l 4.24,0 c 0.29331,0 0.54665,-0.08 0.76,-0.24 0.23998,-0.16 0.38665,-0.34666 0.44,-0.56 l 2.24,-9.24 10.08,0 c 0.2133,1e-5 0.4133,-0.0533 0.6,-0.16 0.2133,-0.13332 0.3733,-0.26665 0.48,-0.4 l 0.4,-1.8 c 0.18663,-0.29332 0.19997,-0.53332 0.04,-0.72 -0.13337,-0.21332 -0.37337,-0.31999 -0.72,-0.32 l -10.08,0 1.96,-7.96 c 0.0533,-0.21331 -3e-5,-0.41331 -0.16,-0.6 -0.13336,-0.21331 -0.34669,-0.31998 -0.64,-0.32 l -4.24,0 c -0.29335,2e-5 -0.56002,0.10669 -0.8,0.32 -0.21335,0.18669 -0.34669,0.38669 -0.4,0.6 l -1.96,7.96 -7.6,0 c -0.37334,10e-6 -0.62668,-0.14665 -0.76,-0.44 -0.10668,-0.31998 -0.12001,-0.62665 -0.04,-0.92"
style="fill:#000000;font-family:Republika Exp;-inkscape-font-specification:Republika Exp Bold Italic;fill-opacity:0.69453377"
id="path3043"
inkscape:connector-curvature="0" />
</g>
<g
transform="scale(1.0137001,0.98648506)"
style="font-size:12.16440105000000038px;font-style:italic;font-variant:normal;font-weight:bold;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:0.6784566;stroke:none;font-family:Republika Exp;-inkscape-font-specification:Republika Exp Bold Italic"
id="text4023">
<path
d="m 499.03387,433.2183 5.61434,0 -0.80472,3.7429 -5.61434,0 0.80472,-3.7429 m -1.76852,-0.50529 -1.01058,4.75348 c -0.0187,0.0873 -0.0281,0.17467 -0.0281,0.262 0,0.31191 0.10293,0.57391 0.30879,0.78601 0.2121,0.21209 0.47722,0.31814 0.79537,0.31814 l 7.99107,0 1.59073,-7.48578 -7.99108,0 c -0.36181,0 -0.71115,0.13724 -1.04801,0.41171 -0.33062,0.26825 -0.53336,0.5864 -0.60822,0.95444"
style="fill:#000000;font-family:Quarx;-inkscape-font-specification:Quarx Bold Italic;fill-opacity:0.6784566"
id="path3046"
inkscape:connector-curvature="0" />
<path
d="m 518.15048,431.34686 -0.49594,0 c -0.36806,0 -0.72051,0.13724 -1.05736,0.41171 -0.33064,0.26825 -0.53338,0.5864 -0.60822,0.95444 l -0.90766,4.24819 -5.61433,0 0.90765,-4.24819 c 0.0187,-0.0873 0.0281,-0.17466 0.0281,-0.262 0,-0.3119 -0.10605,-0.5739 -0.31815,-0.78601 -0.20586,-0.21209 -0.46786,-0.31814 -0.786,-0.31814 l -0.5053,0 -1.30065,6.11963 c -0.0187,0.0873 -0.0281,0.17467 -0.0281,0.262 0,0.31191 0.10605,0.57391 0.31814,0.78601 0.2121,0.21209 0.47722,0.31814 0.79537,0.31814 l 6.61556,0 c 0.36181,0 0.70802,-0.13724 1.03865,-0.41172 0.33685,-0.27447 0.54271,-0.59262 0.61758,-0.95443 l 1.30066,-6.11963"
style="fill:#000000;font-family:Quarx;-inkscape-font-specification:Quarx Bold Italic;fill-opacity:0.6784566"
id="path3048"
inkscape:connector-curvature="0" />
<path
d="m 524.51317,431.34686 -2.80717,0 0.10293,-0.50529 c 0.0187,-0.0873 0.0281,-0.17466 0.0281,-0.26201 -10e-6,-0.3119 -0.10606,-0.5739 -0.31815,-0.786 -0.20586,-0.21209 -0.46786,-0.31814 -0.78601,-0.31815 l -0.50529,0 -1.69366,7.99108 c -0.0187,0.0873 -0.0281,0.17467 -0.0281,0.262 0,0.31191 0.10293,0.57391 0.30879,0.78601 0.2121,0.21209 0.48034,0.31814 0.80472,0.31814 l 1.93695,0 c 0.36181,0 0.70803,-0.13724 1.03865,-0.41172 0.33062,-0.27447 0.53648,-0.59262 0.61758,-0.95443 l 0.10293,-0.50529 -2.80717,0 0.79536,-3.7429 1.44102,0 c 0.36181,10e-6 0.70802,-0.13723 1.03865,-0.41172 0.33685,-0.27447 0.54271,-0.59261 0.61758,-0.95443 l 0.11228,-0.50529"
style="fill:#000000;font-family:Quarx;-inkscape-font-specification:Quarx Bold Italic;fill-opacity:0.6784566"
id="path3050"
inkscape:connector-curvature="0" />
<path
d="m 533.68121,433.2183 -5.61433,0 -0.80473,3.7429 5.61434,0 0.80472,-3.7429 m 1.97438,-0.50529 -1.01058,4.75348 c -0.0749,0.36181 -0.28073,0.67996 -0.61758,0.95443 -0.33063,0.27448 -0.67685,0.41172 -1.03865,0.41172 l -6.62492,0 c -0.31815,0 -0.58327,-0.10605 -0.79536,-0.31814 -0.20586,-0.2121 -0.30879,-0.4741 -0.30879,-0.78601 0,-0.0873 0.009,-0.17467 0.0281,-0.262 l 1.01058,-4.75348 c 0.0749,-0.36804 0.2776,-0.68619 0.60822,-0.95444 0.33686,-0.27447 0.68619,-0.41171 1.04801,-0.41171 l 6.62492,0 c 0.31814,0 0.58014,0.10605 0.78601,0.31814 0.21208,0.21211 0.31813,0.47411 0.31814,0.78601 -10e-6,0.0873 -0.009,0.17467 -0.0281,0.262"
style="fill:#000000;font-family:Quarx;-inkscape-font-specification:Quarx Bold Italic;fill-opacity:0.6784566"
id="path3052"
inkscape:connector-curvature="0" />
<path
d="m 538.70583,436.9612 0.79536,-3.7429 5.61434,0 -0.79536,3.7429 -5.61434,0 m 7.3735,0.50529 1.01058,-4.75348 c 0.0187,-0.0873 0.0281,-0.17466 0.0281,-0.262 -10e-6,-0.3119 -0.10606,-0.5739 -0.31815,-0.78601 -0.20587,-0.21209 -0.46787,-0.31814 -0.786,-0.31814 l -6.61557,0 c -0.36805,0 -0.71739,0.13724 -1.04801,0.41171 -0.33062,0.26825 -0.53648,0.5864 -0.61757,0.95444 l -1.69366,7.99108 0.50529,0 c 0.36181,0 0.70803,-0.13724 1.03865,-0.41172 0.33062,-0.27448 0.53648,-0.59263 0.61758,-0.95444 l 0.10293,-0.50529 6.11963,0 c 0.36804,0 0.71738,-0.13724 1.04801,-0.41172 0.33061,-0.27447 0.53335,-0.59262 0.60822,-0.95443"
style="fill:#000000;font-family:Quarx;-inkscape-font-specification:Quarx Bold Italic;fill-opacity:0.6784566"
id="path3054"
inkscape:connector-curvature="0" />
<path
d="m 548.67106,433.2183 0.39301,-1.87144 1.87144,0 -0.393,1.87144 -1.87145,0 m 0.67372,5.61434 -0.49593,0 c -0.31815,0 -0.58327,-0.10605 -0.79537,-0.31814 -0.21209,-0.2121 -0.31814,-0.4741 -0.31814,-0.78601 0,-0.0873 0.009,-0.17467 0.0281,-0.262 l 0.70179,-3.31246 0.50529,0 c 0.31815,0 0.58015,0.10605 0.78601,0.31814 0.21209,0.2121 0.31814,0.47411 0.31815,0.78601 -10e-6,0.0873 -0.009,0.17467 -0.0281,0.262 l -0.70179,3.31246"
style="fill:#000000;font-family:Quarx;-inkscape-font-specification:Quarx Bold Italic;fill-opacity:0.6784566"
id="path3056"
inkscape:connector-curvature="0" />
<path
d="m 552.81792,431.34686 -1.30065,6.11963 c -0.0187,0.0873 -0.0281,0.17467 -0.0281,0.262 0,0.31191 0.10293,0.57391 0.30879,0.78601 0.2121,0.21209 0.47722,0.31814 0.79537,0.31814 l 1.93695,0 c 0.36804,0 0.71738,-0.13412 1.04801,-0.40236 0.33061,-0.27448 0.53647,-0.59574 0.61757,-0.96379 l 0.10293,-0.50529 -2.80717,0 0.90765,-4.24819 c 0.0187,-0.0873 0.0281,-0.17466 0.0281,-0.262 -10e-6,-0.3119 -0.10606,-0.5739 -0.31815,-0.78601 -0.2121,-0.21209 -0.47722,-0.31814 -0.79536,-0.31814 l -0.49594,0"
style="fill:#000000;font-family:Quarx;-inkscape-font-specification:Quarx Bold Italic;fill-opacity:0.6784566"
id="path3058"
inkscape:connector-curvature="0" />
<path
d="m 566.46808,433.2183 -5.61434,0 -0.80472,3.7429 5.61433,0 0.80473,-3.7429 m 1.97437,-0.50529 -1.01058,4.75348 c -0.0749,0.36181 -0.28073,0.67996 -0.61758,0.95443 -0.33063,0.27448 -0.67684,0.41172 -1.03865,0.41172 l -6.62492,0 c -0.31815,0 -0.58327,-0.10605 -0.79536,-0.31814 -0.20586,-0.2121 -0.30879,-0.4741 -0.30879,-0.78601 0,-0.0873 0.009,-0.17467 0.0281,-0.262 l 1.01058,-4.75348 c 0.0749,-0.36804 0.2776,-0.68619 0.60822,-0.95444 0.33686,-0.27447 0.68619,-0.41171 1.04801,-0.41171 l 6.62492,0 c 0.31814,0 0.58014,0.10605 0.78601,0.31814 0.21208,0.21211 0.31813,0.47411 0.31814,0.78601 -10e-6,0.0873 -0.009,0.17467 -0.0281,0.262"
style="fill:#000000;font-family:Quarx;-inkscape-font-specification:Quarx Bold Italic;fill-opacity:0.6784566"
id="path3060"
inkscape:connector-curvature="0" />
<path
d="m 575.09523,431.34686 -2.80717,0 0.10293,-0.50529 c 0.0187,-0.0873 0.0281,-0.17466 0.0281,-0.26201 0,-0.3119 -0.10605,-0.5739 -0.31815,-0.786 -0.20586,-0.21209 -0.46786,-0.31814 -0.786,-0.31815 l -0.50529,0 -1.69366,7.99108 c -0.0187,0.0873 -0.0281,0.17467 -0.0281,0.262 0,0.31191 0.10293,0.57391 0.30878,0.78601 0.2121,0.21209 0.48034,0.31814 0.80473,0.31814 l 1.93694,0 c 0.36181,0 0.70803,-0.13724 1.03866,-0.41172 0.33061,-0.27447 0.53647,-0.59262 0.61757,-0.95443 l 0.10293,-0.50529 -2.80717,0 0.79537,-3.7429 1.44101,0 c 0.36181,10e-6 0.70803,-0.13723 1.03865,-0.41172 0.33686,-0.27447 0.54272,-0.59261 0.61758,-0.95443 l 0.11229,-0.50529"
style="fill:#000000;font-family:Quarx;-inkscape-font-specification:Quarx Bold Italic;fill-opacity:0.6784566"
id="path3062"
inkscape:connector-curvature="0" />
</g>
</g>
</g>
</svg>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="333.93051"
height="194.91403"
id="svg2"
sodipodi:version="0.32"
inkscape:version="0.48.2 r9819"
version="1.0"
sodipodi:docname="Wi-Fi_Logo.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape">
<defs
id="defs4">
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="1693.0157 : 423.14553 : 1"
inkscape:vp_y="6.1230318e-14 : 1000 : 0"
inkscape:vp_z="2437.1101 : 423.14553 : 1"
inkscape:persp3d-origin="2065.0629 : 247.75183 : 1"
id="perspective10" />
<inkscape:perspective
id="perspective2447"
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
inkscape:vp_z="744.09448 : 526.18109 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 526.18109 : 1"
sodipodi:type="inkscape:persp3d" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
gridtolerance="10000"
guidetolerance="10"
objecttolerance="10"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1.9542857"
inkscape:cx="172.92683"
inkscape:cy="89.097065"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:window-width="1280"
inkscape:window-height="752"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
fit-margin-left="30"
fit-margin-top="0"
fit-margin-right="0"
fit-margin-bottom="0" />
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-115.142,-334.90274)">
<path
id="path3281"
style="fill:#000000;fill-opacity:0.67845662;fill-rule:evenodd;stroke:none"
d="m 425.2708,376.22429 0,2.17814 3.72494,0 0,10.25936 2.36754,0 0,-10.22779 3.6618,0 0,-2.24128 -9.75428,0.0316 z m 11.96399,0.0947 0,12.31124 1.89404,0 0,-9.50175 2.95615,8.25614 1.99371,-0.0139 3.06822,-8.11599 0,9.53331 1.92561,0 0,-12.50063 -3.53554,0 -2.49299,8.78645 -2.55777,-8.75489 -3.25143,0 z m -292.09192,73.99368 0,-34.85027 c 0,0 -0.37881,-15.02601 14.64721,-30.05203 15.02602,-15.02602 29.29443,-13.38452 29.29443,-13.38452 l 19.69797,0 c 0,0 24.74874,-37.12311 73.74114,-37.12311 48.99239,0 77.02413,36.61803 77.02413,36.61803 l 22.22335,0 c 0,0 5.61025,-0.25403 12.66151,3.28709 7.12703,3.57918 13.53849,7.70338 20.06663,17.83514 6.54672,10.16061 7.42543,17.48017 7.42543,22.8194 0,0 0,38.13326 0,38.13326 0,7.9502 -0.75762,14.14214 -14.14214,27.52666 -13.38452,13.38452 -30.55711,11.86929 -30.55711,11.86929 l -20.45559,0 c 0,0 -25.54935,36.82516 -73.4886,36.82516 -47.94704,0 -72.47844,-36.57262 -72.47844,-36.57262 l -22.72844,0 c 0,0 -15.02602,0.88388 -29.54696,-13.63706 -14.52094,-14.52094 -13.13198,-29.29442 -13.38452,-29.29442 z m 24.11739,-50.12882 14.14214,60.98796 15.53109,0 6.9448,-35.1028 6.69226,35.1028 15.90991,0 14.14213,-60.60916 -16.92005,0 -4.9245,33.20877 -6.9448,-33.33503 -15.27855,0 -6.9448,33.71384 -5.17704,-33.84011 -17.17259,-0.12627 z m 81.3542,17.06072 0,43.87112 14.92523,0 0,-43.87112 -14.92523,0 z m 17.18663,-12.39246 c 0,4.24419 -4.21453,7.68875 -9.40742,7.68875 -5.19289,0 -9.40741,-3.44456 -9.40741,-7.68875 0,-4.24419 4.21452,-7.68875 9.40741,-7.68875 5.19289,0 9.40742,3.44456 9.40742,7.68875 z m 3.61823,79.51075 c 0,0 18.63392,-14.14069 18.63392,-35.18735 0,0 0,-35.45872 0,-35.45872 0,-5.70122 2.92325,-13.77796 11.66881,-22.52352 8.74556,-8.74556 16.45238,-10.13106 21.79988,-10.13106 0,0 55.53993,0 55.53993,0 9.44034,0.13157 16.77581,4.08862 23.51853,10.40243 6.24776,6.5645 10.31198,14.7908 10.31198,23.7899 l 0,33.92097 c 0,6.67743 -1.79054,16.35395 -10.6738,24.51355 -8.88326,8.1596 -15.72893,10.6738 -22.79489,10.6738 0,0 -108.00436,0 -108.00436,0 z m 102.57695,-67.07307 0,43.87112 14.92523,0 0,-43.87112 -14.92523,0 z m 17.18663,-12.39246 c 0,4.24419 -4.21453,7.68875 -9.40742,7.68875 -5.19289,0 -9.40741,-3.44456 -9.40741,-7.68875 0,-4.24419 4.21452,-7.68875 9.40741,-7.68875 5.19289,0 9.40742,3.44456 9.40742,7.68875 z m -79.96297,55.94699 16.73434,0 0,-18.27209 31.84048,0 0,-13.65885 -31.93094,0 0,-14.29203 36.09191,0 0,-14.20158 -52.82625,0 0.0905,60.42455 z"
sodipodi:nodetypes="cccccccccccccccccccccccccsccsccssccsccsccscccccccccccccccccccccsssccccscccccsccccccccssscccccccccccc"
inkscape:connector-curvature="0" />
<path
style="fill:#ffffff;fill-opacity:1"
d="m 38.354192,125.39247 c -0.447841,-1.33494 -13.57503,-58.49942 -13.57503,-59.114671 0,-0.48498 1.9789,-0.63957 8.187134,-0.63957 4.502924,0 8.186134,0.172698 8.18491,0.383772 -0.0037,0.647807 4.627377,31.001373 4.937987,32.364766 0.270505,1.187355 0.318138,1.205732 0.663146,0.255848 0.204438,-0.562865 1.849042,-8.224778 3.654674,-17.026473 l 3.282968,-16.003081 7.397918,0.140508 7.397918,0.140508 3.351251,16.207259 c 1.843189,8.913993 3.491965,16.347975 3.663951,16.519961 0.410989,0.410989 0.489125,-0.03701 3.052972,-17.504267 l 2.196869,-14.967105 8.08871,0 c 4.448792,0 8.088715,0.146356 8.088715,0.325235 0,0.369669 -13.215396,57.27129 -13.620925,58.64772 -0.235948,0.80083 -1.067679,0.89547 -7.870303,0.89547 -6.80128,0 -7.634776,-0.0948 -7.873834,-0.89547 -0.147049,-0.49251 -1.662973,-8.2484 -3.368722,-17.23531 -1.70575,-8.986918 -3.207377,-16.445862 -3.336949,-16.575435 -0.399998,-0.399997 -0.6438,0.693065 -3.974724,17.820245 l -3.234254,16.63012 -7.537598,0.14166 c -5.760068,0.10826 -7.589287,-0.0124 -7.756784,-0.51169 l 0,0 z"
id="path2814"
transform="translate(145.14287,334.86218)"
inkscape:connector-curvature="0" />
<path
style="fill:#ffffff;fill-opacity:1"
d="m 105.62712,104.27127 0,-21.747076 7.16374,0 7.16374,0 0,21.747076 0,21.74708 -7.16374,0 -7.16374,0 0,-21.74708 z"
id="path2816"
transform="translate(145.14287,334.86218)"
inkscape:connector-curvature="0" />
<path
style="fill:#ffffff;fill-opacity:1"
d="m 109.87745,76.869158 c -0.89879,-0.274794 -2.43346,-1.253464 -3.41039,-2.174822 -3.38782,-3.195125 -2.84853,-7.712365 1.24406,-10.420717 1.77034,-1.171553 2.73293,-1.434018 5.28517,-1.441081 11.80196,-0.03266 12.57809,13.617509 0.81796,14.385811 -1.26645,0.08274 -3.03801,-0.0744 -3.9368,-0.349191 z"
id="path2818"
transform="translate(145.14287,334.86218)"
inkscape:connector-curvature="0" />
<path
style="fill:#ffffff;fill-opacity:1"
d="m 131.32077,145.03949 c 5.99946,-6.27956 9.7733,-12.3945 12.21262,-19.78869 1.14295,-3.46456 1.19165,-4.34438 1.4868,-26.864033 0.32797,-25.023316 0.28749,-24.638195 3.19979,-30.445906 1.70145,-3.393049 5.82578,-8.649151 9.52503,-12.138837 4.09514,-3.863152 8.24462,-6.493302 12.86749,-8.156074 l 3.32602,-1.196317 31.72515,0 c 34.90986,0 34.3956,-0.0405 41.44736,3.264291 8.94786,4.193392 17.21604,14.283171 19.4424,23.725842 1.12494,4.77119 1.11347,44.373344 -0.0141,48.761274 -2.33503,9.08667 -8.82127,17.19952 -18.26049,22.83986 -7.16609,4.28206 -2.63115,4.00376 -65.24325,4.00376 l -55.54131,0 3.82652,-4.00517 z m 112.46424,-40.76822 0,-22.258772 -7.67544,0 -7.67544,0 0,22.258772 0,22.25877 7.67544,0 7.67544,0 0,-22.25877 z m -60.89181,12.7924 0,-8.95468 16.11842,0 16.11842,0 0,-7.16374 0,-7.163746 -16.11842,0 -16.11842,0 0,-6.907895 0,-6.907894 18.1652,0 18.16521,0 0,-7.419591 0,-7.419591 -26.94439,0 -26.9444,0 0.33621,8.524707 c 0.18491,4.688588 0.3362,18.389246 0.3362,30.44591 l 0,21.9212 8.44299,0 8.44298,0 0,-8.95468 z m 57.44753,-39.686008 c 5.50647,-1.529182 7.77524,-8.26653 4.05144,-12.0312 -4.33496,-4.382541 -11.79449,-4.258949 -15.59558,0.258391 -2.58713,3.074625 -2.45591,6.604646 0.34982,9.410366 2.64079,2.640792 6.9314,3.54628 11.19432,2.362443 l 0,0 z"
id="path2820"
transform="translate(145.14287,334.86218)"
inkscape:connector-curvature="0" />
</g>
</svg>
......@@ -5,6 +5,11 @@
font-size: 11px;
}
QWidget#viewModeWidget {
border-radius: 12px;
border: 3px solid #465158;
}
*::disabled {
color: #777;
}
......@@ -340,6 +345,16 @@ QPushButton, QToolButton {
background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #777, stop: 1 #333);
}
QPushButton#viewModeGeneric, QPushButton#viewModePX4, QPushButton#viewModeAPM, QPushButton#viewModeAR {
background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #73D95D, stop: 1 #18A154);
border-radius: 12px;
min-height: 120px;
max-height: 140px;
min-width: 120px;
max-width: 140px;
border: 3px solid #465158;
}
QPushButton#connectButton, QPushButton#controlButton {
background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #73D95D, stop: 1 #18A154);
}
......
......@@ -263,7 +263,9 @@ FORMS += src/ui/MainWindow.ui \
src/ui/configuration/ArduPlanePidConfig.ui \
src/ui/configuration/AdvParameterList.ui \
src/ui/configuration/ArduRoverPidConfig.ui \
src/ui/QGCConfigView.ui
src/ui/QGCConfigView.ui \
src/ui/main/QGCViewModeSelection.ui \
src/ui/main/QGCWelcomeMainWindow.ui
INCLUDEPATH += src \
src/ui \
......@@ -281,7 +283,8 @@ INCLUDEPATH += src \
src/ui/map3D \
src/ui/mission \
src/ui/designer \
src/ui/configuration
src/ui/configuration \
src/ui/main
HEADERS += src/MG.h \
src/QGCCore.h \
src/uas/UASInterface.h \
......@@ -454,7 +457,9 @@ HEADERS += src/MG.h \
src/ui/configuration/ArduPlanePidConfig.h \
src/ui/configuration/AdvParameterList.h \
src/ui/configuration/ArduRoverPidConfig.h \
src/ui/QGCConfigView.h
src/ui/QGCConfigView.h \
src/ui/main/QGCViewModeSelection.h \
src/ui/main/QGCWelcomeMainWindow.h
# Google Earth is only supported on Mac OS and Windows with Visual Studio Compiler
macx|macx-g++|macx-g++42|win32-msvc2008|win32-msvc2010|win32-msvc2012::HEADERS += src/ui/map3D/QGCGoogleEarthView.h
......@@ -662,7 +667,9 @@ SOURCES += src/main.cc \
src/ui/configuration/ArduPlanePidConfig.cc \
src/ui/configuration/AdvParameterList.cc \
src/ui/configuration/ArduRoverPidConfig.cc \
src/ui/QGCConfigView.cc
src/ui/QGCConfigView.cc \
src/ui/main/QGCViewModeSelection.cc \
src/ui/main/QGCWelcomeMainWindow.cc
# Enable Google Earth only on Mac OS and Windows with Visual Studio compiler
macx|macx-g++|macx-g++42|win32-msvc2008|win32-msvc2010|win32-msvc2012::SOURCES += src/ui/map3D/QGCGoogleEarthView.cc
......
......@@ -115,6 +115,11 @@
<file>files/images/devices/cameraGimalRoll1.png</file>
<file>files/images/devices/cameraGimalYaw.png</file>
<file>files/images/devices/Shutter.png</file>
<file>files/images/actions/qgroundcontrol-generic.svg</file>
<file>files/images/actions/qgroundcontrol-px4.svg</file>
<file>files/images/actions/qgroundcontrol-apm.svg</file>
<file>files/images/actions/qgroundcontrol-ardrone.svg</file>
<file>files/images/actions/qgroundcontrol-wifi.svg</file>
</qresource>
<qresource prefix="/general">
<file alias="vera.ttf">files/styles/Vera.ttf</file>
......
......@@ -45,6 +45,7 @@ This file is part of the QGROUNDCONTROL project
#include "QGC.h"
#include "QGCCore.h"
#include "MainWindow.h"
#include "QGCWelcomeMainWindow.h"
#include "GAudioOutput.h"
#ifdef OPAL_RT
......@@ -66,8 +67,13 @@ This file is part of the QGROUNDCONTROL project
**/
QGCCore::QGCCore(int &argc, char* argv[]) : QApplication(argc, argv)
QGCCore::QGCCore(bool firstStart, int &argc, char* argv[]) : QApplication(argc, argv),
restartRequested(false),
welcome(NULL)
{
// Exit main application when last window is closed
connect(this, SIGNAL(lastWindowClosed()), this, SLOT(quit()));
// Set application name
this->setApplicationName(QGC_APPLICATION_NAME);
this->setApplicationVersion(QGC_APPLICATION_VERSION);
......@@ -84,6 +90,7 @@ QGCCore::QGCCore(int &argc, char* argv[]) : QApplication(argc, argv)
// Show user an upgrade message if QGC got upgraded (see code below, after splash screen)
bool upgraded = false;
enum MainWindow::CUSTOM_MODE mode = MainWindow::CUSTOM_MODE_NONE;
QString lastApplicationVersion("");
if (settings.contains("QGC_APPLICATION_VERSION"))
{
......@@ -96,6 +103,10 @@ QGCCore::QGCCore(int &argc, char* argv[]) : QApplication(argc, argv)
settings.setValue("QGC_APPLICATION_VERSION", QGC_APPLICATION_VERSION);
upgraded = true;
}
else
{
mode = (enum MainWindow::CUSTOM_MODE) settings.value("QGC_CUSTOM_MODE", (int)MainWindow::CUSTOM_MODE_NONE).toInt();
}
}
else
{
......@@ -107,6 +118,15 @@ QGCCore::QGCCore(int &argc, char* argv[]) : QApplication(argc, argv)
settings.sync();
// "Bootload" the application
if ((!settings.contains("QGC_CUSTOM_MODE_STORED") || settings.value("QGC_CUSTOM_MODE_STORED") == false) && firstStart)
{
welcome = new QGCWelcomeMainWindow();
connect(welcome, SIGNAL(customViewModeSelected(MainWindow::CUSTOM_MODE)), this, SLOT(customViewModeSelected(MainWindow::CUSTOM_MODE)));
restartRequested = true;
return;
}
// Show splash screen
QPixmap splashImage(":/files/images/splash.png");
QSplashScreen* splashScreen = new QSplashScreen(splashImage);
......@@ -116,9 +136,6 @@ QGCCore::QGCCore(int &argc, char* argv[]) : QApplication(argc, argv)
processEvents();
splashScreen->showMessage(tr("Loading application fonts"), Qt::AlignLeft | Qt::AlignBottom, QColor(62, 93, 141));
// Exit main application when last window is closed
connect(this, SIGNAL(lastWindowClosed()), this, SLOT(quit()));
// Load application font
QFontDatabase fontDatabase = QFontDatabase();
const QString fontFileName = ":/general/vera.ttf"; ///< Font file is part of the QRC file and compiled into the app
......@@ -141,16 +158,18 @@ QGCCore::QGCCore(int &argc, char* argv[]) : QApplication(argc, argv)
splashScreen->showMessage(tr("Starting user interface"), Qt::AlignLeft | Qt::AlignBottom, QColor(62, 93, 141));
// The first call to instance() creates the MainWindow, so make sure it's passed the splashScreen.
mainWindow = MainWindow::instance(splashScreen);
mainWindow = MainWindow::instance_mode(splashScreen, mode);
UDPLink* udpLink = NULL;
// Connect links
// to make sure that all components are initialized when the
// first messages arrive
UDPLink* udpLink = new UDPLink(QHostAddress::Any, 14550);
MainWindow::instance()->addLink(udpLink);
// Listen on Multicast-Address 239.255.77.77, Port 14550
//QHostAddress * multicast_udp = new QHostAddress("239.255.77.77");
//UDPLink* udpLink = new UDPLink(*multicast_udp, 14550);
if (mainWindow->getCustomMode() == MainWindow::CUSTOM_MODE_WIFI)
{
// Connect links
// to make sure that all components are initialized when the
// first messages arrive
udpLink = new UDPLink(QHostAddress::Any, 14550);
MainWindow::instance()->addLink(udpLink);
}
#ifdef OPAL_RT
// Add OpalRT Link, but do not connect
......@@ -172,7 +191,7 @@ QGCCore::QGCCore(int &argc, char* argv[]) : QApplication(argc, argv)
if (upgraded) mainWindow->showInfoMessage(tr("Default Settings Loaded"),
tr("qgroundcontrol has been upgraded from version %1 to version %2. Some of your user preferences have been reset to defaults for safety reasons. Please adjust them where needed.").arg(lastApplicationVersion).arg(QGC_APPLICATION_VERSION));
// Check if link could be connected
if (!udpLink->connect())
if (udpLink && !udpLink->connect())
{
QMessageBox msgBox;
msgBox.setIcon(QMessageBox::Critical);
......@@ -200,17 +219,23 @@ QGCCore::QGCCore(int &argc, char* argv[]) : QApplication(argc, argv)
**/
QGCCore::~QGCCore()
{
//mainWindow->storeSettings();
//mainWindow->close();
//mainWindow->deleteLater();
// Delete singletons
// First systems
delete UASManager::instance();
// then links
delete LinkManager::instance();
// Finally the main window
//delete MainWindow::instance();
//The main window now autodeletes on close.
if (welcome)
{
delete welcome;
} else {
//mainWindow->storeSettings();
//mainWindow->close();
//mainWindow->deleteLater();
// Delete singletons
// First systems
delete UASManager::instance();
// then links
delete LinkManager::instance();
// Finally the main window
//delete MainWindow::instance();
//The main window now autodeletes on close.
}
}
/**
......@@ -265,4 +290,13 @@ void QGCCore::startUASManager()
}
}
void QGCCore::customViewModeSelected(enum MainWindow::CUSTOM_MODE mode)
{
QSettings settings;
settings.setValue("QGC_CUSTOM_MODE", (unsigned int)mode);
// Store settings only if requested by user
settings.setValue("QGC_CUSTOM_MODE_STORED", welcome->getStoreSettings());
settings.sync();
welcome->close();
}
......@@ -36,6 +36,7 @@ This file is part of the PIXHAWK project
#include <QApplication>
#include "MainWindow.h"
#include "QGCWelcomeMainWindow.h"
#include "UASManager.h"
#include "LinkManager.h"
/*#include "ViconTarsusProtocol.h" */
......@@ -56,9 +57,17 @@ class QGCCore : public QApplication
Q_OBJECT
public:
QGCCore(int &argc, char* argv[]);
QGCCore(bool firstStart, int &argc, char* argv[]);
~QGCCore();
bool getRestartRequested()
{
return restartRequested;
}
public slots:
void customViewModeSelected(enum MainWindow::CUSTOM_MODE mode);
protected:
void startLinkManager();
......@@ -71,6 +80,8 @@ protected:
private:
MainWindow* mainWindow;
bool restartRequested;
QGCWelcomeMainWindow* welcome;
};
#endif /* _CORE_H_ */
......@@ -11,14 +11,14 @@
#define WITH_TEXT_TO_SPEECH 1
#define QGC_APPLICATION_NAME "QGroundControl"
#define QGC_APPLICATION_VERSION "v1.1 (beta)"
#define QGC_APPLICATION_VERSION "v. 1.1.0 (beta)"
namespace QGC
{
const QString APPNAME = "QGROUNDCONTROL";
const QString COMPANYNAME = "QGROUNDCONTROL";
const int APPLICATIONVERSION = 109; // 1.0.9
const int APPLICATIONVERSION = 110; // 1.1.0
}
#endif // QGC_CONFIGURATION_H
......@@ -69,6 +69,18 @@ int main(int argc, char *argv[])
qInstallMsgHandler( msgHandler );
#endif
QGCCore core(argc, argv);
return core.exec();
QGCCore* core = NULL;
int val;
bool firstStart = true;
do {
if (core) {
delete core;
firstStart = false;
}
core = new QGCCore(firstStart, argc, argv);
val = core->exec();
} while (core->getRestartRequested());
return val;
}
......@@ -85,12 +85,13 @@ This file is part of the QGROUNDCONTROL project
const QString MainWindow::defaultDarkStyle = ":files/styles/style-dark.css";
const QString MainWindow::defaultLightStyle = ":files/styles/style-light.css";
MainWindow* MainWindow::instance(QSplashScreen* screen)
MainWindow* MainWindow::instance_mode(QSplashScreen* screen, enum MainWindow::CUSTOM_MODE mode)
{
static MainWindow* _instance = 0;
if (_instance == 0)
{
_instance = new MainWindow();
_instance->setCustomMode(mode);
if (screen)
{
connect(_instance, SIGNAL(initStatusChanged(QString,int,QColor)),
......@@ -101,6 +102,11 @@ MainWindow* MainWindow::instance(QSplashScreen* screen)
return _instance;
}
MainWindow* MainWindow::instance(QSplashScreen* screen)
{
instance_mode(screen, CUSTOM_MODE_NONE);
}
/**
* Create new mainwindow. The constructor instantiates all parts of the user
* interface. It does NOT show the mainwindow. To display it, call the show()
......@@ -118,23 +124,17 @@ MainWindow::MainWindow(QWidget *parent):
darkStyleFileName(defaultDarkStyle),
lightStyleFileName(defaultLightStyle),
autoReconnect(false),
#ifdef APM_TOOLBAR_DEFAULT
apmToolBarEnabled(true),
#else
apmToolBarEnabled(false),
#endif
lowPowerMode(false),
isAdvancedMode(false),
dockWidgetTitleBarEnabled(true)
dockWidgetTitleBarEnabled(true),
customMode(CUSTOM_MODE_WIFI)
{
this->setAttribute(Qt::WA_DeleteOnClose);
hide();
loadSettings();
}
void MainWindow::init()
{
emit initStatusChanged(tr("Loading settings"), Qt::AlignLeft | Qt::AlignBottom, QColor(62, 93, 141));
loadSettings();
emit initStatusChanged(tr("Loading style"), Qt::AlignLeft | Qt::AlignBottom, QColor(62, 93, 141));
qApp->setStyle("plastique");
......@@ -196,7 +196,7 @@ void MainWindow::init()
// Load Toolbar
if (!apmToolBarEnabled) {
if (!(getCustomMode() == CUSTOM_MODE_APM)) {
toolBar = new QGCToolBar(this);
this->addToolBar(toolBar);
......@@ -241,7 +241,7 @@ void MainWindow::init()
connect(LinkManager::instance(), SIGNAL(newLink(LinkInterface*)), this, SLOT(addLink(LinkInterface*)));
if (apmToolBarEnabled) {
if (getCustomMode() == CUSTOM_MODE_APM) {
// Add the APM 'toolbar'
APMToolBar *apmToolBar = new APMToolBar(this);
......@@ -514,7 +514,7 @@ void MainWindow::buildCommonWidgets()
pilotView->setCentralWidget(new QGCMapTool(this));
addCentralWidget(pilotView, "Pilot");
}
if (apmToolBarEnabled) {
if (getCustomMode() == CUSTOM_MODE_APM) {
if (!configView)
{
configView = new SubMainWindow(this);
......@@ -1190,6 +1190,9 @@ void MainWindow::loadCustomWidgetsFromDefaults(const QString& systemType, const
void MainWindow::loadSettings()
{
QSettings settings;
settings.sync();
customMode = static_cast<enum MainWindow::CUSTOM_MODE>(settings.value("QGC_CUSTOM_MODE", (unsigned int)MainWindow::CUSTOM_MODE_NONE).toInt());
qDebug() << "MAINWINDOW: CUSTOM MODE:" << customMode;
settings.beginGroup("QGC_MAINWINDOW");
autoReconnect = settings.value("AUTO_RECONNECT", autoReconnect).toBool();
currentStyle = (QGC_MAINWINDOW_STYLE)settings.value("CURRENT_STYLE", currentStyle).toInt();
......@@ -1197,7 +1200,6 @@ void MainWindow::loadSettings()
lightStyleFileName = settings.value("LIGHT_STYLE_FILENAME", lightStyleFileName).toString();
lowPowerMode = settings.value("LOW_POWER_MODE", lowPowerMode).toBool();
dockWidgetTitleBarEnabled = settings.value("DOCK_WIDGET_TITLEBARS",dockWidgetTitleBarEnabled).toBool();
apmToolBarEnabled = settings.value("APM_SPECIFIC_TOOLBAR", apmToolBarEnabled).toBool();
settings.endGroup();
enableDockWidgetTitleBars(dockWidgetTitleBarEnabled);
}
......@@ -1210,7 +1212,6 @@ void MainWindow::storeSettings()
settings.setValue("CURRENT_STYLE", currentStyle);
settings.setValue("DARK_STYLE_FILENAME", darkStyleFileName);
settings.setValue("LIGHT_STYLE_FILENAME", lightStyleFileName);
settings.setValue("APM_SPECIFIC_TOOLBAR", apmToolBarEnabled);
settings.endGroup();
if (!aboutToCloseFlag && isVisible())
{
......@@ -1224,6 +1225,7 @@ void MainWindow::storeSettings()
// Save the current power mode
}
settings.setValue("LOW_POWER_MODE", lowPowerMode);
settings.setValue("QGC_CUSTOM_MODE", (int)customMode);
settings.sync();
}
......@@ -1490,7 +1492,7 @@ void MainWindow::connectCommonActions()
connect(ui.actionMissionView, SIGNAL(triggered()), this, SLOT(loadOperatorView()));
connect(ui.actionUnconnectedView, SIGNAL(triggered()), this, SLOT(loadUnconnectedView()));
connect(ui.actionHardwareConfig,SIGNAL(triggered()),this,SLOT(loadHardwareConfigView()));
if (apmToolBarEnabled) {
if (getCustomMode() == CUSTOM_MODE_APM) {
connect(ui.actionSoftwareConfig,SIGNAL(triggered()),this,SLOT(loadSoftwareConfigView()));
}
......
......@@ -96,6 +96,14 @@ class MainWindow : public QMainWindow
Q_OBJECT
public:
enum CUSTOM_MODE {
CUSTOM_MODE_NONE = 0,
CUSTOM_MODE_PX4,
CUSTOM_MODE_APM,
CUSTOM_MODE_WIFI
};
/**
* A static function for obtaining the sole instance of the MainWindow. The screen
* argument is only important on the FIRST call to this function. The provided splash
......@@ -103,6 +111,7 @@ public:
* function cannot be used within the MainWindow constructor!
*/
static MainWindow* instance(QSplashScreen* screen = 0);
static MainWindow* instance_mode(QSplashScreen* screen = 0, enum MainWindow::CUSTOM_MODE mode = MainWindow::CUSTOM_MODE_NONE);
/**
* Initializes the MainWindow. Some variables are initialized and the widget is hidden.
......@@ -154,12 +163,6 @@ public:
return autoReconnect;
}
/** @brief Get custom toolbar setting */
bool isApmToolBarEnabled()
{
return apmToolBarEnabled;
}
/** @brief Get title bar mode setting */
bool dockWidgetTitleBarsEnabled()
{
......@@ -172,6 +175,16 @@ public:
return lowPowerMode;
}
void setCustomMode(enum MainWindow::CUSTOM_MODE mode)
{
customMode = mode;
}
enum MainWindow::CUSTOM_MODE getCustomMode()
{
return customMode;
}
QList<QAction*> listLinkMenuActions(void);
public slots:
......@@ -235,10 +248,6 @@ public slots:
void enableDockWidgetTitleBars(bool enabled);
/** @brief Automatically reconnect last link */
void enableAutoReconnect(bool enabled);
/** @brief Enable APM specific toolbar */
void enableApmToolbar(bool enabled) {
apmToolBarEnabled = enabled;
}
/** @brief Save power by reducing update rates */
void enableLowPowerMode(bool enabled) { lowPowerMode = enabled; }
......@@ -481,7 +490,6 @@ protected:
QString darkStyleFileName;
QString lightStyleFileName;
bool autoReconnect;
bool apmToolBarEnabled;
Qt::WindowStates windowStateVal;
bool lowPowerMode; ///< If enabled, QGC reduces the update rates of all widgets
QGCFlightGearLink* fgLink;
......@@ -495,6 +503,7 @@ private:
QMap<VIEW_SECTIONS,QMap<QString,QWidget*> > centralWidgetToDockWidgetsMap;
bool isAdvancedMode; ///< If enabled dock widgets can be moved and floated.
bool dockWidgetTitleBarEnabled; ///< If enabled, dock widget titlebars are displayed when NOT in advanced mode.
CUSTOM_MODE customMode;
Ui::MainWindow ui;
/** @brief Set the appropriate titlebar for a given dock widget.
......
......@@ -48,13 +48,19 @@ QGCSettingsWidget::QGCSettingsWidget(QWidget *parent, Qt::WindowFlags flags) :
ui->lowPowerCheckBox->setChecked(mainWindow->lowPowerModeEnabled());
connect(ui->lowPowerCheckBox, SIGNAL(clicked(bool)), mainWindow, SLOT(enableLowPowerMode(bool)));
//Dock widget title bars
// Dock widget title bars
ui->titleBarCheckBox->setChecked(mainWindow->dockWidgetTitleBarsEnabled());
connect(ui->titleBarCheckBox,SIGNAL(clicked(bool)),mainWindow,SLOT(enableDockWidgetTitleBars(bool)));
// APM toolbar
ui->apmToolBarCheckBox->setChecked(mainWindow->isApmToolBarEnabled());
connect(ui->apmToolBarCheckBox, SIGNAL(clicked(bool)), mainWindow, SLOT(enableApmToolbar(bool)));
// Custom mode
ui->customModeComboBox->addItem(tr("Default: Generic MAVLink and serial links"), MainWindow::CUSTOM_MODE_NONE);
ui->customModeComboBox->addItem(tr("Wifi: Generic MAVLink, wifi or serial links"), MainWindow::CUSTOM_MODE_WIFI);
ui->customModeComboBox->addItem(tr("PX4: Optimized for PX4 Autopilot Users"), MainWindow::CUSTOM_MODE_PX4);
ui->customModeComboBox->addItem(tr("APM: Optimized for ArduPilot Users"), MainWindow::CUSTOM_MODE_APM);
ui->customModeComboBox->setCurrentIndex(ui->customModeComboBox->findData(mainWindow->getCustomMode()));
connect(ui->customModeComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(selectCustomMode(int)));
// Intialize the style UI to the proper values obtained from the MainWindow.
MainWindow::QGC_MAINWINDOW_STYLE style = mainWindow->getStyle();
......@@ -181,3 +187,9 @@ void QGCSettingsWidget::setDefaultStyle()
mainWindow->loadStyle(MainWindow::QGC_MAINWINDOW_STYLE_DARK, MainWindow::defaultDarkStyle);
}
}
void QGCSettingsWidget::selectCustomMode(int mode)
{
MainWindow::instance()->setCustomMode(static_cast<enum MainWindow::CUSTOM_MODE>(ui->customModeComboBox->itemData(mode).toInt()));
MainWindow::instance()->showInfoMessage(tr("Please restart QGroundControl"), tr("The optimization selection was changed. The application needs to be closed and restarted to put all optimizations into effect."));
}
......@@ -22,6 +22,7 @@ public slots:
void lineEditFinished();
void setDefaultStyle();
void selectStylesheet();
void selectCustomMode(int mode);
private:
MainWindow* mainWindow;
......
......@@ -7,7 +7,7 @@
<x>0</x>
<y>0</y>
<width>528</width>
<height>347</height>
<height>455</height>
</rect>
</property>
<property name="sizePolicy">
......@@ -73,11 +73,7 @@
</widget>
</item>
<item>
<widget class="QCheckBox" name="apmToolBarCheckBox">
<property name="text">
<string>Show ArduPilot specific toolbar (restart QGC after change)</string>
</property>
</widget>
<widget class="QComboBox" name="customModeComboBox"/>
</item>
<item>
<widget class="QGroupBox" name="groupBox">
......
......@@ -321,7 +321,8 @@ void QGCToolBar::advancedActivityTriggered(QAction* action)
void QGCToolBar::setActiveUAS(UASInterface* active)
{
// Do nothing if system is the same
if (mav == active) return;
if (mav == active || active == NULL)
return;
// If switching UASes, disconnect the only one.
if (mav)
......
#include "QGCViewModeSelection.h"
#include "ui_QGCViewModeSelection.h"
#include "QGC.h"
#include "MainWindow.h"
QGCViewModeSelection::QGCViewModeSelection(QWidget *parent) :
QWidget(parent),
selected(false),
ui(new Ui::QGCViewModeSelection)
{
ui->setupUi(this);
connect(ui->viewModeGeneric, SIGNAL(clicked()), this, SLOT(selectGeneric()));
connect(ui->viewModeAR, SIGNAL(clicked()), this, SLOT(selectWifi()));
connect(ui->viewModePX4, SIGNAL(clicked()), this, SLOT(selectPX4()));
connect(ui->viewModeAPM, SIGNAL(clicked()), this, SLOT(selectAPM()));
connect(ui->notAgainCheckBox, SIGNAL(clicked(bool)), this, SIGNAL(settingsStorageRequested(bool)));
}
QGCViewModeSelection::~QGCViewModeSelection()
{
delete ui;
}
enum MainWindow::CUSTOM_MODE QGCViewModeSelection::waitForInput() {
while (!selected)
QGC::SLEEP::msleep(200);
return mode;
}
void QGCViewModeSelection::selectGeneric() {
emit customViewModeSelected(MainWindow::CUSTOM_MODE_NONE);
mode = MainWindow::CUSTOM_MODE_NONE;
selected = true;
}
void QGCViewModeSelection::selectWifi() {
emit customViewModeSelected(MainWindow::CUSTOM_MODE_WIFI);
mode = MainWindow::CUSTOM_MODE_WIFI;
selected = true;
}
void QGCViewModeSelection::selectPX4() {
emit customViewModeSelected(MainWindow::CUSTOM_MODE_PX4);
mode = MainWindow::CUSTOM_MODE_PX4;
selected = true;
}
void QGCViewModeSelection::selectAPM() {
emit customViewModeSelected(MainWindow::CUSTOM_MODE_APM);
mode = MainWindow::CUSTOM_MODE_APM;
selected = true;
}
#ifndef QGCVIEWMODESELECTION_H
#define QGCVIEWMODESELECTION_H
#include <QWidget>
#include "MainWindow.h"
namespace Ui {
class QGCViewModeSelection;
}
class QGCViewModeSelection : public QWidget
{
Q_OBJECT
public:
explicit QGCViewModeSelection(QWidget *parent = 0);
~QGCViewModeSelection();
enum MainWindow::CUSTOM_MODE waitForInput();
public slots:
void selectGeneric();
void selectPX4();
void selectAPM();
void selectWifi();
signals:
void customViewModeSelected(enum MainWindow::CUSTOM_MODE mode);
void settingsStorageRequested(bool requested);
private:
Ui::QGCViewModeSelection *ui;
bool selected;
enum MainWindow::CUSTOM_MODE mode;
};
#endif // QGCVIEWMODESELECTION_H
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>QGCViewModeSelection</class>
<widget class="QWidget" name="QGCViewModeSelection">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>750</width>
<height>409</height>
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<layout class="QGridLayout" name="gridLayout_2">
<item row="3" column="1">
<widget class="QCheckBox" name="notAgainCheckBox">
<property name="text">
<string>Do not ask again on next startup. The selection can be changed any time in the preferences.</string>
</property>
</widget>
</item>
<item row="2" column="0">
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>47</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="2" column="2">
<spacer name="horizontalSpacer_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>46</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="2" column="1">
<widget class="QWidget" name="viewModeWidget" native="true">
<layout class="QGridLayout" name="gridLayout">
<item row="1" column="1">
<widget class="QPushButton" name="viewModeAR">
<property name="text">
<string/>
</property>
<property name="icon">
<iconset resource="../../../qgroundcontrol.qrc">
<normaloff>:/files/images/actions/qgroundcontrol-wifi.svg</normaloff>:/files/images/actions/qgroundcontrol-wifi.svg</iconset>
</property>
<property name="iconSize">
<size>
<width>120</width>
<height>120</height>
</size>
</property>
</widget>
</item>
<item row="2" column="3">
<widget class="QLabel" name="label_3">
<property name="text">
<string>APM Autopilot</string>
</property>
</widget>
</item>
<item row="2" column="2">
<widget class="QLabel" name="label_2">
<property name="text">
<string>PX4 Autopilot</string>
</property>
</widget>
</item>
<item row="1" column="3">
<widget class="QPushButton" name="viewModeAPM">
<property name="text">
<string/>
</property>
<property name="icon">
<iconset resource="../../../qgroundcontrol.qrc">
<normaloff>:/files/images/actions/qgroundcontrol-apm.svg</normaloff>:/files/images/actions/qgroundcontrol-apm.svg</iconset>
</property>
<property name="iconSize">
<size>
<width>120</width>
<height>120</height>
</size>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QLabel" name="label_4">
<property name="text">
<string>WiFi / UDP</string>
</property>
</widget>
</item>
<item row="1" column="2">
<widget class="QPushButton" name="viewModePX4">
<property name="text">
<string/>
</property>
<property name="icon">
<iconset resource="../../../qgroundcontrol.qrc">
<normaloff>:/files/images/actions/qgroundcontrol-px4.svg</normaloff>:/files/images/actions/qgroundcontrol-px4.svg</iconset>
</property>
<property name="iconSize">
<size>
<width>120</width>
<height>120</height>
</size>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QPushButton" name="viewModeGeneric">
<property name="text">
<string/>
</property>
<property name="icon">
<iconset resource="../../../qgroundcontrol.qrc">
<normaloff>:/files/images/actions/qgroundcontrol-generic.svg</normaloff>:/files/images/actions/qgroundcontrol-generic.svg</iconset>
</property>
<property name="iconSize">
<size>
<width>120</width>
<height>120</height>
</size>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="label">
<property name="text">
<string>Radio / Serial Link</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item row="1" column="1">
<widget class="QLabel" name="viewModeHintLabel">
<property name="text">
<string>Please select the connection or autopilot you want to use QGroundControl with.</string>
</property>
</widget>
</item>
<item row="5" column="1">
<spacer name="verticalSpacer_2">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>76</height>
</size>
</property>
</spacer>
</item>
<item row="0" column="1">
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>76</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
<resources>
<include location="../../../qgroundcontrol.qrc"/>
</resources>
<connections/>
</ui>
#include "QGCWelcomeMainWindow.h"
#include "ui_QGCWelcomeMainWindow.h"
#include "MainWindow.h"
#include "QGCViewModeSelection.h"
QGCWelcomeMainWindow::QGCWelcomeMainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::QGCWelcomeMainWindow),
storeSettings(false)
{
ui->setupUi(this);
statusBar()->hide();
QString windowname = qApp->applicationName() + " " + qApp->applicationVersion();
setWindowTitle(windowname);
viewModeSelection = new QGCViewModeSelection(this);
connect(viewModeSelection, SIGNAL(customViewModeSelected(MainWindow::CUSTOM_MODE)), this, SIGNAL(customViewModeSelected(MainWindow::CUSTOM_MODE)));
connect(viewModeSelection, SIGNAL(settingsStorageRequested(bool)), this, SIGNAL(settingsStorageRequested(bool)));
connect(viewModeSelection, SIGNAL(settingsStorageRequested(bool)), this, SLOT(setStoreSettings(bool)));
setCentralWidget(viewModeSelection);
// Load the new stylesheet.
QFile styleSheet(":files/styles/style-dark.css");
// Attempt to open the stylesheet.
if (styleSheet.open(QIODevice::ReadOnly | QIODevice::Text))
{
// Signal to the user that the app will pause to apply a new stylesheet
qApp->setOverrideCursor(Qt::WaitCursor);
qApp->setStyleSheet(styleSheet.readAll());
// Finally restore the cursor before returning.
qApp->restoreOverrideCursor();
}
resize(780, 400);
show();
}
QGCWelcomeMainWindow::~QGCWelcomeMainWindow()
{
delete ui;
delete viewModeSelection;
}
enum MainWindow::CUSTOM_MODE QGCWelcomeMainWindow::getCustomMode()
{
// QGCViewModeSelection* s = new QGCViewModeSelection(this);
// setCentralWidget(s);
// show();
// enum MainWindow::CUSTOM_MODE mode = MainWindow::CUSTOM_MODE_WIFI;// = s->waitForInput();
// delete s;
// return mode;
}
#ifndef QGCWELCOMEMAINWINDOW_H
#define QGCWELCOMEMAINWINDOW_H
#include <QMainWindow>
#include "MainWindow.h"
#include "QGCViewModeSelection.h"
namespace Ui {
class QGCWelcomeMainWindow;
}
class QGCWelcomeMainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit QGCWelcomeMainWindow(QWidget *parent = 0);
~QGCWelcomeMainWindow();
enum MainWindow::CUSTOM_MODE getCustomMode();
bool getStoreSettings()
{
return storeSettings;
}
public slots:
void setStoreSettings(bool settings)
{
storeSettings = settings;
}
signals:
void customViewModeSelected(enum MainWindow::CUSTOM_MODE mode);
void settingsStorageRequested(bool requested);
private:
Ui::QGCWelcomeMainWindow *ui;
QGCViewModeSelection* viewModeSelection;
bool storeSettings;
};
#endif // QGCWELCOMEMAINWINDOW_H
<ui version="4.0">
<author/>
<comment/>
<exportmacro/>
<class>QGCWelcomeMainWindow</class>
<widget class="QMainWindow" name="QGCWelcomeMainWindow">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>800</width>
<height>600</height>
</rect>
</property>
<property name="windowTitle">
<string>MainWindow</string>
</property>
<widget class="QMenuBar" name="menubar"/>
<widget class="QWidget" name="centralwidget"/>
<widget class="QStatusBar" name="statusbar"/>
</widget>
<pixmapfunction/>
<connections/>
</ui>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment