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
57c2506d
Commit
57c2506d
authored
Apr 15, 2015
by
dogmaphobic
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Final changes to the Primary Flight Display.
parent
207270a5
Changes
26
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
26 changed files
with
733 additions
and
328 deletions
+733
-328
qgroundcontrol.qrc
qgroundcontrol.qrc
+9
-2
OpenPilotMaps.h
src/QtLocationPlugin/OpenPilotMaps.h
+2
-0
qgeomapreplyqgc.cpp
src/QtLocationPlugin/qgeomapreplyqgc.cpp
+11
-3
qgeotiledmappingmanagerengineqgc.cpp
src/QtLocationPlugin/qgeotiledmappingmanagerengineqgc.cpp
+1
-1
FlightDisplay.qml
src/ui/flightdisplay/FlightDisplay.qml
+179
-136
QGCFlightDisplay.cc
src/ui/flightdisplay/QGCFlightDisplay.cc
+4
-2
QGCFlightDisplay.h
src/ui/flightdisplay/QGCFlightDisplay.h
+3
-0
MapDisplay.qml
src/ui/mapdisplay/MapDisplay.qml
+1
-0
QGCAltitudeWidget.qml
src/ui/qmlcommon/QGCAltitudeWidget.qml
+34
-28
QGCArtificialHorizon.qml
src/ui/qmlcommon/QGCArtificialHorizon.qml
+78
-0
QGCAttitudeInstrument.qml
src/ui/qmlcommon/QGCAttitudeInstrument.qml
+104
-0
QGCAttitudeWidget.qml
src/ui/qmlcommon/QGCAttitudeWidget.qml
+18
-61
QGCCompass.qml
src/ui/qmlcommon/QGCCompass.qml
+0
-2
QGCCompassInstrument.qml
src/ui/qmlcommon/QGCCompassInstrument.qml
+83
-0
QGCMapBackground.qml
src/ui/qmlcommon/QGCMapBackground.qml
+11
-3
QGCPitchWidget.qml
src/ui/qmlcommon/QGCPitchWidget.qml
+19
-11
QGCSpeedWidget.qml
src/ui/qmlcommon/QGCSpeedWidget.qml
+35
-30
attitudeDial.svg
src/ui/qmlcommon/attitudeDial.svg
+15
-0
attitudeInstrument.svg
src/ui/qmlcommon/attitudeInstrument.svg
+7
-0
attitudePointer.svg
src/ui/qmlcommon/attitudePointer.svg
+7
-0
buttonMore.svg
src/ui/qmlcommon/buttonMore.svg
+15
-0
compassInstrumentAirplane.svg
src/ui/qmlcommon/compassInstrumentAirplane.svg
+9
-0
compassInstrumentDial.svg
src/ui/qmlcommon/compassInstrumentDial.svg
+84
-0
qmldir
src/ui/qmlcommon/qmldir
+4
-1
rollDial.svg
src/ui/qmlcommon/rollDial.svg
+0
-32
rollPointer.svg
src/ui/qmlcommon/rollPointer.svg
+0
-16
No files found.
qgroundcontrol.qrc
View file @
57c2506d
...
...
@@ -100,7 +100,9 @@
<file alias="QGroundControl/FlightControls/qmldir">src/ui/qmlcommon/qmldir</file>
<file alias="QGroundControl/FlightControls/QGCAltitudeWidget.qml">src/ui/qmlcommon/QGCAltitudeWidget.qml</file>
<file alias="QGroundControl/FlightControls/QGCAttitudeWidget.qml">src/ui/qmlcommon/QGCAttitudeWidget.qml</file>
<file alias="QGroundControl/FlightControls/QGCAttitudeInstrument.qml">src/ui/qmlcommon/QGCAttitudeInstrument.qml</file>
<file alias="QGroundControl/FlightControls/QGCCompass.qml">src/ui/qmlcommon/QGCCompass.qml</file>
<file alias="QGroundControl/FlightControls/QGCCompassInstrument.qml">src/ui/qmlcommon/QGCCompassInstrument.qml</file>
<file alias="QGroundControl/FlightControls/QGCCurrentAltitude.qml">src/ui/qmlcommon/QGCCurrentAltitude.qml</file>
<file alias="QGroundControl/FlightControls/QGCCurrentSpeed.qml">src/ui/qmlcommon/QGCCurrentSpeed.qml</file>
<file alias="QGroundControl/FlightControls/QGCMapBackground.qml">src/ui/qmlcommon/QGCMapBackground.qml</file>
...
...
@@ -109,19 +111,24 @@
<file alias="QGroundControl/FlightControls/QGCSlider.qml">src/ui/qmlcommon/QGCSlider.qml</file>
<file alias="QGroundControl/FlightControls/QGCWaypointEditor.qml">src/ui/qmlcommon/QGCWaypointEditor.qml</file>
<file alias="QGroundControl/FlightControls/QGCMapToolButton.qml">src/ui/qmlcommon/QGCMapToolButton.qml</file>
<file alias="QGroundControl/FlightControls/QGCArtificialHorizon.qml">src/ui/qmlcommon/QGCArtificialHorizon.qml</file>
<!-- QML Main UI Resources -->
<file alias="compass.svg">src/ui/qmlcommon/compass.svg</file>
<file alias="compassNeedle.svg">src/ui/qmlcommon/compassNeedle.svg</file>
<file alias="crossHair.svg">src/ui/qmlcommon/crossHair.svg</file>
<file alias="rollDial.svg">src/ui/qmlcommon/rollDial.svg</file>
<file alias="rollDialWhite.svg">src/ui/qmlcommon/rollDialWhite.svg</file>
<file alias="rollPointer.svg">src/ui/qmlcommon/rollPointer.svg</file>
<file alias="rollPointerWhite.svg">src/ui/qmlcommon/rollPointerWhite.svg</file>
<file alias="scale.png">src/ui/qmlcommon/scale.png</file>
<file alias="scale_end.png">src/ui/qmlcommon/scale_end.png</file>
<file alias="buttonLeft.svg">src/ui/qmlcommon/buttonLeft.svg</file>
<file alias="buttonRight.svg">src/ui/qmlcommon/buttonRight.svg</file>
<file alias="buttonHome.svg">src/ui/qmlcommon/buttonHome.svg</file>
<file alias="buttonMore.svg">src/ui/qmlcommon/buttonMore.svg</file>
<file alias="attitudeInstrument.svg">src/ui/qmlcommon/attitudeInstrument.svg</file>
<file alias="attitudeDial.svg">src/ui/qmlcommon/attitudeDial.svg</file>
<file alias="attitudePointer.svg">src/ui/qmlcommon/attitudePointer.svg</file>
<file alias="compassInstrumentAirplane.svg">src/ui/qmlcommon/compassInstrumentAirplane.svg</file>
<file alias="compassInstrumentDial.svg">src/ui/qmlcommon/compassInstrumentDial.svg</file>
</qresource>
<qresource prefix="/AutoPilotPlugins/PX4">
...
...
src/QtLocationPlugin/OpenPilotMaps.h
View file @
57c2506d
...
...
@@ -38,6 +38,8 @@ This file is part of the QGROUNDCONTROL project
#include <QNetworkReply>
#include <QMutex>
#define MAX_MAP_ZOOM (20.0)
namespace
OpenPilot
{
enum
MapType
...
...
src/QtLocationPlugin/qgeomapreplyqgc.cpp
View file @
57c2506d
...
...
@@ -53,9 +53,17 @@ QGeoMapReplyQGC::QGeoMapReplyQGC(QNetworkReply *reply, const QGeoTileSpec &spec,
:
QGeoTiledMapReply
(
spec
,
parent
)
,
m_reply
(
reply
)
{
connect
(
m_reply
,
SIGNAL
(
finished
()),
this
,
SLOT
(
networkReplyFinished
()));
connect
(
m_reply
,
SIGNAL
(
error
(
QNetworkReply
::
NetworkError
)),
this
,
SLOT
(
networkReplyError
(
QNetworkReply
::
NetworkError
)));
connect
(
m_reply
,
SIGNAL
(
destroyed
()),
this
,
SLOT
(
replyDestroyed
()));
if
(
!
reply
)
{
setError
(
QGeoTiledMapReply
::
UnknownError
,
"Invalid tile request"
);
setFinished
(
true
);
}
else
{
connect
(
m_reply
,
SIGNAL
(
finished
()),
this
,
SLOT
(
networkReplyFinished
()));
connect
(
m_reply
,
SIGNAL
(
error
(
QNetworkReply
::
NetworkError
)),
this
,
SLOT
(
networkReplyError
(
QNetworkReply
::
NetworkError
)));
connect
(
m_reply
,
SIGNAL
(
destroyed
()),
this
,
SLOT
(
replyDestroyed
()));
}
}
QGeoMapReplyQGC
::~
QGeoMapReplyQGC
()
...
...
src/QtLocationPlugin/qgeotiledmappingmanagerengineqgc.cpp
View file @
57c2506d
...
...
@@ -59,7 +59,7 @@ QGeoTiledMappingManagerEngineQGC::QGeoTiledMappingManagerEngineQGC(const QVarian
{
QGeoCameraCapabilities
cameraCaps
;
cameraCaps
.
setMinimumZoomLevel
(
2.0
);
cameraCaps
.
setMaximumZoomLevel
(
20.0
);
cameraCaps
.
setMaximumZoomLevel
(
MAX_MAP_ZOOM
);
cameraCaps
.
setSupportsBearing
(
true
);
setCameraCapabilities
(
cameraCaps
);
...
...
src/ui/flightdisplay/FlightDisplay.qml
View file @
57c2506d
This diff is collapsed.
Click to expand it.
src/ui/flightdisplay/QGCFlightDisplay.cc
View file @
57c2506d
...
...
@@ -67,8 +67,8 @@ QGCFlightDisplay::QGCFlightDisplay(QWidget *parent)
if
(
pl
)
{
pl
->
setContentsMargins
(
0
,
0
,
0
,
0
);
}
setMinimumWidth
(
27
0
);
setMinimumHeight
(
3
0
0
);
setMinimumWidth
(
38
0
);
setMinimumHeight
(
3
6
0
);
setContextPropertyObject
(
"flightDisplay"
,
this
);
setSource
(
QUrl
::
fromUserInput
(
"qrc:/qml/FlightDisplay.qml"
));
setVisible
(
true
);
...
...
@@ -114,6 +114,7 @@ void QGCFlightDisplay::_forgetUAS(UASInterface* uas)
disconnect
(
_mav
,
&
UASInterface
::
NavigationControllerDataChanged
,
this
,
&
QGCFlightDisplay
::
_updateNavigationControllerData
);
}
_mav
=
NULL
;
emit
mavPresentChanged
();
}
void
QGCFlightDisplay
::
_setActiveUAS
(
UASInterface
*
uas
)
...
...
@@ -136,6 +137,7 @@ void QGCFlightDisplay::_setActiveUAS(UASInterface* uas)
// Set new UAS
_mav
=
uas
;
}
emit
mavPresentChanged
();
}
void
QGCFlightDisplay
::
_updateAttitude
(
UASInterface
*
,
double
roll
,
double
pitch
,
double
yaw
,
quint64
)
...
...
src/ui/flightdisplay/QGCFlightDisplay.h
View file @
57c2506d
...
...
@@ -53,6 +53,7 @@ public:
Q_PROPERTY
(
bool
repaintRequested
READ
repaintRequested
NOTIFY
repaintRequestedChanged
)
Q_PROPERTY
(
float
latitude
READ
latitude
NOTIFY
latitudeChanged
)
Q_PROPERTY
(
float
longitude
READ
longitude
NOTIFY
longitudeChanged
)
Q_PROPERTY
(
bool
mavPresent
READ
mavPresent
NOTIFY
mavPresentChanged
)
Q_INVOKABLE
void
saveSetting
(
const
QString
&
key
,
const
QString
&
value
);
Q_INVOKABLE
QString
loadSetting
(
const
QString
&
key
,
const
QString
&
defaultValue
);
...
...
@@ -69,6 +70,7 @@ public:
float
latitude
()
{
return
_latitude
;
}
float
longitude
()
{
return
_longitude
;
}
bool
repaintRequested
()
{
return
true
;
}
bool
mavPresent
()
{
return
_mav
!=
NULL
;
}
/** @brief Start updating widget */
void
showEvent
(
QShowEvent
*
event
);
...
...
@@ -88,6 +90,7 @@ signals:
void
repaintRequestedChanged
();
void
latitudeChanged
();
void
longitudeChanged
();
void
mavPresentChanged
();
private
slots
:
/** @brief Attitude from main autopilot / system state */
...
...
src/ui/mapdisplay/MapDisplay.qml
View file @
57c2506d
...
...
@@ -33,6 +33,7 @@ import QtQuick.Controls.Styles 1.2
import
QtQuick
.
Layouts
1.1
import
QGroundControl
.
Palette
1.0
import
QGroundControl
.
Controls
1.0
import
QGroundControl
.
FlightControls
1.0
Rectangle
{
...
...
src/ui/qmlcommon/QGCAltitudeWidget.qml
View file @
57c2506d
...
...
@@ -63,9 +63,7 @@ Rectangle {
}
anchors
.
verticalCenter
:
parent
.
verticalCenter
height
:
parent
.
height
*
0.75
>
280
?
280
:
parent
.
height
*
0.75
clip
:
true
height
:
parent
.
height
*
0.65
>
280
?
280
:
parent
.
height
*
0.65
smooth
:
true
radius
:
5
border
.
color
:
Qt
.
rgba
(
1
,
1
,
1
,
0.25
)
...
...
@@ -74,34 +72,42 @@ Rectangle {
GradientStop
{
position
:
0.5
;
color
:
Qt
.
rgba
(
0
,
0
,
0
,
0.25
)
}
GradientStop
{
position
:
1.0
;
color
:
Qt
.
rgba
(
0
,
0
,
0
,
0.65
)
}
}
Column
{
id
:
col
width
:
parent
.
width
Rectangle
{
id
:
clipRect
height
:
parent
.
height
-
5
width
:
parent
.
width
clip
:
true
color
:
Qt
.
rgba
(
0
,
0
,
0
,
0
);
anchors.verticalCenter
:
parent
.
verticalCenter
spacing
:
_reticleSpacing
Repeater
{
model
:
_speedArray
anchors.left
:
parent
.
left
Rectangle
{
property
int
_alt
:
modelData
width
:
(
_alt
%
10
===
0
)
?
10
:
15
height
:
_reticleHeight
color
:
Qt
.
rgba
(
1
,
1
,
1
,
0.35
)
Text
{
visible
:
(
_alt
%
10
===
0
)
x
:
20
anchors.verticalCenter
:
parent
.
verticalCenter
antialiasing
:
true
font.weight
:
Font
.
DemiBold
text
:
_alt
color
:
_alt
<
0
?
"
#f8983a
"
:
"
white
"
style
:
Text
.
Outline
styleColor
:
Qt
.
rgba
(
0
,
0
,
0
,
0.25
)
Column
{
id
:
col
width
:
parent
.
width
anchors.verticalCenter
:
parent
.
verticalCenter
spacing
:
_reticleSpacing
Repeater
{
model
:
_speedArray
anchors.left
:
parent
.
left
Rectangle
{
property
int
_alt
:
modelData
width
:
(
_alt
%
10
===
0
)
?
10
:
15
height
:
_reticleHeight
color
:
Qt
.
rgba
(
1
,
1
,
1
,
0.35
)
Text
{
visible
:
(
_alt
%
10
===
0
)
x
:
20
anchors.verticalCenter
:
parent
.
verticalCenter
antialiasing
:
true
font.weight
:
Font
.
DemiBold
text
:
_alt
color
:
_alt
<
0
?
"
#f8983a
"
:
"
white
"
style
:
Text
.
Outline
styleColor
:
Qt
.
rgba
(
0
,
0
,
0
,
0.25
)
}
}
}
}
transform
:
Translate
{
y
:
((
altitude
-
_currentCenter
)
*
_reticleSlot
/
5
)
-
(
_reticleSlot
/
2
)
transform
:
Translate
{
y
:
((
altitude
-
_currentCenter
)
*
_reticleSlot
/
5
)
-
(
_reticleSlot
/
2
)
}
}
}
}
src/ui/qmlcommon/QGCArtificialHorizon.qml
0 → 100644
View file @
57c2506d
/*=====================================================================
QGroundControl Open Source Ground Control Station
(c) 2009, 2015 QGROUNDCONTROL PROJECT <http://www.qgroundcontrol.org>
This file is part of the QGROUNDCONTROL project
QGROUNDCONTROL is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
QGROUNDCONTROL is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with QGROUNDCONTROL. If not, see <http://www.gnu.org/licenses/>.
======================================================================*/
/**
* @file
* @brief QGC Artificial Horizon
* @author Gus Grubba <mavlink@grubba.com>
*/
import
QtQuick
2.4
Item
{
id
:
root
property
real
rollAngle
:
0
property
real
pitchAngle
:
0
clip
:
true
anchors.fill
:
parent
Item
{
id
:
artificialHorizon
width
:
root
.
width
*
4
height
:
root
.
height
*
4
anchors.centerIn
:
parent
Rectangle
{
id
:
sky
anchors.fill
:
parent
smooth
:
true
antialiasing
:
true
gradient
:
Gradient
{
GradientStop
{
position
:
0.25
;
color
:
Qt
.
hsla
(
0.6
,
1.0
,
0.25
)
}
GradientStop
{
position
:
0.5
;
color
:
Qt
.
hsla
(
0.6
,
0.5
,
0.55
)
}
}
}
Rectangle
{
id
:
ground
height
:
sky
.
height
/
2
anchors
{
left
:
sky
.
left
;
right
:
sky
.
right
;
bottom
:
sky
.
bottom
}
smooth
:
true
antialiasing
:
true
gradient
:
Gradient
{
GradientStop
{
position
:
0.0
;
color
:
Qt
.
hsla
(
0.25
,
0.5
,
0.45
)
}
GradientStop
{
position
:
0.25
;
color
:
Qt
.
hsla
(
0.25
,
0.75
,
0.25
)
}
}
}
transform
:
[
Translate
{
y
:
root
.
visible
?
pitchAngle
*
4
:
0
},
Rotation
{
origin.x
:
artificialHorizon
.
width
/
2
origin.y
:
artificialHorizon
.
height
/
2
angle
:
root
.
visible
?
-
rollAngle
:
0
}]
}
}
src/ui/qmlcommon/QGCAttitudeInstrument.qml
0 → 100644
View file @
57c2506d
/*=====================================================================
QGroundControl Open Source Ground Control Station
(c) 2009, 2015 QGROUNDCONTROL PROJECT <http://www.qgroundcontrol.org>
This file is part of the QGROUNDCONTROL project
QGROUNDCONTROL is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
QGROUNDCONTROL is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with QGROUNDCONTROL. If not, see <http://www.gnu.org/licenses/>.
======================================================================*/
/**
* @file
* @brief QGC Attitude Instrument
* @author Gus Grubba <mavlink@grubba.com>
*/
import
QtQuick
2.4
Item
{
id
:
root
property
real
rollAngle
:
0
property
real
pitchAngle
:
0
property
real
size
:
100
width
:
size
height
:
size
//----------------------------------------------------
//-- Artificial Horizon
QGCArtificialHorizon
{
rollAngle
:
root
.
rollAngle
pitchAngle
:
root
.
pitchAngle
}
//----------------------------------------------------
//-- Pointer
Image
{
id
:
pointer
source
:
"
/qml/attitudePointer.svg
"
width
:
root
.
width
mipmap
:
true
fillMode
:
Image
.
PreserveAspectFit
anchors.bottom
:
parent
.
bottom
anchors.horizontalCenter
:
parent
.
horizontalCenter
}
//----------------------------------------------------
//-- Instrument Dial
Image
{
id
:
instrumentDial
source
:
"
/qml/attitudeDial.svg
"
mipmap
:
true
width
:
root
.
width
fillMode
:
Image
.
PreserveAspectFit
anchors.bottom
:
parent
.
bottom
anchors.horizontalCenter
:
parent
.
horizontalCenter
transform
:
Rotation
{
origin.x
:
root
.
width
/
2
origin.y
:
root
.
height
/
2
angle
:
-
rollAngle
}
}
//----------------------------------------------------
//-- Pitch
QGCPitchWidget
{
id
:
pitchWidget
size
:
parent
.
width
*
0.65
anchors.verticalCenter
:
parent
.
verticalCenter
pitchAngle
:
root
.
pitchAngle
rollAngle
:
root
.
rollAngle
color
:
Qt
.
rgba
(
0
,
0
,
0
,
0
)
}
//----------------------------------------------------
//-- Cross Hair
Image
{
id
:
crossHair
anchors.centerIn
:
parent
source
:
"
/qml/crossHair.svg
"
mipmap
:
true
width
:
parent
.
width
*
0.75
fillMode
:
Image
.
PreserveAspectFit
}
//----------------------------------------------------
//-- Instrument Pannel
Image
{
id
:
pannel
width
:
parent
.
width
source
:
"
/qml/attitudeInstrument.svg
"
mipmap
:
true
fillMode
:
Image
.
PreserveAspectFit
anchors.centerIn
:
parent
}
}
src/ui/qmlcommon/QGCAttitudeWidget.qml
View file @
57c2506d
...
...
@@ -23,7 +23,7 @@ This file is part of the QGROUNDCONTROL project
/**
* @file
* @brief QGC
Main Flight Display
* @brief QGC
Attitude Widget
* @author Gus Grubba <mavlink@grubba.com>
*/
...
...
@@ -33,86 +33,43 @@ Item {
id
:
root
property
real
rollAngle
:
0
property
real
pitchAngle
:
0
property
real
backgroundOpacity
:
1
property
bool
displayBackground
:
true
property
bool
useWhite
:
true
anchors.fill
:
parent
Item
{
id
:
background
width
:
parent
.
width
*
4
height
:
parent
.
height
*
4
anchors.centerIn
:
parent
Rectangle
{
anchors.fill
:
parent
color
:
Qt
.
rgba
(
0
,
0
,
0
,
0
)
visible
:
displayBackground
Rectangle
{
id
:
sky
visible
:
displayBackground
anchors.fill
:
parent
smooth
:
true
antialiasing
:
true
gradient
:
Gradient
{
GradientStop
{
position
:
0.25
;
color
:
Qt
.
hsla
(
0.6
,
1.0
,
0.25
,
backgroundOpacity
)
}
GradientStop
{
position
:
0.5
;
color
:
Qt
.
hsla
(
0.6
,
0.5
,
0.75
,
backgroundOpacity
)
}
}
}
Rectangle
{
id
:
ground
visible
:
displayBackground
height
:
sky
.
height
/
2
anchors
{
left
:
sky
.
left
;
right
:
sky
.
right
;
bottom
:
sky
.
bottom
}
smooth
:
true
antialiasing
:
true
gradient
:
Gradient
{
GradientStop
{
position
:
0.0
;
color
:
Qt
.
hsla
(
0.25
,
0.5
,
0.45
,
backgroundOpacity
)
}
GradientStop
{
position
:
0.25
;
color
:
Qt
.
hsla
(
0.25
,
0.75
,
0.25
,
backgroundOpacity
)
}
}
}
transform
:
[
Translate
{
y
:
(
root
.
visible
&&
root
.
displayBackground
)
?
pitchAngle
*
4
:
0
},
Rotation
{
origin.x
:
background
.
width
/
2
origin.y
:
background
.
height
/
2
angle
:
(
root
.
visible
&&
root
.
displayBackground
)
?
-
rollAngle
:
0
}]
}
QGCArtificialHorizon
{
rollAngle
:
root
.
rollAngle
pitchAngle
:
root
.
pitchAngle
}
Image
{
id
:
rollDial
anchors
{
bottom
:
root
.
verticalCenter
;
horizontalCenter
:
parent
.
horizontalCenter
}
source
:
useWhite
?
"
/qml/rollDialWhite.svg
"
:
"
/qml/rollDial
.svg
"
source
:
"
/qml/rollDialWhite
.svg
"
mipmap
:
true
width
:
260
fillMode
:
Image
.
PreserveAspectFit
transform
:
Rotation
{
origin.x
:
rollDial
.
width
/
2
origin.y
:
rollDial
.
height
angle
:
-
rollAngle
angle
:
-
rollAngle
}
}
Image
{
id
:
pointer
anchors
{
bottom
:
root
.
verticalCenter
;
horizontalCenter
:
parent
.
horizontalCenter
}
source
:
useWhite
?
"
/qml/rollPointerWhite.svg
"
:
"
/qml/rollPointer
.svg
"
smooth
:
true
width
:
rollDial
.
width
fillMode
:
Image
.
PreserveAspectFit
source
:
"
/qml/rollPointerWhite
.svg
"
mipmap
:
true
width
:
rollDial
.
width
fillMode
:
Image
.
PreserveAspectFit
}
Image
{
id
:
crossHair
anchors.centerIn
:
parent
source
:
"
/qml/crossHair.svg
"
mipmap
:
true
width
:
260
fillMode
:
Image
.
PreserveAspectFit
}
}
src/ui/qmlcommon/QGCCompass.qml
View file @
57c2506d
...
...
@@ -31,8 +31,6 @@ import QtQuick 2.4
Item
{
id
:
root
width
:
120
height
:
width
property
real
heading
:
0
Image
{
id
:
compass
...
...
src/ui/qmlcommon/QGCCompassInstrument.qml
0 → 100644
View file @
57c2506d
/*=====================================================================
QGroundControl Open Source Ground Control Station
(c) 2009, 2015 QGROUNDCONTROL PROJECT <http://www.qgroundcontrol.org>
This file is part of the QGROUNDCONTROL project
QGROUNDCONTROL is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
QGROUNDCONTROL is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with QGROUNDCONTROL. If not, see <http://www.gnu.org/licenses/>.
======================================================================*/
/**
* @file
* @brief QGC Compass
* @author Gus Grubba <mavlink@grubba.com>
*/
import
QtQuick
2.4
import
QGroundControl
.
ScreenTools
1.0
Item
{
property
ScreenTools
screenTools
:
ScreenTools
{
}
id
:
root
property
real
heading
:
0
property
real
size
:
120
property
real
_fontSize
:
screenTools
.
dpiAdjustedPointSize
(
size
*
12
/
120
)
width
:
size
height
:
size
Rectangle
{
id
:
compassBack
anchors.fill
:
parent
color
:
"
#212121
"
}
Image
{
id
:
pointer
source
:
"
/qml/compassInstrumentAirplane.svg
"
mipmap
:
true
width
:
root
.
width
*
0.75
fillMode
:
Image
.
PreserveAspectFit
anchors.centerIn
:
parent
transform
:
Rotation
{
origin.x
:
pointer
.
width
/
2
origin.y
:
pointer
.
height
/
2
angle
:
-
heading
}
}
Image
{
id
:
compassDial
source
:
"
/qml/compassInstrumentDial.svg
"
mipmap
:
true
width
:
root
.
width
fillMode
:
Image
.
PreserveAspectFit
anchors.centerIn
:
parent
}
Rectangle
{
anchors.centerIn
:
root
width
:
size
*
0.35
height
:
size
*
0.2
border.color
:
Qt
.
rgba
(
1
,
1
,
1
,
0.15
)
color
:
Qt
.
rgba
(
0
,
0
,
0
,
0.65
)
Text
{
text
:
heading
.
toFixed
(
0
)
font.weight
:
Font
.
DemiBold
font.pointSize
:
_fontSize
<
1
?
1
:
_fontSize
;
color
:
"
white
"
anchors.centerIn
:
parent
}
}
}
src/ui/qmlcommon/QGCMapBackground.qml
View file @
57c2506d
...
...
@@ -37,9 +37,10 @@ Rectangle {
id
:
root
property
real
latitude
:
37.803784
property
real
longitude
:
-
122.462276
property
real
zoomLevel
:
1
5
property
real
zoomLevel
:
1
8
property
real
heading
:
0
property
bool
alwaysNorth
:
true
property
bool
interactive
:
true
property
alias
mapItem
:
map
color
:
Qt
.
rgba
(
0
,
0
,
0
,
0
)
...
...
@@ -95,8 +96,11 @@ Rectangle {
height
:
1
zoomLevel
:
root
.
zoomLevel
anchors.centerIn
:
parent
center
:
map
.
visible
?
QtPositioning
.
coordinate
(
lat
,
lon
)
:
QtPositioning
.
coordinate
(
0
,
0
)
center
:
QtPositioning
.
coordinate
(
lat
,
lon
)
/*
// There is a bug currently in Qt where it fails to render a map taller than 6 tiles high. Until
// that's fixed, we can't rotate the map as it would require a larger map, which can easely grow
// larger than 6 tiles high.
transform: Rotation {
origin.x: map.width / 2
origin.y: map.height / 2
...
...
@@ -104,7 +108,7 @@ Rectangle {
}
*/
gesture.flickDeceleration
:
3000
gesture.enabled
:
tru
e
gesture.enabled
:
root
.
interactiv
e
onWidthChanged
:
{
scaleTimer
.
restart
()
...
...
@@ -118,6 +122,10 @@ Rectangle {
scaleTimer
.
restart
()
}
Component.onCompleted
:
{
map
.
zoomLevel
=
18
}
function
calculateScale
()
{
var
coord1
,
coord2
,
dist
,
text
,
f
f
=
0
...
...
src/ui/qmlcommon/QGCPitchWidget.qml
View file @
57c2506d
...
...
@@ -28,15 +28,21 @@ This file is part of the QGROUNDCONTROL project
*/
import
QtQuick
2.1
import
QGroundControl
.
ScreenTools
1.0
Rectangle
{
property
real
pitchAngle
:
0
property
real
rollAngle
:
0
property
real
_reticleHeight
:
1
property
real
_reticleSpacing
:
17
property
real
_reticleSlot
:
_reticleSpacing
+
_reticleHeight
height
:
110
width
:
120
property
ScreenTools
screenTools
:
ScreenTools
{
}
property
real
pitchAngle
:
0
property
real
rollAngle
:
0
property
real
size
:
120
property
real
_reticleHeight
:
1
property
real
_reticleSpacing
:
size
*
0.15
property
real
_reticleSlot
:
_reticleSpacing
+
_reticleHeight
property
real
_longDash
:
size
*
0.40
property
real
_shortDash
:
size
*
0.25
property
real
_fontSize
:
screenTools
.
dpiAdjustedPointSize
(
size
*
11
/
120
);
height
:
size
*
0.9
width
:
size
radius
:
8
anchors.horizontalCenter
:
parent
.
horizontalCenter
anchors.verticalCenter
:
parent
.
verticalCenter
...
...
@@ -53,27 +59,29 @@ Rectangle {
Rectangle
{
property
int
_pitch
:
-
(
modelData
*
5
-
90
)
anchors.horizontalCenter
:
parent
.
horizontalCenter
width
:
(
_pitch
%
10
)
===
0
?
50
:
30
width
:
(
_pitch
%
10
)
===
0
?
_longDash
:
_shortDash
height
:
_reticleHeight
color
:
"
white
"
antialiasing
:
true
smooth
:
true
Text
{
anchors.horizontalCenter
:
parent
.
horizontalCenter
anchors.horizontalCenterOffset
:
-
40
anchors.horizontalCenterOffset
:
-
(
_longDash
*
0.8
)
anchors.verticalCenter
:
parent
.
verticalCenter
smooth
:
true
font.weight
:
Font
.
DemiBold
font.pointSize
:
_fontSize
<
1
?
1
:
_fontSize
;
text
:
_pitch
color
:
"
white
"
visible
:
(
_pitch
!=
0
)
&&
((
_pitch
%
10
)
===
0
)
}
Text
{
anchors.horizontalCenter
:
parent
.
horizontalCenter
anchors.horizontalCenterOffset
:
40
anchors.horizontalCenterOffset
:
(
_longDash
*
0.8
)
anchors.verticalCenter
:
parent
.
verticalCenter
smooth
:
true
font.weight
:
Font
.
DemiBold
font.pointSize
:
_fontSize
<
1
?
1
:
_fontSize
;
text
:
_pitch
color
:
"
white
"
visible
:
(
_pitch
!=
0
)
&&
((
_pitch
%
10
)
===
0
)
...
...
@@ -87,7 +95,7 @@ Rectangle {
}
transform
:
[
Rotation
{
origin.x
:
width
/
2
origin.x
:
width
/
2
origin.y
:
height
/
2
angle
:
-
rollAngle
}
...
...
src/ui/qmlcommon/QGCSpeedWidget.qml
View file @
57c2506d
...
...
@@ -37,12 +37,9 @@ Rectangle {
property
real
_reticleSpacing
:
10
property
real
_reticleHeight
:
2
property
real
_reticleSlot
:
_reticleSpacing
+
_reticleHeight
anchors.verticalCenter
:
parent
.
verticalCenter
z
:
10
height
:
parent
.
height
*
0.75
>
280
?
280
:
parent
.
height
*
0.75
clip
:
true
height
:
parent
.
height
*
0.65
>
280
?
280
:
parent
.
height
*
0.65
smooth
:
true
radius
:
5
border.color
:
Qt
.
rgba
(
1
,
1
,
1
,
0.25
)
...
...
@@ -51,35 +48,43 @@ Rectangle {
GradientStop
{
position
:
0.5
;
color
:
Qt
.
rgba
(
0
,
0
,
0
,
0.25
)
}
GradientStop
{
position
:
1.0
;
color
:
Qt
.
rgba
(
0
,
0
,
0
,
0.65
)
}
}
Column
{
id
:
col
width
:
parent
.
width
Rectangle
{
id
:
clipRect
height
:
parent
.
height
-
5
width
:
parent
.
width
clip
:
true
color
:
Qt
.
rgba
(
0
,
0
,
0
,
0
);
anchors.verticalCenter
:
parent
.
verticalCenter
spacing
:
_reticleSpacing
Repeater
{
model
:
40
Rectangle
{
property
int
_speed
:
-
(
index
-
20
)
width
:
(
_speed
%
5
===
0
)
?
10
:
15
anchors.right
:
parent
.
right
height
:
_reticleHeight
color
:
Qt
.
rgba
(
1
,
1
,
1
,
0.35
)
Text
{
visible
:
(
_speed
%
5
===
0
)
anchors.horizontalCenter
:
parent
.
horizontalCenter
anchors.horizontalCenterOffset
:
-
30
anchors.verticalCenter
:
parent
.
verticalCenter
antialiasing
:
true
font.weight
:
Font
.
DemiBold
text
:
_speed
color
:
_speed
<
0
?
"
#f8983a
"
:
"
white
"
style
:
Text
.
Outline
styleColor
:
Qt
.
rgba
(
0
,
0
,
0
,
0.25
)
Column
{
id
:
col
width
:
parent
.
width
anchors.verticalCenter
:
parent
.
verticalCenter
spacing
:
_reticleSpacing
Repeater
{
model
:
40
Rectangle
{
property
int
_speed
:
-
(
index
-
20
)
width
:
(
_speed
%
5
===
0
)
?
10
:
15
anchors.right
:
parent
.
right
height
:
_reticleHeight
color
:
Qt
.
rgba
(
1
,
1
,
1
,
0.35
)
Text
{
visible
:
(
_speed
%
5
===
0
)
anchors.horizontalCenter
:
parent
.
horizontalCenter
anchors.horizontalCenterOffset
:
-
30
anchors.verticalCenter
:
parent
.
verticalCenter
antialiasing
:
true
font.weight
:
Font
.
DemiBold
text
:
_speed
color
:
_speed
<
0
?
"
#f8983a
"
:
"
white
"
style
:
Text
.
Outline
styleColor
:
Qt
.
rgba
(
0
,
0
,
0
,
0.25
)
}
}
}
}
transform
:
Translate
{
y
:
(
speed
*
_reticleSlot
)
-
(
_reticleSlot
/
2
)
transform
:
Translate
{
y
:
(
speed
*
_reticleSlot
)
-
(
_reticleSlot
/
2
)
}
}
}
}
src/ui/qmlcommon/attitudeDial.svg
0 → 100644
View file @
57c2506d
<?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=
"Layer_2"
xmlns=
"http://www.w3.org/2000/svg"
xmlns:xlink=
"http://www.w3.org/1999/xlink"
x=
"0px"
y=
"0px"
viewBox=
"0 0 288 288"
enable-background=
"new 0 0 288 288"
xml:space=
"preserve"
>
<line
fill=
"none"
stroke=
"#FFFFFF"
stroke-width=
"4"
x1=
"143.999"
y1=
"36.793"
x2=
"143.999"
y2=
"18.793"
/>
<line
fill=
"none"
stroke=
"#FFFFFF"
stroke-width=
"4"
x1=
"171.739"
y1=
"40.458"
x2=
"176.398"
y2=
"23.072"
/>
<line
fill=
"none"
stroke=
"#FFFFFF"
stroke-width=
"4"
x1=
"197.586"
y1=
"51.179"
x2=
"206.586"
y2=
"35.591"
/>
<line
fill=
"none"
stroke=
"#FFFFFF"
stroke-width=
"4"
x1=
"219.777"
y1=
"68.224"
x2=
"232.505"
y2=
"55.496"
/>
<line
fill=
"none"
stroke=
"#FFFFFF"
stroke-width=
"4"
x1=
"236.801"
y1=
"90.432"
x2=
"252.389"
y2=
"81.432"
/>
<line
fill=
"none"
stroke=
"#FFFFFF"
stroke-width=
"4"
x1=
"116.254"
y1=
"40.431"
x2=
"111.596"
y2=
"23.045"
/>
<line
fill=
"none"
stroke=
"#FFFFFF"
stroke-width=
"4"
x1=
"90.397"
y1=
"51.127"
x2=
"81.397"
y2=
"35.539"
/>
<line
fill=
"none"
stroke=
"#FFFFFF"
stroke-width=
"4"
x1=
"68.189"
y1=
"68.151"
x2=
"55.461"
y2=
"55.423"
/>
<line
fill=
"none"
stroke=
"#FFFFFF"
stroke-width=
"4"
x1=
"51.144"
y1=
"90.342"
x2=
"35.556"
y2=
"81.342"
/>
<rect
x=
"135"
y=
"270"
fill=
"none"
width=
"18"
height=
"18"
/>
</svg>
src/ui/qmlcommon/attitudeInstrument.svg
0 → 100644
View file @
57c2506d
<?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=
"Layer_4"
xmlns=
"http://www.w3.org/2000/svg"
xmlns:xlink=
"http://www.w3.org/1999/xlink"
x=
"0px"
y=
"0px"
viewBox=
"0 0 288 288"
enable-background=
"new 0 0 288 288"
xml:space=
"preserve"
>
<path
fill=
"#333333"
d=
"M0-0.002v288h288v-288H0z M144,270c-69.588,0-126-56.412-126-126S74.412,18,144,18s126,56.412,126,126
S213.588,270,144,270z"
/>
</svg>
src/ui/qmlcommon/attitudePointer.svg
0 → 100644
View file @
57c2506d
<?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=
"Layer_3"
xmlns=
"http://www.w3.org/2000/svg"
xmlns:xlink=
"http://www.w3.org/1999/xlink"
x=
"0px"
y=
"0px"
viewBox=
"0 0 288 288"
enable-background=
"new 0 0 288 288"
xml:space=
"preserve"
>
<polygon
fill=
"#ED1C24"
points=
"144,46.2 133.2,17.4 154.8,17.4 "
/>
<rect
x=
"135"
y=
"270"
fill=
"none"
width=
"18"
height=
"18"
/>
</svg>
src/ui/qmlcommon/buttonMore.svg
0 → 100644
View file @
57c2506d
<?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"
xmlns=
"http://www.w3.org/2000/svg"
xmlns:xlink=
"http://www.w3.org/1999/xlink"
x=
"0px"
y=
"0px"
viewBox=
"0 0 288 288"
enable-background=
"new 0 0 288 288"
xml:space=
"preserve"
>
<g
id=
"Layer_1"
>
<g>
<path
fill=
"#212121"
d=
"M288,270c0,9.9-8.1,18-18,18H18c-9.9,0-18-8.1-18-18V18C0,8.1,8.1,0,18,0h252c9.9,0,18,8.1,18,18V270z"
/>
</g>
</g>
<g
id=
"Layer_2"
>
<line
fill=
"none"
stroke=
"#939598"
stroke-width=
"24"
stroke-miterlimit=
"10"
x1=
"36"
y1=
"77.79"
x2=
"252"
y2=
"77.79"
/>
<line
fill=
"none"
stroke=
"#939598"
stroke-width=
"24"
stroke-miterlimit=
"10"
x1=
"36"
y1=
"144"
x2=
"252"
y2=
"144"
/>
<line
fill=
"none"
stroke=
"#939598"
stroke-width=
"24"
stroke-miterlimit=
"10"
x1=
"36"
y1=
"210.21"
x2=
"252"
y2=
"210.21"
/>
</g>
</svg>
src/ui/qmlcommon/compassInstrumentAirplane.svg
0 → 100644
View file @
57c2506d
<?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=
"Layer_3"
xmlns=
"http://www.w3.org/2000/svg"
xmlns:xlink=
"http://www.w3.org/1999/xlink"
x=
"0px"
y=
"0px"
viewBox=
"0 0 288 288"
enable-background=
"new 0 0 288 288"
xml:space=
"preserve"
>
<polyline
fill=
"#231F20"
stroke=
"#D23528"
stroke-width=
"4"
stroke-linecap=
"round"
stroke-linejoin=
"round"
points=
"
143.993,240.123 96.979,252 96.979,240.123 132.116,209.225 126.901,148.952 54.153,175.072 54.153,152.091 126.901,100.885
126.901,75.203 143.993,36 144.007,36 161.099,75.203 161.099,100.885 233.847,152.091 233.847,175.072 161.099,148.952
155.884,209.225 191.021,240.123 191.021,252 144.007,240.123 "
/>
</svg>
src/ui/qmlcommon/compassInstrumentDial.svg
0 → 100644
View file @
57c2506d
<?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=
"Layer_2"
xmlns=
"http://www.w3.org/2000/svg"
xmlns:xlink=
"http://www.w3.org/1999/xlink"
x=
"0px"
y=
"0px"
viewBox=
"0 0 288 288"
enable-background=
"new 0 0 288 288"
xml:space=
"preserve"
>
<circle
opacity=
"0.15"
fill=
"none"
stroke=
"#FFFFFF"
stroke-width=
"3"
stroke-miterlimit=
"10"
cx=
"144"
cy=
"144"
r=
"126"
/>
<circle
fill=
"none"
cx=
"144"
cy=
"144"
r=
"124.342"
/>
<line
fill=
"none"
stroke=
"#FFFFFF"
stroke-width=
"2"
stroke-linecap=
"round"
stroke-miterlimit=
"10"
x1=
"144"
y1=
"21.684"
x2=
"144"
y2=
"41.579"
/>
<line
fill=
"none"
stroke=
"#FFFFFF"
stroke-width=
"2"
stroke-linecap=
"round"
stroke-miterlimit=
"10"
x1=
"82.842"
y1=
"38.071"
x2=
"92.789"
y2=
"55.301"
/>
<line
fill=
"none"
stroke=
"#FFFFFF"
stroke-width=
"2"
stroke-linecap=
"round"
stroke-miterlimit=
"10"
x1=
"38.071"
y1=
"82.842"
x2=
"55.301"
y2=
"92.789"
/>
<line
fill=
"none"
stroke=
"#FFFFFF"
stroke-width=
"2"
stroke-linecap=
"round"
stroke-miterlimit=
"10"
x1=
"21.684"
y1=
"144"
x2=
"41.579"
y2=
"144"
/>
<line
fill=
"none"
stroke=
"#FFFFFF"
stroke-width=
"2"
stroke-linecap=
"round"
stroke-miterlimit=
"10"
x1=
"38.071"
y1=
"205.158"
x2=
"55.301"
y2=
"195.211"
/>
<line
fill=
"none"
stroke=
"#FFFFFF"
stroke-width=
"2"
stroke-linecap=
"round"
stroke-miterlimit=
"10"
x1=
"82.842"
y1=
"249.929"
x2=
"92.789"
y2=
"232.699"
/>
<line
fill=
"none"
stroke=
"#FFFFFF"
stroke-width=
"2"
stroke-linecap=
"round"
stroke-miterlimit=
"10"
x1=
"144"
y1=
"266.316"
x2=
"144"
y2=
"246.421"
/>
<line
fill=
"none"
stroke=
"#FFFFFF"
stroke-width=
"2"
stroke-linecap=
"round"
stroke-miterlimit=
"10"
x1=
"205.158"
y1=
"249.929"
x2=
"195.211"
y2=
"232.699"
/>
<line
fill=
"none"
stroke=
"#FFFFFF"
stroke-width=
"2"
stroke-linecap=
"round"
stroke-miterlimit=
"10"
x1=
"249.929"
y1=
"205.158"
x2=
"232.699"
y2=
"195.211"
/>
<line
fill=
"none"
stroke=
"#FFFFFF"
stroke-width=
"2"
stroke-linecap=
"round"
stroke-miterlimit=
"10"
x1=
"266.316"
y1=
"144"
x2=
"246.421"
y2=
"144"
/>
<line
fill=
"none"
stroke=
"#FFFFFF"
stroke-width=
"2"
stroke-linecap=
"round"
stroke-miterlimit=
"10"
x1=
"249.929"
y1=
"82.842"
x2=
"232.699"
y2=
"92.789"
/>
<line
fill=
"none"
stroke=
"#FFFFFF"
stroke-width=
"2"
stroke-linecap=
"round"
stroke-miterlimit=
"10"
x1=
"205.158"
y1=
"38.071"
x2=
"195.211"
y2=
"55.301"
/>
<line
fill=
"none"
stroke=
"#FFFFFF"
stroke-linecap=
"round"
stroke-miterlimit=
"10"
x1=
"144"
y1=
"21.684"
x2=
"144"
y2=
"34.496"
/>
<line
fill=
"none"
stroke=
"#FFFFFF"
stroke-linecap=
"round"
stroke-miterlimit=
"10"
x1=
"122.76"
y1=
"23.542"
x2=
"124.985"
y2=
"36.159"
/>
<line
fill=
"none"
stroke=
"#FFFFFF"
stroke-linecap=
"round"
stroke-miterlimit=
"10"
x1=
"102.166"
y1=
"29.061"
x2=
"106.547"
y2=
"41.1"
/>
<line
fill=
"none"
stroke=
"#FFFFFF"
stroke-linecap=
"round"
stroke-miterlimit=
"10"
x1=
"82.842"
y1=
"38.071"
x2=
"89.248"
y2=
"49.167"
/>
<line
fill=
"none"
stroke=
"#FFFFFF"
stroke-linecap=
"round"
stroke-miterlimit=
"10"
x1=
"65.377"
y1=
"50.301"
x2=
"73.612"
y2=
"60.115"
/>
<line
fill=
"none"
stroke=
"#FFFFFF"
stroke-linecap=
"round"
stroke-miterlimit=
"10"
x1=
"50.301"
y1=
"65.377"
x2=
"60.115"
y2=
"73.612"
/>
<line
fill=
"none"
stroke=
"#FFFFFF"
stroke-linecap=
"round"
stroke-miterlimit=
"10"
x1=
"38.071"
y1=
"82.842"
x2=
"49.167"
y2=
"89.248"
/>
<line
fill=
"none"
stroke=
"#FFFFFF"
stroke-linecap=
"round"
stroke-miterlimit=
"10"
x1=
"29.061"
y1=
"102.166"
x2=
"41.1"
y2=
"106.547"
/>
<line
fill=
"none"
stroke=
"#FFFFFF"
stroke-linecap=
"round"
stroke-miterlimit=
"10"
x1=
"23.542"
y1=
"122.76"
x2=
"36.159"
y2=
"124.985"
/>
<line
fill=
"none"
stroke=
"#FFFFFF"
stroke-linecap=
"round"
stroke-miterlimit=
"10"
x1=
"21.684"
y1=
"144"
x2=
"34.496"
y2=
"144"
/>
<line
fill=
"none"
stroke=
"#FFFFFF"
stroke-linecap=
"round"
stroke-miterlimit=
"10"
x1=
"23.542"
y1=
"165.24"
x2=
"36.159"
y2=
"163.015"
/>
<line
fill=
"none"
stroke=
"#FFFFFF"
stroke-linecap=
"round"
stroke-miterlimit=
"10"
x1=
"29.061"
y1=
"185.834"
x2=
"41.1"
y2=
"181.453"
/>
<line
fill=
"none"
stroke=
"#FFFFFF"
stroke-linecap=
"round"
stroke-miterlimit=
"10"
x1=
"38.071"
y1=
"205.158"
x2=
"49.167"
y2=
"198.752"
/>
<line
fill=
"none"
stroke=
"#FFFFFF"
stroke-linecap=
"round"
stroke-miterlimit=
"10"
x1=
"50.301"
y1=
"222.623"
x2=
"60.115"
y2=
"214.388"
/>
<line
fill=
"none"
stroke=
"#FFFFFF"
stroke-linecap=
"round"
stroke-miterlimit=
"10"
x1=
"65.377"
y1=
"237.699"
x2=
"73.612"
y2=
"227.885"
/>
<line
fill=
"none"
stroke=
"#FFFFFF"
stroke-linecap=
"round"
stroke-miterlimit=
"10"
x1=
"82.842"
y1=
"249.929"
x2=
"89.248"
y2=
"238.833"
/>
<line
fill=
"none"
stroke=
"#FFFFFF"
stroke-linecap=
"round"
stroke-miterlimit=
"10"
x1=
"102.166"
y1=
"258.939"
x2=
"106.547"
y2=
"246.9"
/>
<line
fill=
"none"
stroke=
"#FFFFFF"
stroke-linecap=
"round"
stroke-miterlimit=
"10"
x1=
"122.76"
y1=
"264.458"
x2=
"124.985"
y2=
"251.841"
/>
<line
fill=
"none"
stroke=
"#FFFFFF"
stroke-linecap=
"round"
stroke-miterlimit=
"10"
x1=
"144"
y1=
"266.316"
x2=
"144"
y2=
"253.504"
/>
<line
fill=
"none"
stroke=
"#FFFFFF"
stroke-linecap=
"round"
stroke-miterlimit=
"10"
x1=
"165.24"
y1=
"264.458"
x2=
"163.015"
y2=
"251.841"
/>
<line
fill=
"none"
stroke=
"#FFFFFF"
stroke-linecap=
"round"
stroke-miterlimit=
"10"
x1=
"185.834"
y1=
"258.939"
x2=
"181.453"
y2=
"246.9"
/>
<line
fill=
"none"
stroke=
"#FFFFFF"
stroke-linecap=
"round"
stroke-miterlimit=
"10"
x1=
"205.158"
y1=
"249.929"
x2=
"198.752"
y2=
"238.833"
/>
<line
fill=
"none"
stroke=
"#FFFFFF"
stroke-linecap=
"round"
stroke-miterlimit=
"10"
x1=
"222.623"
y1=
"237.699"
x2=
"214.388"
y2=
"227.885"
/>
<line
fill=
"none"
stroke=
"#FFFFFF"
stroke-linecap=
"round"
stroke-miterlimit=
"10"
x1=
"237.699"
y1=
"222.623"
x2=
"227.885"
y2=
"214.388"
/>
<line
fill=
"none"
stroke=
"#FFFFFF"
stroke-linecap=
"round"
stroke-miterlimit=
"10"
x1=
"249.929"
y1=
"205.158"
x2=
"238.833"
y2=
"198.752"
/>
<line
fill=
"none"
stroke=
"#FFFFFF"
stroke-linecap=
"round"
stroke-miterlimit=
"10"
x1=
"258.939"
y1=
"185.834"
x2=
"246.9"
y2=
"181.453"
/>
<line
fill=
"none"
stroke=
"#FFFFFF"
stroke-linecap=
"round"
stroke-miterlimit=
"10"
x1=
"264.458"
y1=
"165.24"
x2=
"251.841"
y2=
"163.015"
/>
<line
fill=
"none"
stroke=
"#FFFFFF"
stroke-linecap=
"round"
stroke-miterlimit=
"10"
x1=
"266.316"
y1=
"144"
x2=
"253.504"
y2=
"144"
/>
<line
fill=
"none"
stroke=
"#FFFFFF"
stroke-linecap=
"round"
stroke-miterlimit=
"10"
x1=
"264.458"
y1=
"122.76"
x2=
"251.841"
y2=
"124.985"
/>
<line
fill=
"none"
stroke=
"#FFFFFF"
stroke-linecap=
"round"
stroke-miterlimit=
"10"
x1=
"258.939"
y1=
"102.166"
x2=
"246.9"
y2=
"106.547"
/>
<line
fill=
"none"
stroke=
"#FFFFFF"
stroke-linecap=
"round"
stroke-miterlimit=
"10"
x1=
"249.929"
y1=
"82.842"
x2=
"238.833"
y2=
"89.248"
/>
<line
fill=
"none"
stroke=
"#FFFFFF"
stroke-linecap=
"round"
stroke-miterlimit=
"10"
x1=
"237.699"
y1=
"65.377"
x2=
"227.885"
y2=
"73.612"
/>
<line
fill=
"none"
stroke=
"#FFFFFF"
stroke-linecap=
"round"
stroke-miterlimit=
"10"
x1=
"222.623"
y1=
"50.301"
x2=
"214.388"
y2=
"60.115"
/>
<line
fill=
"none"
stroke=
"#FFFFFF"
stroke-linecap=
"round"
stroke-miterlimit=
"10"
x1=
"205.158"
y1=
"38.071"
x2=
"198.752"
y2=
"49.167"
/>
<line
fill=
"none"
stroke=
"#FFFFFF"
stroke-linecap=
"round"
stroke-miterlimit=
"10"
x1=
"185.834"
y1=
"29.061"
x2=
"181.453"
y2=
"41.1"
/>
<line
fill=
"none"
stroke=
"#FFFFFF"
stroke-linecap=
"round"
stroke-miterlimit=
"10"
x1=
"165.24"
y1=
"23.542"
x2=
"163.015"
y2=
"36.159"
/>
<g>
<path
fill=
"#F1F2F2"
d=
"M50.594,153.945l-5.279-19.895h2.701l3.026,13.042c0.326,1.366,0.606,2.723,0.841,4.071
c0.507-2.126,0.805-3.352,0.896-3.678l3.786-13.435h3.176l2.85,10.07c0.715,2.497,1.23,4.845,1.547,7.043
c0.253-1.258,0.584-2.701,0.991-4.329l3.121-12.784h2.646l-5.455,19.895h-2.538l-4.193-15.159
c-0.353-1.267-0.561-2.045-0.624-2.334c-0.208,0.914-0.403,1.692-0.584,2.334l-4.221,15.159H50.594z"
/>
</g>
<g>
<path
fill=
"#F1F2F2"
d=
"M136.457,234.726l2.402-0.21c0.114,0.962,0.379,1.752,0.795,2.369c0.416,0.617,1.06,1.115,1.935,1.496
c0.875,0.381,1.859,0.571,2.953,0.571c0.971,0,1.828-0.144,2.572-0.433c0.744-0.289,1.298-0.685,1.661-1.188
c0.363-0.503,0.544-1.052,0.544-1.647c0-0.604-0.175-1.131-0.525-1.581c-0.35-0.451-0.927-0.829-1.732-1.135
c-0.516-0.201-1.658-0.514-3.425-0.938s-3.005-0.825-3.714-1.201c-0.919-0.481-1.602-1.078-2.053-1.791
c-0.451-0.713-0.677-1.511-0.677-2.395c0-0.971,0.276-1.879,0.827-2.723c0.551-0.844,1.356-1.485,2.415-1.923
s2.235-0.656,3.53-0.656c1.426,0,2.684,0.23,3.774,0.689c1.089,0.459,1.926,1.135,2.512,2.028c0.586,0.892,0.901,1.903,0.945,3.031
l-2.441,0.184c-0.131-1.216-0.575-2.135-1.331-2.756c-0.757-0.621-1.875-0.932-3.354-0.932c-1.54,0-2.661,0.282-3.365,0.846
c-0.704,0.564-1.057,1.245-1.057,2.041c0,0.691,0.249,1.26,0.748,1.706c0.49,0.446,1.77,0.903,3.839,1.371
c2.069,0.468,3.488,0.877,4.258,1.227c1.12,0.516,1.947,1.17,2.48,1.962s0.801,1.704,0.801,2.736c0,1.024-0.293,1.988-0.879,2.894
c-0.586,0.906-1.428,1.61-2.525,2.113c-1.098,0.503-2.334,0.755-3.708,0.755c-1.741,0-3.199-0.254-4.376-0.761
s-2.1-1.271-2.769-2.29C136.845,237.164,136.492,236.012,136.457,234.726z"
/>
</g>
<g>
<path
fill=
"#F1F2F2"
d=
"M227.472,154.355v-19.895h14.385v2.348h-11.752v6.093h11.006v2.334h-11.006v6.772h12.213v2.348H227.472z"
/>
</g>
<g>
<path
fill=
"#F1F2F2"
d=
"M136.071,67.065V47.17h2.701l10.45,15.62V47.17h2.524v19.895h-2.701l-10.45-15.634v15.634H136.071z"
/>
</g>
<polygon
fill=
"#F1F2F2"
points=
"139.026,268.342 144,258.395 148.974,268.342 "
/>
<polygon
fill=
"#F1F2F2"
points=
"268.342,148.974 258.395,144 268.342,139.026 "
/>
<polygon
fill=
"#F1F2F2"
points=
"148.974,19.658 144,29.605 139.026,19.658 "
/>
<polygon
fill=
"#F1F2F2"
points=
"19.658,139.026 29.605,144 19.658,148.974 "
/>
</svg>
src/ui/qmlcommon/qmldir
View file @
57c2506d
...
...
@@ -10,4 +10,7 @@ QGCPitchWidget 1.0 QGCPitchWidget.qml
QGCSpeedWidget 1.0 QGCSpeedWidget.qml
QGCSlider 1.0 QGCSlider.qml
QGCWaypointEditor 1.0 QGCWaypointEditor.qml
QGCMapToolButton 1.0 QGCMapToolButton.qml
\ No newline at end of file
QGCMapToolButton 1.0 QGCMapToolButton.qml
QGCAttitudeInstrument 1.0 QGCAttitudeInstrument.qml
QGCCompassInstrument 1.0 QGCCompassInstrument.qml
QGCArtificialHorizon 1.0 QGCArtificialHorizon.qml
src/ui/qmlcommon/rollDial.svg
deleted
100644 → 0
View file @
207270a5
<?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"
xmlns=
"http://www.w3.org/2000/svg"
xmlns:xlink=
"http://www.w3.org/1999/xlink"
x=
"0px"
y=
"0px"
viewBox=
"0 0 288 159.854"
enable-background=
"new 0 0 288 159.854"
xml:space=
"preserve"
>
<g
id=
"Layer_1"
>
<text
transform=
"matrix(1 0 0 1 136.0895 12.201)"
font-family=
"'Arial-BoldMT'"
font-size=
"14.2222"
>
00
</text>
<text
transform=
"matrix(0.9659 -0.2588 0.2588 0.9659 98.1424 19.2784)"
font-family=
"'Arial-BoldMT'"
font-size=
"14.2218"
>
15
</text>
<text
transform=
"matrix(0.866 -0.5 0.5 0.866 63.3229 35.9389)"
font-family=
"'Arial-BoldMT'"
font-size=
"14.2219"
>
30
</text>
<text
transform=
"matrix(0.7071 -0.7071 0.7071 0.7071 33.9995 61.0398)"
font-family=
"'Arial-BoldMT'"
font-size=
"14.2221"
>
45
</text>
<text
transform=
"matrix(0.5 -0.866 0.866 0.5 12.1723 92.8793)"
font-family=
"'Arial-BoldMT'"
font-size=
"14.2219"
>
60
</text>
<text
transform=
"matrix(0.9659 0.2588 -0.2588 0.9659 174.5744 15.1842)"
font-family=
"'Arial-BoldMT'"
font-size=
"14.2218"
>
15
</text>
<text
transform=
"matrix(0.866 0.5 -0.5 0.866 210.9767 28.0287)"
font-family=
"'Arial-BoldMT'"
font-size=
"14.2219"
>
30
</text>
<text
transform=
"matrix(0.7071 0.7071 -0.7071 0.7071 242.8152 49.8557)"
font-family=
"'Arial-BoldMT'"
font-size=
"14.2221"
>
45
</text>
<text
transform=
"matrix(0.5 0.866 -0.866 0.5 267.9185 79.1788)"
font-family=
"'Arial-BoldMT'"
font-size=
"14.2219"
>
60
</text>
</g>
<g
id=
"Layer_3"
>
<rect
id=
"rect5769"
y=
"153.455"
fill=
"none"
width=
"288"
height=
"6.4"
/>
</g>
<g
id=
"Layer_2"
>
<line
fill=
"none"
stroke=
"#000000"
stroke-width=
"4"
x1=
"144.1"
y1=
"23.855"
x2=
"144.1"
y2=
"16.355"
/>
<line
fill=
"none"
stroke=
"#000000"
stroke-width=
"4"
x1=
"108.9"
y1=
"28.455"
x2=
"107"
y2=
"21.255"
/>
<line
fill=
"none"
stroke=
"#000000"
stroke-width=
"4"
x1=
"76.1"
y1=
"41.955"
x2=
"72.4"
y2=
"35.455"
/>
<line
fill=
"none"
stroke=
"#000000"
stroke-width=
"4"
x1=
"47.9"
y1=
"63.555"
x2=
"42.7"
y2=
"58.355"
/>
<line
fill=
"none"
stroke=
"#000000"
stroke-width=
"4"
x1=
"26.3"
y1=
"91.755"
x2=
"19.8"
y2=
"88.055"
/>
<line
fill=
"none"
stroke=
"#000000"
stroke-width=
"4"
x1=
"179.3"
y1=
"28.455"
x2=
"181.2"
y2=
"21.255"
/>
<line
fill=
"none"
stroke=
"#000000"
stroke-width=
"4"
x1=
"212.1"
y1=
"42.155"
x2=
"215.8"
y2=
"35.655"
/>
<line
fill=
"none"
stroke=
"#000000"
stroke-width=
"4"
x1=
"240.3"
y1=
"63.755"
x2=
"245.5"
y2=
"58.555"
/>
<line
fill=
"none"
stroke=
"#000000"
stroke-width=
"4"
x1=
"261.9"
y1=
"91.955"
x2=
"268.4"
y2=
"88.255"
/>
<path
fill=
"none"
stroke=
"#000000"
stroke-width=
"2"
stroke-linecap=
"round"
stroke-linejoin=
"bevel"
d=
"M262.4,92.955
c-11.6-20.6-28.6-37.9-48.9-50s-44.1-19.1-69.5-19.1s-49.2,6.9-69.4,19s-37.2,29.3-48.9,50"
/>
</g>
</svg>
src/ui/qmlcommon/rollPointer.svg
deleted
100644 → 0
View file @
207270a5
<?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"
xmlns=
"http://www.w3.org/2000/svg"
xmlns:xlink=
"http://www.w3.org/1999/xlink"
x=
"0px"
y=
"0px"
viewBox=
"0 288 288 129.6"
enable-background=
"new 0 288 288 129.6"
xml:space=
"preserve"
>
<g
id=
"svg5772"
inkscape:version=
"0.48.2 r9819"
sodipodi:docname=
"rollPointer.svg"
xmlns:rdf=
"http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg=
"http://www.w3.org/2000/svg"
xmlns:sodipodi=
"http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:cc=
"http://creativecommons.org/ns#"
xmlns:dc=
"http://purl.org/dc/elements/1.1/"
xmlns:inkscape=
"http://www.inkscape.org/namespaces/inkscape"
>
<sodipodi:namedview
id=
"base"
inkscape:current-layer=
"layer5"
inkscape:showpageshadow=
"false"
inkscape:document-units=
"px"
inkscape:window-width=
"1920"
inkscape:window-y=
"22"
inkscape:window-maximized=
"1"
inkscape:guide-bbox=
"true"
inkscape:window-height=
"1152"
inkscape:pageopacity=
"0.0"
inkscape:pageshadow=
"2"
inkscape:window-x=
"0"
pagecolor=
"#ffffff"
inkscape:zoom=
"3"
inkscape:cx=
"74.271777"
inkscape:cy=
"66.806039"
bordercolor=
"#666666"
showgrid=
"true"
showguides=
"true"
borderopacity=
"1.0"
>
<inkscape:grid
type=
"xygrid"
id=
"grid5780"
snapvisiblegridlinesonly=
"true"
empspacing=
"5"
enabled=
"true"
visible=
"true"
>
</inkscape:grid>
</sodipodi:namedview>
<rect
id=
"rect5782"
y=
"405.5"
fill=
"none"
width=
"288"
height=
"12.1"
/>
</g>
<g
id=
"Layer_2"
>
<path
id=
"path6692_1_"
inkscape:connector-curvature=
"0"
d=
"M135,313.2c9-25.2,9-25.2,9-25.2l9,25.2l0,0H135z"
/>
</g>
</svg>
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment