Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Q
qgroundcontrol
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Valentin Platzgummer
qgroundcontrol
Commits
bed21b49
Commit
bed21b49
authored
Feb 23, 2015
by
dogmaphobic
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
New, QML based Tool Bar.
parent
134b2c1a
Changes
28
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
28 changed files
with
2141 additions
and
473 deletions
+2141
-473
battery_0.svg
files/images/status/battery_0.svg
+22
-0
battery_100.svg
files/images/status/battery_100.svg
+31
-0
battery_20.svg
files/images/status/battery_20.svg
+24
-0
battery_40.svg
files/images/status/battery_40.svg
+26
-0
battery_60.svg
files/images/status/battery_60.svg
+28
-0
battery_80.svg
files/images/status/battery_80.svg
+30
-0
gps.svg
files/images/status/gps.svg
+275
-0
message_megaphone.png
files/images/status/message_megaphone.png
+0
-0
message_triangle.png
files/images/status/message_triangle.png
+0
-0
qgroundcontrol.pro
qgroundcontrol.pro
+5
-2
qgroundcontrol.qrc
qgroundcontrol.qrc
+10
-3
QGCQmlWidgetHolder.cpp
src/QGCQmlWidgetHolder.cpp
+5
-0
QGCQmlWidgetHolder.h
src/QGCQmlWidgetHolder.h
+5
-2
QGCQmlWidgetHolder.ui
src/QGCQmlWidgetHolder.ui
+10
-1
SetupViewTest.cc
src/VehicleSetup/SetupViewTest.cc
+3
-1
MainWindowTest.cc
src/qgcunittest/MainWindowTest.cc
+6
-2
UASMessageHandler.cc
src/uas/UASMessageHandler.cc
+36
-3
UASMessageHandler.h
src/uas/UASMessageHandler.h
+15
-0
MainWindow.cc
src/ui/MainWindow.cc
+240
-366
MainWindow.h
src/ui/MainWindow.h
+21
-24
QGCLinkConfiguration.cc
src/ui/QGCLinkConfiguration.cc
+91
-59
QGCLinkConfiguration.h
src/ui/QGCLinkConfiguration.h
+1
-0
QGCToolBar.cc
src/ui/QGCToolBar.cc
+2
-0
MainToolBar.cc
src/ui/toolbar/MainToolBar.cc
+579
-0
MainToolBar.h
src/ui/toolbar/MainToolBar.h
+180
-0
MainToolBar.qml
src/ui/toolbar/MainToolBar.qml
+489
-0
UASMessageView.cc
src/ui/uas/UASMessageView.cc
+4
-6
UASMessageView.h
src/ui/uas/UASMessageView.h
+3
-4
No files found.
files/images/status/battery_0.svg
0 → 100644
View file @
bed21b49
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 18.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg
version=
"1.1"
id=
"svg4264"
sodipodi:docname=
"battery_0.svg"
inkscape:version=
"0.91 r13725"
xmlns:rdf=
"http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:dc=
"http://purl.org/dc/elements/1.1/"
xmlns:inkscape=
"http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi=
"http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:svg=
"http://www.w3.org/2000/svg"
xmlns:cc=
"http://creativecommons.org/ns#"
xmlns=
"http://www.w3.org/2000/svg"
xmlns:xlink=
"http://www.w3.org/1999/xlink"
x=
"0px"
y=
"0px"
viewBox=
"-142 87 326.3 620"
enable-background=
"new -142 87 326.3 620"
xml:space=
"preserve"
>
<title
id=
"title4294"
>
Battery
</title>
<sodipodi:namedview
inkscape:window-maximized=
"0"
inkscape:window-y=
"65"
inkscape:window-x=
"2776"
inkscape:window-height=
"1259"
inkscape:window-width=
"2003"
fit-margin-bottom=
"0.02"
fit-margin-right=
"0.02"
inkscape:current-layer=
"layer1"
inkscape:pageshadow=
"2"
inkscape:document-units=
"in"
inkscape:pageopacity=
"0.0"
units=
"in"
borderopacity=
"1.0"
bordercolor=
"#666666"
pagecolor=
"#ffffff"
showgrid=
"false"
inkscape:cy=
"387.50002"
inkscape:zoom=
"1.4103225"
inkscape:cx=
"115.31779"
id=
"base"
fit-margin-top=
"0.02"
fit-margin-left=
"0.02"
showborder=
"true"
>
</sodipodi:namedview>
<path
id=
"rect4970"
inkscape:connector-curvature=
"0"
fill=
"#E6E7E8"
stroke=
"#E6E7E8"
stroke-width=
"6"
d=
"M-127.7,667.9v-502
c0-14.8,13.1-26.8,29.3-26.8h239.2c16.2,0,29.3,12,29.3,26.8v502c0,14.8-13.1,26.8-29.3,26.8H-98.4
C-114.6,694.7-127.7,682.7-127.7,667.9z"
/>
<path
id=
"rect4360"
inkscape:connector-curvature=
"0"
fill=
"none"
d=
"M-140.6,677.6V156.1c0-15.4,14.2-27.9,31.8-27.9h259.9
c17.6,0,31.8,12.6,31.8,27.9v521.5c0,15.4-14.2,27.9-31.8,27.9h-259.8C-126.3,705.5-140.6,693-140.6,677.6z"
/>
<g
id=
"g4222"
transform=
"translate(-127.22081,216.20249)"
>
<path
id=
"path4224"
inkscape:connector-curvature=
"0"
fill=
"#E6E7E8"
stroke=
"#E6E7E8"
stroke-width=
"6"
stroke-miterlimit=
"10"
d=
"
M231.3-81.3c0,2.2-1.7,3.9-3.9,3.9h-155c-2.2,0-3.9-1.7-3.9-3.9v-40.2c0-2.2,1.7-3.9,3.9-3.9h155c2.2,0,3.9,1.7,3.9,3.9L231.3-81.3
L231.3-81.3L231.3-81.3z"
/>
</g>
<text
transform=
"matrix(0.757 0 0 1 -80.0776 552.9648)"
font-family=
"'Helvetica'"
font-size=
"406.7761"
>
X
</text>
</svg>
files/images/status/battery_100.svg
0 → 100644
View file @
bed21b49
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 18.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg
version=
"1.1"
id=
"svg4264"
sodipodi:docname=
"battery_100.svg"
inkscape:version=
"0.91 r13725"
xmlns:rdf=
"http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:dc=
"http://purl.org/dc/elements/1.1/"
xmlns:inkscape=
"http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi=
"http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:svg=
"http://www.w3.org/2000/svg"
xmlns:cc=
"http://creativecommons.org/ns#"
xmlns=
"http://www.w3.org/2000/svg"
xmlns:xlink=
"http://www.w3.org/1999/xlink"
x=
"0px"
y=
"0px"
viewBox=
"-142 87 326.3 620"
enable-background=
"new -142 87 326.3 620"
xml:space=
"preserve"
>
<title
id=
"title4294"
>
Battery
</title>
<sodipodi:namedview
inkscape:window-maximized=
"0"
inkscape:window-y=
"65"
inkscape:window-x=
"2776"
inkscape:window-height=
"1259"
inkscape:window-width=
"2003"
fit-margin-bottom=
"0.02"
fit-margin-right=
"0.02"
inkscape:current-layer=
"layer1"
inkscape:pageshadow=
"2"
inkscape:document-units=
"in"
inkscape:pageopacity=
"0.0"
units=
"in"
borderopacity=
"1.0"
bordercolor=
"#666666"
pagecolor=
"#ffffff"
showgrid=
"false"
inkscape:cy=
"393.84035"
inkscape:zoom=
"1.2144444"
inkscape:cx=
"202.22082"
id=
"base"
fit-margin-top=
"0.02"
fit-margin-left=
"0.02"
showborder=
"true"
>
</sodipodi:namedview>
<path
id=
"rect4970"
inkscape:connector-curvature=
"0"
fill=
"#E6E7E8"
stroke=
"#E6E7E8"
stroke-width=
"6"
d=
"M-127.7,667.9v-502
c0-14.8,13.1-26.8,29.3-26.8h239.2c16.2,0,29.3,12,29.3,26.8v502c0,14.8-13.1,26.8-29.3,26.8H-98.4
C-114.6,694.7-127.7,682.7-127.7,667.9z"
/>
<path
id=
"rect4360"
inkscape:connector-curvature=
"0"
fill=
"none"
d=
"M-140.6,677.6V156.1c0-15.4,14.2-27.9,31.8-27.9h259.9
c17.6,0,31.8,12.6,31.8,27.9v521.5c0,15.4-14.2,27.9-31.8,27.9h-259.8C-126.3,705.5-140.6,693-140.6,677.6z"
/>
<path
id=
"path4669"
sodipodi:nodetypes=
"ccccc"
inkscape:connector-curvature=
"0"
fill=
"#09753B"
d=
"M-91.4,260.4v-90.1h225.1v90.1
H-91.4L-91.4,260.4z"
/>
<path
id=
"path4671"
sodipodi:nodetypes=
"ccccc"
inkscape:connector-curvature=
"0"
fill=
"#09753B"
d=
"M-91.4,363.3v-90.1h225.1v90.1
H-91.4z"
/>
<path
id=
"path4673"
sodipodi:nodetypes=
"ccccc"
inkscape:connector-curvature=
"0"
fill=
"#09753B"
d=
"M-91.4,466.3v-90.1h225.1v90.1
H-91.4z"
/>
<path
id=
"path4675"
sodipodi:nodetypes=
"ccccc"
inkscape:connector-curvature=
"0"
fill=
"#09753B"
d=
"M-91.4,569.2v-90.1h225.1v90.1
H-91.4z"
/>
<path
id=
"path4679"
sodipodi:nodetypes=
"ccccc"
inkscape:connector-curvature=
"0"
fill=
"#09753B"
d=
"M-91.4,672V582h225.1V672H-91.4
z"
/>
<g
id=
"g4222"
transform=
"translate(-127.22081,216.20249)"
>
<path
id=
"path4224"
inkscape:connector-curvature=
"0"
fill=
"#E6E7E8"
stroke=
"#E6E7E8"
stroke-width=
"6"
stroke-miterlimit=
"10"
d=
"
M229.9-81.3c0,2.2-1.7,3.9-3.9,3.9h-155c-2.2,0-3.9-1.7-3.9-3.9v-40.2c0-2.2,1.7-3.9,3.9-3.9h155c2.2,0,3.9,1.7,3.9,3.9L229.9-81.3
L229.9-81.3L229.9-81.3z"
/>
</g>
</svg>
files/images/status/battery_20.svg
0 → 100644
View file @
bed21b49
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 18.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg
version=
"1.1"
id=
"svg4264"
sodipodi:docname=
"battery_100.svg"
inkscape:version=
"0.91 r13725"
xmlns:rdf=
"http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:dc=
"http://purl.org/dc/elements/1.1/"
xmlns:inkscape=
"http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi=
"http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:svg=
"http://www.w3.org/2000/svg"
xmlns:cc=
"http://creativecommons.org/ns#"
xmlns=
"http://www.w3.org/2000/svg"
xmlns:xlink=
"http://www.w3.org/1999/xlink"
x=
"0px"
y=
"0px"
viewBox=
"-142 87 326.32 620"
enable-background=
"new -142 87 326.32 620"
xml:space=
"preserve"
>
<title
id=
"title4294"
>
Battery
</title>
<sodipodi:namedview
inkscape:window-maximized=
"0"
inkscape:window-y=
"65"
inkscape:window-x=
"2776"
inkscape:window-height=
"1259"
inkscape:window-width=
"2003"
fit-margin-bottom=
"0.02"
fit-margin-right=
"0.02"
inkscape:current-layer=
"layer1"
inkscape:pageshadow=
"2"
inkscape:document-units=
"in"
inkscape:pageopacity=
"0.0"
units=
"in"
borderopacity=
"1.0"
bordercolor=
"#666666"
pagecolor=
"#ffffff"
showgrid=
"false"
inkscape:cy=
"393.84035"
inkscape:zoom=
"1.2144444"
inkscape:cx=
"202.22082"
id=
"base"
fit-margin-top=
"0.02"
fit-margin-left=
"0.02"
showborder=
"true"
>
</sodipodi:namedview>
<path
id=
"rect4970"
inkscape:connector-curvature=
"0"
fill=
"#E6E7E8"
stroke=
"#E6E7E8"
stroke-width=
"6"
d=
"M-127.68,667.88v-502
c0-14.8,13.12-26.8,29.28-26.8h239.2c16.16,0,29.28,12,29.28,26.8v502c0,14.8-13.12,26.8-29.28,26.8H-98.4
C-114.64,694.68-127.68,682.68-127.68,667.88z"
/>
<path
id=
"rect4360"
inkscape:connector-curvature=
"0"
fill=
"none"
d=
"M-140.56,677.64V156.12c0-15.36,14.24-27.92,31.76-27.92
h259.92c17.6,0,31.76,12.56,31.76,27.92v521.52c0,15.36-14.24,27.92-31.76,27.92h-259.84C-126.32,705.48-140.56,693-140.56,677.64z"
/>
<path
id=
"path4679"
sodipodi:nodetypes=
"ccccc"
inkscape:connector-curvature=
"0"
fill=
"#471F0D"
d=
"M-91.36,672.04v-90.08h225.12
v90.08H-91.36z"
/>
<g
id=
"g4222"
transform=
"translate(-127.22081,216.20249)"
>
<path
id=
"path4224"
inkscape:connector-curvature=
"0"
fill=
"#E6E7E8"
stroke=
"#E6E7E8"
stroke-width=
"6"
stroke-miterlimit=
"10"
d=
"
M229.861-81.283c0,2.24-1.68,3.92-3.92,3.92H70.901c-2.24,0-3.92-1.68-3.92-3.92v-40.16c0-2.24,1.68-3.92,3.92-3.92h155.04
c2.24,0,3.92,1.68,3.92,3.92L229.861-81.283L229.861-81.283L229.861-81.283z"
/>
</g>
</svg>
files/images/status/battery_40.svg
0 → 100644
View file @
bed21b49
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 18.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg
version=
"1.1"
id=
"svg4264"
sodipodi:docname=
"battery_100.svg"
inkscape:version=
"0.91 r13725"
xmlns:rdf=
"http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:dc=
"http://purl.org/dc/elements/1.1/"
xmlns:inkscape=
"http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi=
"http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:svg=
"http://www.w3.org/2000/svg"
xmlns:cc=
"http://creativecommons.org/ns#"
xmlns=
"http://www.w3.org/2000/svg"
xmlns:xlink=
"http://www.w3.org/1999/xlink"
x=
"0px"
y=
"0px"
viewBox=
"-142 87 326.32 620"
enable-background=
"new -142 87 326.32 620"
xml:space=
"preserve"
>
<title
id=
"title4294"
>
Battery
</title>
<sodipodi:namedview
inkscape:window-maximized=
"0"
inkscape:window-y=
"65"
inkscape:window-x=
"2776"
inkscape:window-height=
"1259"
inkscape:window-width=
"2003"
fit-margin-bottom=
"0.02"
fit-margin-right=
"0.02"
inkscape:current-layer=
"layer1"
inkscape:pageshadow=
"2"
inkscape:document-units=
"in"
inkscape:pageopacity=
"0.0"
units=
"in"
borderopacity=
"1.0"
bordercolor=
"#666666"
pagecolor=
"#ffffff"
showgrid=
"false"
inkscape:cy=
"393.84035"
inkscape:zoom=
"1.2144444"
inkscape:cx=
"202.22082"
id=
"base"
fit-margin-top=
"0.02"
fit-margin-left=
"0.02"
showborder=
"true"
>
</sodipodi:namedview>
<path
id=
"rect4970"
inkscape:connector-curvature=
"0"
fill=
"#E6E7E8"
stroke=
"#E6E7E8"
stroke-width=
"6"
d=
"M-127.68,667.88v-502
c0-14.8,13.12-26.8,29.28-26.8h239.2c16.16,0,29.28,12,29.28,26.8v502c0,14.8-13.12,26.8-29.28,26.8H-98.4
C-114.64,694.68-127.68,682.68-127.68,667.88z"
/>
<path
id=
"rect4360"
inkscape:connector-curvature=
"0"
fill=
"none"
d=
"M-140.56,677.64V156.12c0-15.36,14.24-27.92,31.76-27.92
h259.92c17.6,0,31.76,12.56,31.76,27.92v521.52c0,15.36-14.24,27.92-31.76,27.92h-259.84C-126.32,705.48-140.56,693-140.56,677.64z"
/>
<path
id=
"path4675"
sodipodi:nodetypes=
"ccccc"
inkscape:connector-curvature=
"0"
fill=
"#9F4B23"
d=
"M-91.36,569.16v-90.08h225.12
v90.08H-91.36z"
/>
<path
id=
"path4679"
sodipodi:nodetypes=
"ccccc"
inkscape:connector-curvature=
"0"
fill=
"#9F4B23"
d=
"M-91.36,672.04v-90.08h225.12
v90.08H-91.36z"
/>
<g
id=
"g4222"
transform=
"translate(-127.22081,216.20249)"
>
<path
id=
"path4224"
inkscape:connector-curvature=
"0"
fill=
"#E6E7E8"
stroke=
"#E6E7E8"
stroke-width=
"6"
stroke-miterlimit=
"10"
d=
"
M229.861-81.283c0,2.24-1.68,3.92-3.92,3.92H70.901c-2.24,0-3.92-1.68-3.92-3.92v-40.16c0-2.24,1.68-3.92,3.92-3.92h155.04
c2.24,0,3.92,1.68,3.92,3.92L229.861-81.283L229.861-81.283L229.861-81.283z"
/>
</g>
</svg>
files/images/status/battery_60.svg
0 → 100644
View file @
bed21b49
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 18.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg
version=
"1.1"
id=
"svg4264"
sodipodi:docname=
"battery_100.svg"
inkscape:version=
"0.91 r13725"
xmlns:rdf=
"http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:dc=
"http://purl.org/dc/elements/1.1/"
xmlns:inkscape=
"http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi=
"http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:svg=
"http://www.w3.org/2000/svg"
xmlns:cc=
"http://creativecommons.org/ns#"
xmlns=
"http://www.w3.org/2000/svg"
xmlns:xlink=
"http://www.w3.org/1999/xlink"
x=
"0px"
y=
"0px"
viewBox=
"-142 87 326.32 620"
enable-background=
"new -142 87 326.32 620"
xml:space=
"preserve"
>
<title
id=
"title4294"
>
Battery
</title>
<sodipodi:namedview
inkscape:window-maximized=
"0"
inkscape:window-y=
"65"
inkscape:window-x=
"2776"
inkscape:window-height=
"1259"
inkscape:window-width=
"2003"
fit-margin-bottom=
"0.02"
fit-margin-right=
"0.02"
inkscape:current-layer=
"layer1"
inkscape:pageshadow=
"2"
inkscape:document-units=
"in"
inkscape:pageopacity=
"0.0"
units=
"in"
borderopacity=
"1.0"
bordercolor=
"#666666"
pagecolor=
"#ffffff"
showgrid=
"false"
inkscape:cy=
"393.84035"
inkscape:zoom=
"1.2144444"
inkscape:cx=
"202.22082"
id=
"base"
fit-margin-top=
"0.02"
fit-margin-left=
"0.02"
showborder=
"true"
>
</sodipodi:namedview>
<path
id=
"rect4970"
inkscape:connector-curvature=
"0"
fill=
"#E6E7E8"
stroke=
"#E6E7E8"
stroke-width=
"6"
d=
"M-127.68,667.88v-502
c0-14.8,13.12-26.8,29.28-26.8h239.2c16.16,0,29.28,12,29.28,26.8v502c0,14.8-13.12,26.8-29.28,26.8H-98.4
C-114.64,694.68-127.68,682.68-127.68,667.88z"
/>
<path
id=
"rect4360"
inkscape:connector-curvature=
"0"
fill=
"none"
d=
"M-140.56,677.64V156.12c0-15.36,14.24-27.92,31.76-27.92
h259.92c17.6,0,31.76,12.56,31.76,27.92v521.52c0,15.36-14.24,27.92-31.76,27.92h-259.84C-126.32,705.48-140.56,693-140.56,677.64z"
/>
<path
id=
"path4673"
sodipodi:nodetypes=
"ccccc"
inkscape:connector-curvature=
"0"
fill=
"#09753B"
d=
"M-91.36,466.28V376.2h225.12
v90.08H-91.36z"
/>
<path
id=
"path4675"
sodipodi:nodetypes=
"ccccc"
inkscape:connector-curvature=
"0"
fill=
"#09753B"
d=
"M-91.36,569.16v-90.08h225.12
v90.08H-91.36z"
/>
<path
id=
"path4679"
sodipodi:nodetypes=
"ccccc"
inkscape:connector-curvature=
"0"
fill=
"#09753B"
d=
"M-91.36,672.04v-90.08h225.12
v90.08H-91.36z"
/>
<g
id=
"g4222"
transform=
"translate(-127.22081,216.20249)"
>
<path
id=
"path4224"
inkscape:connector-curvature=
"0"
fill=
"#E6E7E8"
stroke=
"#E6E7E8"
stroke-width=
"6"
stroke-miterlimit=
"10"
d=
"
M229.861-81.283c0,2.24-1.68,3.92-3.92,3.92H70.901c-2.24,0-3.92-1.68-3.92-3.92v-40.16c0-2.24,1.68-3.92,3.92-3.92h155.04
c2.24,0,3.92,1.68,3.92,3.92L229.861-81.283L229.861-81.283L229.861-81.283z"
/>
</g>
</svg>
files/images/status/battery_80.svg
0 → 100644
View file @
bed21b49
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 18.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg
version=
"1.1"
id=
"svg4264"
sodipodi:docname=
"battery_100.svg"
inkscape:version=
"0.91 r13725"
xmlns:rdf=
"http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:dc=
"http://purl.org/dc/elements/1.1/"
xmlns:inkscape=
"http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi=
"http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:svg=
"http://www.w3.org/2000/svg"
xmlns:cc=
"http://creativecommons.org/ns#"
xmlns=
"http://www.w3.org/2000/svg"
xmlns:xlink=
"http://www.w3.org/1999/xlink"
x=
"0px"
y=
"0px"
viewBox=
"-142 87 326.32 620"
enable-background=
"new -142 87 326.32 620"
xml:space=
"preserve"
>
<title
id=
"title4294"
>
Battery
</title>
<sodipodi:namedview
inkscape:window-maximized=
"0"
inkscape:window-y=
"65"
inkscape:window-x=
"2776"
inkscape:window-height=
"1259"
inkscape:window-width=
"2003"
fit-margin-bottom=
"0.02"
fit-margin-right=
"0.02"
inkscape:current-layer=
"layer1"
inkscape:pageshadow=
"2"
inkscape:document-units=
"in"
inkscape:pageopacity=
"0.0"
units=
"in"
borderopacity=
"1.0"
bordercolor=
"#666666"
pagecolor=
"#ffffff"
showgrid=
"false"
inkscape:cy=
"393.84035"
inkscape:zoom=
"1.2144444"
inkscape:cx=
"202.22082"
id=
"base"
fit-margin-top=
"0.02"
fit-margin-left=
"0.02"
showborder=
"true"
>
</sodipodi:namedview>
<path
id=
"rect4970"
inkscape:connector-curvature=
"0"
fill=
"#E6E7E8"
stroke=
"#E6E7E8"
stroke-width=
"6"
d=
"M-127.68,667.88v-502
c0-14.8,13.12-26.8,29.28-26.8h239.2c16.16,0,29.28,12,29.28,26.8v502c0,14.8-13.12,26.8-29.28,26.8H-98.4
C-114.64,694.68-127.68,682.68-127.68,667.88z"
/>
<path
id=
"rect4360"
inkscape:connector-curvature=
"0"
fill=
"none"
d=
"M-140.56,677.64V156.12c0-15.36,14.24-27.92,31.76-27.92
h259.92c17.6,0,31.76,12.56,31.76,27.92v521.52c0,15.36-14.24,27.92-31.76,27.92h-259.84C-126.32,705.48-140.56,693-140.56,677.64z"
/>
<path
id=
"path4671"
sodipodi:nodetypes=
"ccccc"
inkscape:connector-curvature=
"0"
fill=
"#09753B"
d=
"M-91.36,363.32v-90.08h225.12
v90.08H-91.36z"
/>
<path
id=
"path4673"
sodipodi:nodetypes=
"ccccc"
inkscape:connector-curvature=
"0"
fill=
"#09753B"
d=
"M-91.36,466.28V376.2h225.12
v90.08H-91.36z"
/>
<path
id=
"path4675"
sodipodi:nodetypes=
"ccccc"
inkscape:connector-curvature=
"0"
fill=
"#09753B"
d=
"M-91.36,569.16v-90.08h225.12
v90.08H-91.36z"
/>
<path
id=
"path4679"
sodipodi:nodetypes=
"ccccc"
inkscape:connector-curvature=
"0"
fill=
"#09753B"
d=
"M-91.36,672.04v-90.08h225.12
v90.08H-91.36z"
/>
<g
id=
"g4222"
transform=
"translate(-127.22081,216.20249)"
>
<path
id=
"path4224"
inkscape:connector-curvature=
"0"
fill=
"#E6E7E8"
stroke=
"#E6E7E8"
stroke-width=
"6"
stroke-miterlimit=
"10"
d=
"
M229.861-81.283c0,2.24-1.68,3.92-3.92,3.92H70.901c-2.24,0-3.92-1.68-3.92-3.92v-40.16c0-2.24,1.68-3.92,3.92-3.92h155.04
c2.24,0,3.92,1.68,3.92,3.92L229.861-81.283L229.861-81.283L229.861-81.283z"
/>
</g>
</svg>
files/images/status/gps.svg
0 → 100644
View file @
bed21b49
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<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"
version=
"1.1"
x=
"0px"
y=
"0px"
width=
"110px"
height=
"110px"
viewBox=
"0 0 110 110"
enable-background=
"new 0 0 110 110"
xml:space=
"preserve"
id=
"svg3852"
inkscape:version=
"0.91 r13725"
sodipodi:docname=
"gps.svg"
><title
id=
"title4758"
>
GPS
</title><metadata
id=
"metadata3933"
><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>
GPS
</dc:title><dc:creator><cc:Agent><dc:title>
Gus Grubba
</dc:title></cc:Agent></dc:creator><cc:license
rdf:resource=
"http://creativecommons.org/licenses/by-nc/3.0/"
/></cc:Work><cc:License
rdf:about=
"http://creativecommons.org/licenses/by-nc/3.0/"
><cc:permits
rdf:resource=
"http://creativecommons.org/ns#Reproduction"
/><cc:permits
rdf:resource=
"http://creativecommons.org/ns#Distribution"
/><cc:requires
rdf:resource=
"http://creativecommons.org/ns#Notice"
/><cc:requires
rdf:resource=
"http://creativecommons.org/ns#Attribution"
/><cc:prohibits
rdf:resource=
"http://creativecommons.org/ns#CommercialUse"
/><cc:permits
rdf:resource=
"http://creativecommons.org/ns#DerivativeWorks"
/></cc:License></rdf:RDF></metadata><defs
id=
"defs3931"
/><sodipodi:namedview
pagecolor=
"#808080"
bordercolor=
"#666666"
borderopacity=
"1"
objecttolerance=
"10"
gridtolerance=
"10"
guidetolerance=
"10"
inkscape:pageopacity=
"0"
inkscape:pageshadow=
"2"
inkscape:window-width=
"640"
inkscape:window-height=
"480"
id=
"namedview3929"
showgrid=
"false"
inkscape:zoom=
"11.136364"
inkscape:cx=
"55"
inkscape:cy=
"55"
inkscape:current-layer=
"svg3852"
/><g
id=
"Layer_2"
display=
"none"
/><g
id=
"ex_thick"
style=
"fill:#ffffff;stroke:#ffffff;stroke-opacity:1"
transform=
"matrix(-1,0,0,-1,111.82126,108.29692)"
/><g
id=
"Layer_2_copy_3"
display=
"none"
/><g
id=
"ex_thin"
style=
"fill:#ffffff;stroke:#ffffff;stroke-opacity:1"
transform=
"matrix(-1,0,0,-1,111.82126,108.29692)"
/><g
id=
"Layer_2_copy"
display=
"none"
/><g
id=
"em_thick"
style=
"fill:#ffffff;stroke:#ffffff;stroke-opacity:1"
transform=
"matrix(-1,0,0,-1,111.82126,108.29692)"
/><g
id=
"Layer_2_copy_4"
display=
"none"
><g
display=
"inline"
id=
"g3861"
><rect
x=
"-36.1"
y=
"-21.3"
fill=
"none"
stroke=
"#EB008B"
stroke-width=
"0.25"
stroke-linecap=
"round"
stroke-linejoin=
"round"
stroke-miterlimit=
"10"
width=
"56.3"
height=
"56.3"
id=
"rect3863"
/><circle
fill=
"none"
stroke=
"#EB008B"
stroke-width=
"0.25"
stroke-linecap=
"round"
stroke-linejoin=
"round"
stroke-miterlimit=
"10"
cx=
"-8"
cy=
"6.8"
r=
"28.2"
id=
"circle3865"
/></g><g
display=
"inline"
id=
"g3867"
><rect
x=
"28.3"
y=
"-21.3"
fill=
"none"
stroke=
"#EB008B"
stroke-width=
"0.25"
stroke-linecap=
"round"
stroke-linejoin=
"round"
stroke-miterlimit=
"10"
width=
"56.3"
height=
"56.3"
id=
"rect3869"
/><circle
fill=
"none"
stroke=
"#EB008B"
stroke-width=
"0.25"
stroke-linecap=
"round"
stroke-linejoin=
"round"
stroke-miterlimit=
"10"
cx=
"56.5"
cy=
"6.8"
r=
"28.2"
id=
"circle3871"
/></g><g
display=
"inline"
id=
"g3873"
><rect
x=
"91.5"
y=
"-21.3"
fill=
"none"
stroke=
"#EB008B"
stroke-width=
"0.25"
stroke-linecap=
"round"
stroke-linejoin=
"round"
stroke-miterlimit=
"10"
width=
"56.3"
height=
"56.3"
id=
"rect3875"
/><circle
fill=
"none"
stroke=
"#EB008B"
stroke-width=
"0.25"
stroke-linecap=
"round"
stroke-linejoin=
"round"
stroke-miterlimit=
"10"
cx=
"119.7"
cy=
"6.8"
r=
"28.2"
id=
"circle3877"
/></g></g><rect
x=
"-129.87416"
y=
"-13.196043"
transform=
"matrix(-0.70710678,-0.70710678,0.70710678,-0.70710678,0,0)"
stroke-miterlimit=
"10"
width=
"32.29969"
height=
"16.099846"
id=
"rect3882"
style=
"fill:#ffffff;stroke:#ffffff;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-opacity:1"
/><rect
x=
"24.979502"
y=
"-2.9382656"
transform=
"matrix(0.70710678,0.70710678,-0.70710678,0.70710678,0,0)"
stroke-miterlimit=
"10"
width=
"32.29969"
height=
"16.099846"
id=
"rect3884"
style=
"fill:#ffffff;stroke:#ffffff;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-opacity:1"
/><path
stroke-miterlimit=
"10"
d=
"m 31.121258,78.396923 c 4.7,4.7 12.4,4.7 17.1,0 l 22.8,-22.9 -17.1,-17.1 -22.8,22.8 c -4.7,4.8 -4.7,12.4 0,17.2 z"
id=
"path3886"
style=
"fill:#ffffff;stroke:#ffffff;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-opacity:1"
inkscape:connector-curvature=
"0"
/><path
stroke-miterlimit=
"10"
d=
"m 62.521258,46.996923 c 6.3,6.3 16.5,6.3 22.8,0 l -22.8,-22.8 c -6.3,6.2 -6.3,16.5 0,22.8 z"
id=
"path3888"
style=
"fill:#ffffff;stroke:#ffffff;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-opacity:1"
inkscape:connector-curvature=
"0"
/><path
stroke-miterlimit=
"10"
d=
"m 96.084265,44.511467 c 8.249995,-8.25 8.249995,-21.75 0,-30 -8.25,-8.2499943 -21.75,-8.2499943 -30,0"
id=
"path3890"
style=
"fill:none;stroke:#ffffff;stroke-width:3.89999986;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
inkscape:connector-curvature=
"0"
/><path
stroke-miterlimit=
"10"
d=
"m 86.118561,36.977171 c 3.6,-3.6 3.6,-9.3 0,-12.9 -3.6,-3.6 -9.3,-3.6 -12.9,0"
id=
"path3892"
style=
"fill:none;stroke:#ffffff;stroke-width:3.89999986;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
inkscape:connector-curvature=
"0"
/><line
stroke-miterlimit=
"10"
x1=
"65.321259"
y1=
"72.596924"
x2=
"59.621258"
y2=
"66.896919"
id=
"line3894"
style=
"fill:#ffffff;stroke:#ffffff;stroke-width:4.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none"
/><line
stroke-miterlimit=
"10"
x1=
"42.521255"
y1=
"49.796921"
x2=
"36.821259"
y2=
"44.096924"
id=
"line3896"
style=
"fill:#ffffff;stroke:#ffffff;stroke-width:4.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none"
/><g
id=
"Layer_2_copy_2"
display=
"none"
><g
display=
"inline"
id=
"g3905"
><rect
x=
"-36.1"
y=
"83.3"
fill=
"none"
stroke=
"#EB008B"
stroke-width=
"0.25"
stroke-linecap=
"round"
stroke-linejoin=
"round"
stroke-miterlimit=
"10"
width=
"56.3"
height=
"56.3"
id=
"rect3907"
/><circle
fill=
"none"
stroke=
"#EB008B"
stroke-width=
"0.25"
stroke-linecap=
"round"
stroke-linejoin=
"round"
stroke-miterlimit=
"10"
cx=
"-8"
cy=
"111.5"
r=
"28.2"
id=
"circle3909"
/></g><g
display=
"inline"
id=
"g3911"
><rect
x=
"28.3"
y=
"83.3"
fill=
"none"
stroke=
"#EB008B"
stroke-width=
"0.25"
stroke-linecap=
"round"
stroke-linejoin=
"round"
stroke-miterlimit=
"10"
width=
"56.3"
height=
"56.3"
id=
"rect3913"
/><circle
fill=
"none"
stroke=
"#EB008B"
stroke-width=
"0.25"
stroke-linecap=
"round"
stroke-linejoin=
"round"
stroke-miterlimit=
"10"
cx=
"56.5"
cy=
"111.5"
r=
"28.2"
id=
"circle3915"
/></g><g
display=
"inline"
id=
"g3917"
><rect
x=
"91.5"
y=
"83.3"
fill=
"none"
stroke=
"#EB008B"
stroke-width=
"0.25"
stroke-linecap=
"round"
stroke-linejoin=
"round"
stroke-miterlimit=
"10"
width=
"56.3"
height=
"56.3"
id=
"rect3919"
/><circle
fill=
"none"
stroke=
"#EB008B"
stroke-width=
"0.25"
stroke-linecap=
"round"
stroke-linejoin=
"round"
stroke-miterlimit=
"10"
cx=
"119.7"
cy=
"111.5"
r=
"28.2"
id=
"circle3921"
/></g></g><g
id=
"hornet"
style=
"fill:#ffffff;stroke:#ffffff;stroke-opacity:1"
transform=
"matrix(-1,0,0,-1,111.82126,108.29692)"
/><g
id=
"Layer_2_copy_5"
display=
"none"
/><g
id=
"hornet_THIN"
style=
"fill:#ffffff;stroke:#ffffff;stroke-opacity:1"
transform=
"matrix(-1,0,0,-1,111.82126,108.29692)"
/><g
id=
"Layer_6"
display=
"none"
><polygon
display=
"inline"
fill=
"none"
stroke=
"#224A80"
stroke-width=
"3"
stroke-linecap=
"round"
stroke-linejoin=
"round"
stroke-miterlimit=
"10"
points=
" -14.6,111.2 -19.5,111.2 -19.5,152.2 3.4,152.2 3.4,111.2 -1.5,111.2 -1.5,104.7 -14.6,104.7 "
id=
"polygon3927"
/></g></svg>
\ No newline at end of file
files/images/status/message_megaphone.png
0 → 100644
View file @
bed21b49
346 Bytes
files/images/status/message_triangle.png
0 → 100644
View file @
bed21b49
295 Bytes
qgroundcontrol.pro
View file @
bed21b49
...
...
@@ -268,6 +268,7 @@ INCLUDEPATH += \
src
/
ui
/
configuration
\
src
/
ui
/
px4_configuration
\
src
/
ui
/
main
\
src
/
ui
/
toolbar
\
src
/
VehicleSetup
\
src
/
AutoPilotPlugins
...
...
@@ -493,7 +494,8 @@ HEADERS += \
src
/
comm
/
LinkConfiguration
.
h
\
src
/
ui
/
QGCCommConfiguration
.
h
\
src
/
ui
/
QGCUDPLinkConfiguration
.
h
\
src
/
uas
/
UASMessageHandler
.
h
src
/
uas
/
UASMessageHandler
.
h
\
src
/
ui
/
toolbar
/
MainToolBar
.
h
SOURCES
+=
\
src
/
main
.
cc
\
...
...
@@ -633,7 +635,8 @@ SOURCES += \
src
/
comm
/
LinkConfiguration
.
cc
\
src
/
ui
/
QGCCommConfiguration
.
cc
\
src
/
ui
/
QGCUDPLinkConfiguration
.
cc
\
src
/
uas
/
UASMessageHandler
.
cc
src
/
uas
/
UASMessageHandler
.
cc
\
src
/
ui
/
toolbar
/
MainToolBar
.
cc
#
#
Unit
Test
specific
configuration
goes
here
...
...
qgroundcontrol.qrc
View file @
bed21b49
...
...
@@ -54,6 +54,15 @@
<file>files/images/actions/system-shutdown.svg</file>
<file>files/images/actions/system-log-out.svg</file>
<file>files/images/actions/system-lock-screen.svg</file>
<file>files/images/status/gps.svg</file>
<file>files/images/status/battery_0.svg</file>
<file>files/images/status/battery_20.svg</file>
<file>files/images/status/battery_40.svg</file>
<file>files/images/status/battery_60.svg</file>
<file>files/images/status/battery_80.svg</file>
<file>files/images/status/battery_100.svg</file>
<file>files/images/status/message_megaphone.png</file>
<file>files/images/status/message_triangle.png</file>
<file>files/images/status/weather-storm.svg</file>
<file>files/images/status/weather-snow.svg</file>
<file>files/images/status/weather-showers.svg</file>
...
...
@@ -235,9 +244,7 @@
<qresource prefix="/QLoggingCategory">
<file alias="qtlogging.ini">files/QLoggingCategory/qtlogging.ini</file>
</qresource>
<qresource prefix="/qml">
<file alias="test.qml">src/test.qml</file>
<file alias="QmlTest.qml">src/QmlControls/QmlTest.qml</file>
...
...
@@ -298,8 +305,8 @@
<file alias="QGroundControl/Controls/FirmwareUpgradeIcon.png">src/VehicleSetup/FirmwareUpgradeIcon.png</file>
<file alias="QGroundControl/Controls/VehicleSummaryIcon.png">src/VehicleSetup/VehicleSummaryIcon.png</file>
<file alias="MainToolBar.qml">src/ui/toolbar/MainToolBar.qml</file>
</qresource>
<qresource prefix="/AutoPilotPlugins/PX4">
<file alias="ParameterFactMetaData.xml">src/AutoPilotPlugins/PX4/ParameterFactMetaData.xml</file>
</qresource>
...
...
src/QGCQmlWidgetHolder.cpp
View file @
bed21b49
...
...
@@ -52,3 +52,8 @@ void QGCQmlWidgetHolder::setContextPropertyObject(const QString& name, QObject*
{
_ui
.
qmlWidget
->
rootContext
()
->
setContextProperty
(
name
,
object
);
}
QQmlContext
*
QGCQmlWidgetHolder
::
getRootContext
()
{
return
_ui
.
qmlWidget
->
rootContext
();
}
src/QGCQmlWidgetHolder.h
View file @
bed21b49
...
...
@@ -49,10 +49,13 @@ public:
/// Sets the UAS into the widget which in turn will load facts into the context
void
setAutoPilot
(
AutoPilotPlugin
*
autoPilot
);
/// Get Root Context
QQmlContext
*
getRootContext
();
/// Sets the QML into the control. Will display errors message box if error occurs loading source.
///
@return true: source loaded, false: source not loaded, errors occured
/// @return true: source loaded, false: source not loaded, errors occured
bool
setSource
(
const
QUrl
&
qmlUrl
);
void
setContextPropertyObject
(
const
QString
&
name
,
QObject
*
object
);
private:
...
...
src/QGCQmlWidgetHolder.ui
View file @
bed21b49
...
...
@@ -15,11 +15,20 @@
</property>
<layout
class=
"QVBoxLayout"
name=
"verticalLayout"
>
<item>
<widget
class=
"QGCQuickWidget"
name=
"qmlWidget"
native=
"true"
/>
<widget
class=
"QGCQuickWidget"
name=
"qmlWidget"
>
<property
name=
"acceptDrops"
>
<bool>
true
</bool>
</property>
</widget>
</item>
</layout>
</widget>
<customwidgets>
<customwidget>
<class>
QQuickWidget
</class>
<extends>
QWidget
</extends>
<header>
QQuickWidget
</header>
</customwidget>
<customwidget>
<class>
QGCQuickWidget
</class>
<extends>
QQuickWidget
</extends>
...
...
src/VehicleSetup/SetupViewTest.cc
View file @
bed21b49
...
...
@@ -65,6 +65,8 @@ void SetupViewTest::_clickThrough_test(void)
// Find the Setup button and click it
// Tool Bar is now a QQuickWidget and cannot be manipulated like below
#if 0
QGCToolBar* toolbar = _mainWindow->findChild<QGCToolBar*>();
Q_ASSERT(toolbar);
...
...
@@ -80,7 +82,7 @@ void SetupViewTest::_clickThrough_test(void)
Q_ASSERT(setupButton);
QTest::mouseClick(setupButton, Qt::LeftButton);
QTest::qWait(1000);
#endif
// Click through all the setup buttons
// FIXME: NYI
...
...
src/qgcunittest/MainWindowTest.cc
View file @
bed21b49
...
...
@@ -31,7 +31,8 @@
#include "MockLink.h"
#include "QGCMessageBox.h"
UT_REGISTER_TEST
(
MainWindowTest
)
// TODO: This needs to be changed to accomodate the new QML based tool bar
// UT_REGISTER_TEST(MainWindowTest)
MainWindowTest
::
MainWindowTest
(
void
)
{
...
...
@@ -66,6 +67,8 @@ void MainWindowTest::_connectWindowClose_test(MAV_AUTOPILOT autopilot)
linkMgr
->
connectLink
(
link
);
QTest
::
qWait
(
5000
);
// Give enough time for UI to settle and heartbeats to go through
// Tool Bar is now a QQuickWidget and cannot be manipulated like below
#if 0
// Click through all top level toolbar buttons
QGCToolBar* toolbar = _mainWindow->findChild<QGCToolBar*>();
Q_ASSERT(toolbar);
...
...
@@ -77,7 +80,8 @@ void MainWindowTest::_connectWindowClose_test(MAV_AUTOPILOT autopilot)
QTest::qWait(1000);
}
}
#endif
// On MainWindow close we should get a message box telling the user to disconnect first. Cancel should do nothing.
setExpectedMessageBox
(
QGCMessageBox
::
Cancel
);
_mainWindow
->
close
();
...
...
src/uas/UASMessageHandler.cc
View file @
bed21b49
...
...
@@ -43,6 +43,9 @@ IMPLEMENT_QGC_SINGLETON(UASMessageHandler, UASMessageHandler)
UASMessageHandler
::
UASMessageHandler
(
QObject
*
parent
)
:
QGCSingleton
(
parent
)
,
_activeUAS
(
NULL
)
,
_errorCount
(
0
)
,
_warningCount
(
0
)
,
_normalCount
(
0
)
{
connect
(
UASManager
::
instance
(),
SIGNAL
(
activeUASSet
(
UASInterface
*
)),
this
,
SLOT
(
setActiveUAS
(
UASInterface
*
)));
emit
textMessageReceived
(
NULL
);
...
...
@@ -60,6 +63,9 @@ void UASMessageHandler::clearMessages()
delete
_messages
.
last
();
_messages
.
pop_back
();
}
_errorCount
=
0
;
_warningCount
=
0
;
_normalCount
=
0
;
_mutex
.
unlock
();
}
...
...
@@ -83,15 +89,16 @@ void UASMessageHandler::setActiveUAS(UASInterface* uas)
}
}
void
UASMessageHandler
::
handleTextMessage
(
int
uasid
,
int
compId
,
int
severity
,
QString
text
)
void
UASMessageHandler
::
handleTextMessage
(
int
,
int
compId
,
int
severity
,
QString
text
)
{
Q_UNUSED
(
uasid
);
// Color the output depending on the message severity. We have 3 distinct cases:
// 1: If we have an ERROR or worse, make it bigger, bolder, and highlight it red.
// 2: If we have a warning or notice, just make it bold and color it orange.
// 3: Otherwise color it the standard color, white.
_mutex
.
lock
();
// So first determine the styling based on the severity.
QString
style
;
switch
(
severity
)
...
...
@@ -102,13 +109,16 @@ void UASMessageHandler::handleTextMessage(int uasid, int compId, int severity, Q
case
MAV_SEVERITY_ERROR
:
//Use set RGB values from given color from QGC
style
=
QString
(
"color: rgb(%1, %2, %3); font-weight:bold"
).
arg
(
QGC
::
colorRed
.
red
()).
arg
(
QGC
::
colorRed
.
green
()).
arg
(
QGC
::
colorRed
.
blue
());
_errorCount
++
;
break
;
case
MAV_SEVERITY_NOTICE
:
case
MAV_SEVERITY_WARNING
:
style
=
QString
(
"color: rgb(%1, %2, %3); font-weight:bold"
).
arg
(
QGC
::
colorOrange
.
red
()).
arg
(
QGC
::
colorOrange
.
green
()).
arg
(
QGC
::
colorOrange
.
blue
());
_warningCount
++
;
break
;
default:
style
=
QString
(
"color:white; font-weight:bold"
);
_normalCount
++
;
break
;
}
...
...
@@ -149,8 +159,31 @@ void UASMessageHandler::handleTextMessage(int uasid, int compId, int severity, Q
QString
dateString
=
QDateTime
::
currentDateTime
().
toString
(
"hh:mm:ss.zzz"
);
UASMessage
*
message
=
new
UASMessage
(
compId
,
severity
,
text
);
message
->
_setFormatedText
(
QString
(
"<p style=
\"
color:#CCCCCC
\"
>[%2 - COMP:%3]<font style=
\"
%1
\"
>%4 %5</font></p>"
).
arg
(
style
).
arg
(
dateString
).
arg
(
compId
).
arg
(
severityText
).
arg
(
text
));
_mutex
.
lock
();
_messages
.
append
(
message
);
_mutex
.
unlock
();
emit
textMessageReceived
(
message
);
}
int
UASMessageHandler
::
getErrorCount
()
{
_mutex
.
lock
();
int
c
=
_errorCount
;
_errorCount
=
0
;
_mutex
.
unlock
();
return
c
;
}
int
UASMessageHandler
::
getWarningCount
()
{
_mutex
.
lock
();
int
c
=
_warningCount
;
_warningCount
=
0
;
_mutex
.
unlock
();
return
c
;
}
int
UASMessageHandler
::
getNormalCount
()
{
_mutex
.
lock
();
int
c
=
_normalCount
;
_normalCount
=
0
;
_mutex
.
unlock
();
return
c
;
}
src/uas/UASMessageHandler.h
View file @
bed21b49
...
...
@@ -95,6 +95,18 @@ public:
* @brief Clear messages
*/
void
clearMessages
();
/**
* @brief Get error message count (Resets count once read)
*/
int
getErrorCount
();
/**
* @brief Get warning message count (Resets count once read)
*/
int
getWarningCount
();
/**
* @brief Get normal message count (Resets count once read)
*/
int
getNormalCount
();
public
slots
:
/**
* @brief Set currently active UAS
...
...
@@ -120,6 +132,9 @@ private:
UASInterface
*
_activeUAS
;
QVector
<
UASMessage
*>
_messages
;
QMutex
_mutex
;
int
_errorCount
;
int
_warningCount
;
int
_normalCount
;