Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Valentin Platzgummer
qgroundcontrol
Commits
2aa69014
Unverified
Commit
2aa69014
authored
Jul 23, 2019
by
Don Gagne
Committed by
GitHub
Jul 23, 2019
Browse files
Merge pull request #7574 from Aeronavics/old_widget_layout_as_alternative
Old instrument panel layout as alternative
parents
a0df347e
10461de1
Changes
7
Hide whitespace changes
Inline
Side-by-side
src/FlightDisplay/FlightDisplayViewWidgets.qml
View file @
2aa69014
...
...
@@ -38,6 +38,7 @@ Item {
property
bool
_airspaceEnabled
:
QGroundControl
.
airmapSupported
?
QGroundControl
.
settingsManager
.
airMapSettings
.
enableAirMap
.
rawValue
:
false
readonly
property
real
_margins
:
ScreenTools
.
defaultFontPixelHeight
*
0.5
readonly
property
bool
_useAlternateInstrumentPanel
:
QGroundControl
.
settingsManager
.
flyViewSettings
.
alternateInstrumentPanel
.
value
QGCMapPalette
{
id
:
mapPal
;
lightColors
:
useLightColors
}
...
...
@@ -74,12 +75,21 @@ Item {
break
;
}
}
else
{
instrumentsLoader
.
source
=
"
qrc:/qml/QGCInstrumentWidgetAlternate.qml
"
if
(
_useAlternateInstrumentPanel
){
instrumentsLoader
.
source
=
"
qrc:/qml/QGCInstrumentWidgetAlternate.qml
"
}
else
{
instrumentsLoader
.
source
=
"
qrc:/qml/QGCInstrumentWidget.qml
"
}
}
}
else
{
instrumentsLoader
.
source
=
""
}
}
Connections
{
target
:
QGroundControl
.
settingsManager
.
flyViewSettings
.
alternateInstrumentPanel
onValueChanged
:
_setInstrumentWidget
()
}
Connections
{
target
:
QGroundControl
.
settingsManager
.
appSettings
.
virtualJoystick
...
...
src/FlightMap/Widgets/QGCInstrumentWidget.qml
View file @
2aa69014
...
...
@@ -7,6 +7,7 @@
*
****************************************************************************/
import
QtQuick
2.3
import
QGroundControl
1.0
...
...
@@ -17,157 +18,74 @@ import QGroundControl.FlightMap 1.0
import
QGroundControl
.
Palette
1.0
Rectangle
{
id
:
instrumentPanel
height
:
instrumentColumn
.
height
+
(
_topBottomMargin
*
2
)
id
:
root
width
:
getPreferredInstrumentWidth
()
radius
:
_showLargeCompass
?
width
/
2
:
ScreenTools
.
defaultFontPixelWidth
/
2
color
:
_backgroundColor
border.width
:
_showLargeCompass
?
1
:
0
height
:
_outerRadius
*
2
radius
:
_outerRadius
color
:
qgcPal
.
window
border.width
:
1
border.color
:
_isSatellite
?
qgcPal
.
mapWidgetBorderLight
:
qgcPal
.
mapWidgetBorderDark
property
real
_maxHeight
:
maxHeight
property
real
_defaultSize
:
ScreenTools
.
defaultFontPixelHeight
*
(
9
)
property
color
_backgroundColor
:
qgcPal
.
window
property
real
_spacing
:
ScreenTools
.
defaultFontPixelHeight
*
0.33
property
real
_topBottomMargin
:
(
width
*
0.05
)
/
2
property
real
_availableValueHeight
:
_maxHeight
-
(
outerCompass
.
height
+
_spacer1
.
height
+
_spacer2
.
height
+
(
_spacing
*
4
))
-
(
_showLargeCompass
?
compass
.
height
:
0
)
property
bool
_showLargeCompass
:
QGroundControl
.
settingsManager
.
appSettings
.
showLargeCompass
.
value
readonly
property
real
_outerRingRatio
:
0.95
readonly
property
real
_innerRingRatio
:
0.80
QGCPalette
{
id
:
qgcPal
}
MouseArea
{
property
real
_innerRadius
:
(
width
-
(
_topBottomMargin
*
3
))
/
4
property
real
_outerRadius
:
_innerRadius
+
_topBottomMargin
property
real
_defaultSize
:
ScreenTools
.
defaultFontPixelHeight
*
(
9
)
property
real
_sizeRatio
:
ScreenTools
.
isTinyScreen
?
(
width
/
_defaultSize
)
*
0.5
:
width
/
_defaultSize
property
real
_bigFontSize
:
ScreenTools
.
defaultFontPointSize
*
2.5
*
_sizeRatio
property
real
_normalFontSize
:
ScreenTools
.
defaultFontPointSize
*
1.5
*
_sizeRatio
property
real
_labelFontSize
:
ScreenTools
.
defaultFontPointSize
*
0.75
*
_sizeRatio
property
real
_spacing
:
ScreenTools
.
defaultFontPixelHeight
*
0.33
property
real
_topBottomMargin
:
(
width
*
0.05
)
/
2
property
real
_availableValueHeight
:
maxHeight
-
(
root
.
height
+
_valuesItem
.
anchors
.
topMargin
)
// Prevent all clicks from going through to lower layers
DeadMouseArea
{
anchors.fill
:
parent
onClicked
:
_valuesWidget
.
showPicker
()
}
Column
{
id
:
instrumentColumn
anchors.topMargin
:
_topBottomMargin
anchors.top
:
parent
.
top
anchors.left
:
parent
.
left
anchors.right
:
parent
.
right
spacing
:
_spacing
Item
{
width
:
parent
.
width
height
:
outerCompass
.
height
CompassRing
{
id
:
outerCompass
size
:
parent
.
width
*
_outerRingRatio
vehicle
:
activeVehicle
anchors.horizontalCenter
:
parent
.
horizontalCenter
visible
:
!
_showLargeCompass
}
QGCAttitudeWidget
{
id
:
attitudeWidget
size
:
parent
.
width
*
(
_showLargeCompass
?
_outerRingRatio
:
_innerRingRatio
)
vehicle
:
activeVehicle
anchors.centerIn
:
outerCompass
showHeading
:
!
_showLargeCompass
}
Image
{
id
:
gearThingy
anchors.bottom
:
outerCompass
.
bottom
anchors.right
:
outerCompass
.
right
source
:
qgcPal
.
globalTheme
==
QGCPalette
.
Light
?
"
/res/gear-black.svg
"
:
"
/res/gear-white.svg
"
mipmap
:
true
opacity
:
0.5
width
:
outerCompass
.
width
*
0.15
sourceSize.width
:
width
fillMode
:
Image
.
PreserveAspectFit
MouseArea
{
anchors.fill
:
parent
hoverEnabled
:
true
onEntered
:
gearThingy
.
opacity
=
0.85
onExited
:
gearThingy
.
opacity
=
0.5
onClicked
:
_valuesWidget
.
showPicker
()
}
}
Image
{
id
:
healthWarning
anchors.bottom
:
outerCompass
.
bottom
anchors.left
:
outerCompass
.
left
source
:
"
/qmlimages/Yield.svg
"
mipmap
:
true
visible
:
activeVehicle
?
!
_warningsViewed
&&
activeVehicle
.
unhealthySensors
.
length
>
0
&&
_valuesWidget
.
currentPage
()
!=
2
:
false
opacity
:
0.8
width
:
outerCompass
.
width
*
0.15
sourceSize.width
:
width
fillMode
:
Image
.
PreserveAspectFit
property
bool
_warningsViewed
:
false
MouseArea
{
anchors.fill
:
parent
hoverEnabled
:
true
onEntered
:
healthWarning
.
opacity
=
1
onExited
:
healthWarning
.
opacity
=
0.8
onClicked
:
{
_valuesWidget
.
showPage
(
2
)
healthWarning
.
_warningsViewed
=
true
}
}
Connections
{
target
:
activeVehicle
onUnhealthySensorsChanged
:
healthWarning
.
_warningsViewed
=
false
}
}
}
Rectangle
{
id
:
_spacer1
anchors.horizontalCenter
:
parent
.
horizontalCenter
height
:
1
width
:
parent
.
width
*
0.9
color
:
qgcPal
.
text
}
QGCPalette
{
id
:
qgcPal
}
Item
{
width
:
parent
.
width
height
:
_valuesWidget
.
height
QGCAttitudeWidget
{
id
:
attitude
anchors.leftMargin
:
_topBottomMargin
anchors.left
:
parent
.
left
size
:
_innerRadius
*
2
vehicle
:
activeVehicle
anchors.verticalCenter
:
parent
.
verticalCenter
}
Rectangle
{
anchors.fill
:
_valuesWidget
color
:
_backgroundColor
radius
:
_spacing
visible
:
!
_showLargeCompass
}
QGCCompassWidget
{
id
:
compass
anchors.leftMargin
:
_spacing
anchors.left
:
attitude
.
right
size
:
_innerRadius
*
2
vehicle
:
activeVehicle
anchors.verticalCenter
:
parent
.
verticalCenter
}
InstrumentSwipeView
{
id
:
_valuesWidget
anchors.margins
:
1
anchors.left
:
parent
.
left
anchors.right
:
parent
.
right
textColor
:
qgcPal
.
text
backgroundColor
:
_backgroundColor
maxHeight
:
_availableValueHeight
}
Item
{
id
:
_valuesItem
anchors.topMargin
:
ScreenTools
.
defaultFontPixelHeight
/
4
anchors.top
:
parent
.
bottom
width
:
parent
.
width
height
:
_valuesWidget
.
height
visible
:
widgetRoot
.
showValues
// Prevent all clicks from going through to lower layers
DeadMouseArea
{
anchors.fill
:
parent
}
Rectangle
{
id
:
_spacer2
anchors.horizontalCenter
:
parent
.
horizontalCenter
height
:
1
width
:
parent
.
width
*
0.9
color
:
qgcPal
.
text
visible
:
_showLargeCompass
anchors.fill
:
_valuesWidget
color
:
qgcPal
.
window
}
QGCCompassWidget
{
id
:
compass
anchors.
horizontalCenter
:
parent
.
horizontalCenter
size
:
parent
.
width
*
0.95
vehicle
:
activeVehicle
visible
:
_showLargeCompass
PageView
{
id
:
_valuesWidget
anchors.
margins
:
1
anchors.left
:
parent
.
left
anchors.right
:
parent
.
right
maxHeight
:
_availableValueHeight
}
}
}
src/FlightMap/Widgets/QGCInstrumentWidgetAlternate.qml
View file @
2aa69014
...
...
@@ -19,15 +19,15 @@ import QGroundControl.Palette 1.0
Rectangle
{
id
:
root
width
:
getPreferredInstrumentWidth
()
height
:
_outerRadius
*
2
width
:
getPreferredInstrumentWidth
()
*
0.7
height
:
_outerRadius
*
4
+
_valuesWidget
.
height
radius
:
_outerRadius
color
:
qgcPal
.
window
border.width
:
1
border.color
:
_isSatellite
?
qgcPal
.
mapWidgetBorderLight
:
qgcPal
.
mapWidgetBorderDark
property
real
_innerRadius
:
(
width
-
(
_topBottomMargin
*
3
))
/
4
property
real
_outerRadius
:
_innerRadius
+
_topBottomMargin
property
real
_innerRadius
:
(
width
-
(
_topBottomMargin
*
2
))
/
2
property
real
_outerRadius
:
_innerRadius
+
_topBottomMargin
*
2
property
real
_defaultSize
:
ScreenTools
.
defaultFontPixelHeight
*
(
9
)
property
real
_sizeRatio
:
ScreenTools
.
isTinyScreen
?
(
width
/
_defaultSize
)
*
0.5
:
width
/
_defaultSize
property
real
_bigFontSize
:
ScreenTools
.
defaultFontPointSize
*
2.5
*
_sizeRatio
...
...
@@ -35,7 +35,7 @@ Rectangle {
property
real
_labelFontSize
:
ScreenTools
.
defaultFontPointSize
*
0.75
*
_sizeRatio
property
real
_spacing
:
ScreenTools
.
defaultFontPixelHeight
*
0.33
property
real
_topBottomMargin
:
(
width
*
0.05
)
/
2
property
real
_availableValueHeight
:
maxHeight
-
(
root
.
height
+
_valuesItem
.
anchors
.
topMargin
)
property
real
_availableValueHeight
:
maxHeight
-
(
attitude
.
height
+
compass
.
height
)
// Prevent all clicks from going through to lower layers
DeadMouseArea
{
...
...
@@ -45,27 +45,21 @@ Rectangle {
QGCPalette
{
id
:
qgcPal
}
QGCAttitudeWidget
{
id
:
attitude
anchors.leftMargin
:
_topBottomMargin
anchors.left
:
parent
.
left
size
:
_innerRadius
*
2
vehicle
:
activeVehicle
anchors.verticalCenter
:
parent
.
verticalCenter
}
QGCCompassWidget
{
id
:
compass
anchors.leftMargin
:
_spacing
anchors.left
:
attitude
.
right
size
:
_innerRadius
*
2
vehicle
:
activeVehicle
anchors.verticalCenter
:
parent
.
verticalCenter
id
:
attitude
anchors.topMargin
:
_topBottomMargin
anchors.bottomMargin
:
_topBottomMargin
anchors.top
:
parent
.
top
size
:
_innerRadius
*
2
vehicle
:
activeVehicle
anchors.horizontalCenter
:
parent
.
horizontalCenter
}
Item
{
id
:
_valuesItem
anchors.topMargin
:
ScreenTools
.
defaultFontPixelHeight
/
4
anchors.top
:
parent
.
bottom
anchors.bottomMargin
:
ScreenTools
.
defaultFontPixelHeight
/
4
anchors.top
:
attitude
.
bottom
anchors.bottom
:
compass
.
top
width
:
parent
.
width
height
:
_valuesWidget
.
height
visible
:
widgetRoot
.
showValues
...
...
@@ -88,4 +82,14 @@ Rectangle {
maxHeight
:
_availableValueHeight
}
}
QGCCompassWidget
{
id
:
compass
anchors.bottom
:
parent
.
bottom
anchors.bottomMargin
:
_topBottomMargin
anchors.topMargin
:
_topBottomMargin
size
:
_innerRadius
*
2
vehicle
:
activeVehicle
anchors.horizontalCenter
:
parent
.
horizontalCenter
}
}
src/Settings/FlyView.SettingsGroup.json
View file @
2aa69014
...
...
@@ -18,5 +18,11 @@
"shortDescription"
:
"Show/Hide Log Replay status bar"
,
"type"
:
"bool"
,
"defaultValue"
:
false
},
{
"name"
:
"alternateInstrumentPanel"
,
"shortDescription"
:
"Use Vertical Instrument Panel instead of the default one"
,
"type"
:
"bool"
,
"defaultValue"
:
false
}
]
src/Settings/FlyViewSettings.cc
View file @
2aa69014
...
...
@@ -20,3 +20,4 @@ DECLARE_SETTINGGROUP(FlyView, "FlyView")
DECLARE_SETTINGSFACT
(
FlyViewSettings
,
guidedMinimumAltitude
)
DECLARE_SETTINGSFACT
(
FlyViewSettings
,
guidedMaximumAltitude
)
DECLARE_SETTINGSFACT
(
FlyViewSettings
,
showLogReplayStatusBar
)
DECLARE_SETTINGSFACT
(
FlyViewSettings
,
alternateInstrumentPanel
)
src/Settings/FlyViewSettings.h
View file @
2aa69014
...
...
@@ -22,4 +22,5 @@ public:
DEFINE_SETTINGFACT
(
guidedMinimumAltitude
)
DEFINE_SETTINGFACT
(
guidedMaximumAltitude
)
DEFINE_SETTINGFACT
(
showLogReplayStatusBar
)
DEFINE_SETTINGFACT
(
alternateInstrumentPanel
)
};
src/ui/preferences/GeneralSettings.qml
View file @
2aa69014
...
...
@@ -461,6 +461,13 @@ Rectangle {
property
Fact
_virtualJoystickCentralized
:
QGroundControl
.
settingsManager
.
appSettings
.
virtualJoystickCentralized
}
FactCheckBox
{
text
:
qsTr
(
"
Use Vertical Instrument Panel
"
)
visible
:
_alternateInstrumentPanel
.
visible
fact
:
_alternateInstrumentPanel
property
Fact
_alternateInstrumentPanel
:
QGroundControl
.
settingsManager
.
flyViewSettings
.
alternateInstrumentPanel
}
GridLayout
{
columns
:
2
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new 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