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
3a406dea
Unverified
Commit
3a406dea
authored
May 29, 2020
by
Don Gagne
Committed by
GitHub
May 29, 2020
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #8793 from DonLakeFlyer/CherryPickStableVirtualJoystick
Cherry pick virtual joystick fix from Stable
parents
ef9abaa0
7c2028ae
Changes
8
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
79 additions
and
63 deletions
+79
-63
ChangeLog.md
ChangeLog.md
+2
-0
FlyViewWidgetLayer.qml
src/FlightDisplay/FlyViewWidgetLayer.qml
+4
-6
VirtualJoystick.qml
src/FlightDisplay/VirtualJoystick.qml
+7
-4
JoystickThumbPad.qml
src/QmlControls/JoystickThumbPad.qml
+30
-30
App.SettingsGroup.json
src/Settings/App.SettingsGroup.json
+3
-3
AppSettings.cc
src/Settings/AppSettings.cc
+10
-1
AppSettings.h
src/Settings/AppSettings.h
+1
-1
GeneralSettings.qml
src/ui/preferences/GeneralSettings.qml
+22
-18
No files found.
ChangeLog.md
View file @
3a406dea
...
@@ -16,6 +16,8 @@ Note: This file only contains high level features or important fixes.
...
@@ -16,6 +16,8 @@ Note: This file only contains high level features or important fixes.
## 4.0.7 - Not yet released
## 4.0.7 - Not yet released
*
Fix video page sizing
*
Fix video page sizing
*
Virtual Joystick: Fix right stick centering. Fix/add support for rover/sub reverse throttle support.
*
Fix display of multiple ADSB vehicles
### 4.0.6 - Stable
### 4.0.6 - Stable
...
...
src/FlightDisplay/FlyViewWidgetLayer.qml
View file @
3a406dea
...
@@ -91,18 +91,16 @@ Item {
...
@@ -91,18 +91,16 @@ Item {
z
:
QGroundControl
.
zOrderTopMost
+
1
z
:
QGroundControl
.
zOrderTopMost
+
1
width
:
parent
.
width
-
(
_pipOverlay
.
width
/
2
)
width
:
parent
.
width
-
(
_pipOverlay
.
width
/
2
)
height
:
Math
.
min
(
parent
.
height
*
0.25
,
ScreenTools
.
defaultFontPixelWidth
*
16
)
height
:
Math
.
min
(
parent
.
height
*
0.25
,
ScreenTools
.
defaultFontPixelWidth
*
16
)
visible
:
(
_virtualJoystick
?
_virtualJoystick
.
value
:
false
)
&&
!
(
_activeVehicle
?
_
activeVehicle
.
highLatencyLink
:
false
)
visible
:
_virtualJoystickEnabled
&&
!
QGroundControl
.
videoManager
.
fullScreen
&&
!
(
activeVehicle
?
activeVehicle
.
highLatencyLink
:
false
)
anchors.bottom
:
parent
.
bottom
anchors.bottom
:
parent
.
bottom
anchors.bottomMargin
:
parentToolInsets
.
leftEdgeBottomInset
+
ScreenTools
.
defaultFontPixelHeight
*
2
anchors.bottomMargin
:
parentToolInsets
.
leftEdgeBottomInset
+
ScreenTools
.
defaultFontPixelHeight
*
2
anchors.horizontalCenter
:
parent
.
horizontalCenter
anchors.horizontalCenter
:
parent
.
horizontalCenter
source
:
"
qrc:/qml/VirtualJoystick.qml
"
source
:
"
qrc:/qml/VirtualJoystick.qml
"
active
:
(
_virtualJoystick
?
_virtualJoystick
.
value
:
false
)
&&
!
(
_activeVehicle
?
_
activeVehicle
.
highLatencyLink
:
false
)
active
:
_virtualJoystickEnabled
&&
!
(
activeVehicle
?
activeVehicle
.
highLatencyLink
:
false
)
property
bool
centralizeThrottle
:
_virtualJoystickCentralized
?
_virtualJoystickCentralized
.
value
:
false
property
bool
autoCenterThrottle
:
QGroundControl
.
settingsManager
.
appSettings
.
virtualJoystickAutoCenterThrottle
.
rawValue
property
var
parentToolInsets
:
_totalToolInsets
property
Fact
_virtualJoystick
:
QGroundControl
.
settingsManager
.
appSettings
.
virtualJoystick
property
bool
_virtualJoystickEnabled
:
QGroundControl
.
settingsManager
.
appSettings
.
virtualJoystick
.
rawValue
property
Fact
_virtualJoystickCentralized
:
QGroundControl
.
settingsManager
.
appSettings
.
virtualJoystickCentralized
}
}
FlyViewToolStrip
{
FlyViewToolStrip
{
...
...
src/FlightDisplay/VirtualJoystick.qml
View file @
3a406dea
...
@@ -17,7 +17,10 @@ import QGroundControl.Palette 1.0
...
@@ -17,7 +17,10 @@ import QGroundControl.Palette 1.0
import
QGroundControl
.
Vehicle
1.0
import
QGroundControl
.
Vehicle
1.0
Item
{
Item
{
//property bool centralizeThrottle - Must be passed in from loader
// The following properties must be passed in from the Loader
// property bool autoCenterThrottle - true: throttle will snap back to center when released
property
var
_activeVehicle
:
QGroundControl
.
multiVehicleManager
.
activeVehicle
Timer
{
Timer
{
interval
:
40
// 25Hz, same as real joystick rate
interval
:
40
// 25Hz, same as real joystick rate
...
@@ -25,7 +28,7 @@ Item {
...
@@ -25,7 +28,7 @@ Item {
repeat
:
true
repeat
:
true
onTriggered
:
{
onTriggered
:
{
if
(
activeVehicle
)
{
if
(
activeVehicle
)
{
activeVehicle
.
virtualTabletJoystickValue
(
rightStick
.
xAxis
,
rightStick
.
yAxis
,
leftStick
.
xAxis
,
leftStick
.
yAxis
)
activeVehicle
.
virtualTabletJoystickValue
(
rightStick
.
xAxis
,
-
rightStick
.
yAxis
,
leftStick
.
xAxis
,
leftStick
.
yAxis
)
}
}
}
}
}
}
...
@@ -38,8 +41,8 @@ Item {
...
@@ -38,8 +41,8 @@ Item {
anchors.bottom
:
parent
.
bottom
anchors.bottom
:
parent
.
bottom
width
:
parent
.
height
width
:
parent
.
height
height
:
parent
.
height
height
:
parent
.
height
yAxis
Throttle
:
true
yAxis
PositiveRangeOnly
:
_activeVehicle
&&
!
_activeVehicle
.
rover
&&
!
_activeVehicle
.
sub
yAxis
ThrottleCentered
:
centralize
Throttle
yAxis
ReCenter
:
autoCenter
Throttle
}
}
JoystickThumbPad
{
JoystickThumbPad
{
...
...
src/QmlControls/JoystickThumbPad.qml
View file @
3a406dea
...
@@ -8,25 +8,28 @@ import QGroundControl.ScreenTools 1.0
...
@@ -8,25 +8,28 @@ import QGroundControl.ScreenTools 1.0
Item
{
Item
{
id
:
_joyRoot
id
:
_joyRoot
property
alias
lightColors
:
mapPal
.
lightColors
///< true: use light colors from QGCMapPalette for drawing
property
real
xAxis
:
0
///< Value range [-1,1], negative values left stick, positive values right stick
property
real
xAxis
:
0
///< Value range [-1,1], negative values left stick, positive values right stick
property
real
yAxis
:
0
///< Value range [-1,1], negative values up stick, positive values down
stick
property
real
yAxis
:
0
///< Value range [-1,1], negative values down stick, positive values up
stick
property
bool
yAxis
Throttle
:
false
///< true: yAxis used for throttle, range [1,0], positive value are stick up
property
bool
yAxis
PositiveRangeOnly
:
false
///< true: value range [0,1], false: value range [-1,1]
property
bool
yAxis
ThrottleCentered
:
false
///< false: center yAxis in throttle for reverser and forward
property
bool
yAxis
ReCenter
:
true
///< true: snaps back to center on release, false: stays at current position on release
property
real
xPositionDelta
:
0
///< Amount to move the control on x axis
property
real
xPositionDelta
:
0
///< Amount to move the control on x axis
property
real
yPositionDelta
:
0
///< Amount to move the control on y axis
property
real
yPositionDelta
:
0
///< Amount to move the control on y axis
property
bool
springYToCenter
:
true
///< true: Spring Y to center on release
property
real
_centerXY
:
width
/
2
property
real
_centerXY
:
width
/
2
property
bool
_processTouchPoints
:
false
property
bool
_processTouchPoints
:
false
property
real
stickPositionX
:
_centerXY
property
real
stickPositionY
:
yAxisThrottleCentered
?
_centerXY
:
height
property
color
_fgColor
:
QGroundControl
.
globalPalette
.
text
property
color
_fgColor
:
QGroundControl
.
globalPalette
.
text
property
color
_bgColor
:
QGroundControl
.
globalPalette
.
window
property
color
_bgColor
:
QGroundControl
.
globalPalette
.
window
property
real
stickPositionX
:
_centerXY
property
real
stickPositionY
:
yAxisReCenter
?
_centerXY
:
height
QGCMapPalette
{
id
:
mapPal
}
onWidthChanged
:
calculateXAxis
()
onWidthChanged
:
calculateXAxis
()
onStickPositionXChanged
:
calculateXAxis
()
onStickPositionXChanged
:
calculateXAxis
()
onHeightChanged
:
calculateYAxis
()
onHeightChanged
:
calculateYAxis
()
onStickPositionYChanged
:
calculateYAxis
()
onStickPositionYChanged
:
calculateYAxis
()
onYAxisPositiveRangeOnlyChanged
:
calculateYAxis
()
function
calculateXAxis
()
{
function
calculateXAxis
()
{
if
(
!
_joyRoot
.
visible
)
{
if
(
!
_joyRoot
.
visible
)
{
...
@@ -42,13 +45,13 @@ Item {
...
@@ -42,13 +45,13 @@ Item {
if
(
!
_joyRoot
.
visible
)
{
if
(
!
_joyRoot
.
visible
)
{
return
;
return
;
}
}
var
yAxisTemp
=
stickPositionY
/
height
var
fullRange
=
yAxisPositiveRangeOnly
?
1
:
2
yAxisTemp
*=
2.0
var
pctUp
=
1.0
-
(
stickPositionY
/
height
)
yAxisTemp
-=
1.0
var
rangeUp
=
pctUp
*
fullRange
if
(
yAxisThrottle
)
{
if
(
!
yAxisPositiveRangeOnly
)
{
yAxisTemp
=
((
yAxisTemp
*
-
1.0
)
/
2.0
)
+
0.5
rangeUp
-=
1
}
}
yAxis
=
yAxisTem
p
yAxis
=
rangeU
p
}
}
function
reCenter
()
{
function
reCenter
()
{
...
@@ -58,9 +61,9 @@ Item {
...
@@ -58,9 +61,9 @@ Item {
xPositionDelta
=
0
xPositionDelta
=
0
yPositionDelta
=
0
yPositionDelta
=
0
//
Center sticks
//
Re-Center sticks as needed
stickPositionX
=
_centerXY
stickPositionX
=
_centerXY
if
(
yAxis
ThrottleCentered
)
{
if
(
yAxis
ReCenter
)
{
stickPositionY
=
_centerXY
stickPositionY
=
_centerXY
}
}
}
}
...
@@ -68,7 +71,7 @@ Item {
...
@@ -68,7 +71,7 @@ Item {
function
thumbDown
(
touchPoints
)
{
function
thumbDown
(
touchPoints
)
{
// Position the control around the initial thumb position
// Position the control around the initial thumb position
xPositionDelta
=
touchPoints
[
0
].
x
-
_centerXY
xPositionDelta
=
touchPoints
[
0
].
x
-
_centerXY
if
(
yAxis
Throttle
)
{
if
(
yAxis
PositiveRangeOnly
)
{
yPositionDelta
=
touchPoints
[
0
].
y
-
stickPositionY
yPositionDelta
=
touchPoints
[
0
].
y
-
stickPositionY
}
else
{
}
else
{
yPositionDelta
=
touchPoints
[
0
].
y
-
_centerXY
yPositionDelta
=
touchPoints
[
0
].
y
-
_centerXY
...
@@ -118,7 +121,7 @@ Item {
...
@@ -118,7 +121,7 @@ Item {
QGCColoredImage
{
QGCColoredImage
{
color
:
_fgColor
color
:
_fgColor
visible
:
yAxis
Throttle
visible
:
yAxis
PositiveRangeOnly
height
:
ScreenTools
.
defaultFontPixelHeight
height
:
ScreenTools
.
defaultFontPixelHeight
width
:
height
width
:
height
sourceSize.height
:
height
sourceSize.height
:
height
...
@@ -132,7 +135,7 @@ Item {
...
@@ -132,7 +135,7 @@ Item {
QGCColoredImage
{
QGCColoredImage
{
color
:
_fgColor
color
:
_fgColor
visible
:
yAxis
Throttle
visible
:
yAxis
PositiveRangeOnly
height
:
ScreenTools
.
defaultFontPixelHeight
height
:
ScreenTools
.
defaultFontPixelHeight
width
:
height
width
:
height
sourceSize.height
:
height
sourceSize.height
:
height
...
@@ -146,7 +149,7 @@ Item {
...
@@ -146,7 +149,7 @@ Item {
QGCColoredImage
{
QGCColoredImage
{
color
:
_fgColor
color
:
_fgColor
visible
:
yAxis
Throttle
visible
:
yAxis
PositiveRangeOnly
height
:
ScreenTools
.
defaultFontPixelHeight
height
:
ScreenTools
.
defaultFontPixelHeight
width
:
height
width
:
height
sourceSize.height
:
height
sourceSize.height
:
height
...
@@ -160,7 +163,7 @@ Item {
...
@@ -160,7 +163,7 @@ Item {
QGCColoredImage
{
QGCColoredImage
{
color
:
_fgColor
color
:
_fgColor
visible
:
yAxis
Throttle
visible
:
yAxis
PositiveRangeOnly
height
:
ScreenTools
.
defaultFontPixelHeight
height
:
ScreenTools
.
defaultFontPixelHeight
width
:
height
width
:
height
sourceSize.height
:
height
sourceSize.height
:
height
...
@@ -207,9 +210,6 @@ Item {
...
@@ -207,9 +210,6 @@ Item {
maximumTouchPoints
:
1
maximumTouchPoints
:
1
touchPoints
:
[
TouchPoint
{
id
:
touchPoint
}
]
touchPoints
:
[
TouchPoint
{
id
:
touchPoint
}
]
onPressed
:
_joyRoot
.
thumbDown
(
touchPoints
)
onPressed
:
_joyRoot
.
thumbDown
(
touchPoints
)
onReleased
:
{
onReleased
:
_joyRoot
.
reCenter
()
if
(
springYToCenter
)
_joyRoot
.
reCenter
()
}
}
}
}
}
src/Settings/App.SettingsGroup.json
View file @
3a406dea
...
@@ -115,9 +115,9 @@
...
@@ -115,9 +115,9 @@
"defaultValue"
:
false
"defaultValue"
:
false
},
},
{
{
"name"
:
"virtualJoystick
Centralized
"
,
"name"
:
"virtualJoystick
AutoCenterThrottle
"
,
"shortDescription"
:
"
Set virtual joystick to be centralize throttle (spring-loaded).
"
,
"shortDescription"
:
"
Auto-Center Throttle
"
,
"longDescription"
:
"If
this option is enabled the virtual joystick throttle stick will be centraliz
ed."
,
"longDescription"
:
"If
enabled the throttle stick will snap back to center when releas
ed."
,
"type"
:
"bool"
,
"type"
:
"bool"
,
"defaultValue"
:
false
"defaultValue"
:
false
},
},
...
...
src/Settings/AppSettings.cc
View file @
3a406dea
...
@@ -39,6 +39,15 @@ DECLARE_SETTINGGROUP(App, "")
...
@@ -39,6 +39,15 @@ DECLARE_SETTINGGROUP(App, "")
qmlRegisterUncreatableType
<
AppSettings
>
(
"QGroundControl.SettingsManager"
,
1
,
0
,
"AppSettings"
,
"Reference only"
);
qmlRegisterUncreatableType
<
AppSettings
>
(
"QGroundControl.SettingsManager"
,
1
,
0
,
"AppSettings"
,
"Reference only"
);
QGCPalette
::
setGlobalTheme
(
indoorPalette
()
->
rawValue
().
toBool
()
?
QGCPalette
::
Dark
:
QGCPalette
::
Light
);
QGCPalette
::
setGlobalTheme
(
indoorPalette
()
->
rawValue
().
toBool
()
?
QGCPalette
::
Dark
:
QGCPalette
::
Light
);
// virtualJoystickCentralized -> virtualJoystickAutoCenterThrottle
QSettings
settings
;
settings
.
beginGroup
(
_settingsGroup
);
QString
deprecatedVirtualJoystickCentralizedKey
(
"virtualJoystickCentralized"
);
if
(
settings
.
contains
(
deprecatedVirtualJoystickCentralizedKey
))
{
settings
.
setValue
(
virtualJoystickAutoCenterThrottleName
,
settings
.
value
(
deprecatedVirtualJoystickCentralizedKey
));
settings
.
remove
(
deprecatedVirtualJoystickCentralizedKey
);
}
// Instantiate savePath so we can check for override and setup default path if needed
// Instantiate savePath so we can check for override and setup default path if needed
SettingsFact
*
savePathFact
=
qobject_cast
<
SettingsFact
*>
(
savePath
());
SettingsFact
*
savePathFact
=
qobject_cast
<
SettingsFact
*>
(
savePath
());
...
@@ -85,7 +94,7 @@ DECLARE_SETTINGSFACT(AppSettings, telemetrySaveNotArmed)
...
@@ -85,7 +94,7 @@ DECLARE_SETTINGSFACT(AppSettings, telemetrySaveNotArmed)
DECLARE_SETTINGSFACT
(
AppSettings
,
audioMuted
)
DECLARE_SETTINGSFACT
(
AppSettings
,
audioMuted
)
DECLARE_SETTINGSFACT
(
AppSettings
,
checkInternet
)
DECLARE_SETTINGSFACT
(
AppSettings
,
checkInternet
)
DECLARE_SETTINGSFACT
(
AppSettings
,
virtualJoystick
)
DECLARE_SETTINGSFACT
(
AppSettings
,
virtualJoystick
)
DECLARE_SETTINGSFACT
(
AppSettings
,
virtualJoystick
Centralized
)
DECLARE_SETTINGSFACT
(
AppSettings
,
virtualJoystick
AutoCenterThrottle
)
DECLARE_SETTINGSFACT
(
AppSettings
,
appFontPointSize
)
DECLARE_SETTINGSFACT
(
AppSettings
,
appFontPointSize
)
DECLARE_SETTINGSFACT
(
AppSettings
,
showLargeCompass
)
DECLARE_SETTINGSFACT
(
AppSettings
,
showLargeCompass
)
DECLARE_SETTINGSFACT
(
AppSettings
,
savePath
)
DECLARE_SETTINGSFACT
(
AppSettings
,
savePath
)
...
...
src/Settings/AppSettings.h
View file @
3a406dea
...
@@ -39,7 +39,7 @@ public:
...
@@ -39,7 +39,7 @@ public:
DEFINE_SETTINGFACT
(
audioMuted
)
DEFINE_SETTINGFACT
(
audioMuted
)
DEFINE_SETTINGFACT
(
checkInternet
)
DEFINE_SETTINGFACT
(
checkInternet
)
DEFINE_SETTINGFACT
(
virtualJoystick
)
DEFINE_SETTINGFACT
(
virtualJoystick
)
DEFINE_SETTINGFACT
(
virtualJoystick
Centralized
)
DEFINE_SETTINGFACT
(
virtualJoystick
AutoCenterThrottle
)
DEFINE_SETTINGFACT
(
appFontPointSize
)
DEFINE_SETTINGFACT
(
appFontPointSize
)
DEFINE_SETTINGFACT
(
indoorPalette
)
DEFINE_SETTINGFACT
(
indoorPalette
)
DEFINE_SETTINGFACT
(
showLargeCompass
)
DEFINE_SETTINGFACT
(
showLargeCompass
)
...
...
src/ui/preferences/GeneralSettings.qml
View file @
3a406dea
...
@@ -35,6 +35,9 @@ Rectangle {
...
@@ -35,6 +35,9 @@ Rectangle {
property
Fact
_appFontPointSize
:
QGroundControl
.
settingsManager
.
appSettings
.
appFontPointSize
property
Fact
_appFontPointSize
:
QGroundControl
.
settingsManager
.
appSettings
.
appFontPointSize
property
Fact
_userBrandImageIndoor
:
QGroundControl
.
settingsManager
.
brandImageSettings
.
userBrandImageIndoor
property
Fact
_userBrandImageIndoor
:
QGroundControl
.
settingsManager
.
brandImageSettings
.
userBrandImageIndoor
property
Fact
_userBrandImageOutdoor
:
QGroundControl
.
settingsManager
.
brandImageSettings
.
userBrandImageOutdoor
property
Fact
_userBrandImageOutdoor
:
QGroundControl
.
settingsManager
.
brandImageSettings
.
userBrandImageOutdoor
property
Fact
_virtualJoystick
:
QGroundControl
.
settingsManager
.
appSettings
.
virtualJoystick
property
Fact
_virtualJoystickAutoCenterThrottle
:
QGroundControl
.
settingsManager
.
appSettings
.
virtualJoystickAutoCenterThrottle
property
real
_labelWidth
:
ScreenTools
.
defaultFontPixelWidth
*
20
property
real
_labelWidth
:
ScreenTools
.
defaultFontPixelWidth
*
20
property
real
_comboFieldWidth
:
ScreenTools
.
defaultFontPixelWidth
*
30
property
real
_comboFieldWidth
:
ScreenTools
.
defaultFontPixelWidth
*
30
property
real
_valueFieldWidth
:
ScreenTools
.
defaultFontPixelWidth
*
10
property
real
_valueFieldWidth
:
ScreenTools
.
defaultFontPixelWidth
*
10
...
@@ -512,22 +515,23 @@ Rectangle {
...
@@ -512,22 +515,23 @@ Rectangle {
property
Fact
_showLogReplayStatusBar
:
QGroundControl
.
settingsManager
.
flyViewSettings
.
showLogReplayStatusBar
property
Fact
_showLogReplayStatusBar
:
QGroundControl
.
settingsManager
.
flyViewSettings
.
showLogReplayStatusBar
}
}
RowLayout
{
spacing
:
ScreenTools
.
defaultFontPixelWidth
FactCheckBox
{
FactCheckBox
{
text
:
qsTr
(
"
Virtual Joystick
"
)
text
:
qsTr
(
"
Virtual Joystick
"
)
visible
:
_virtualJoystick
.
visible
visible
:
_virtualJoystick
.
visible
fact
:
_virtualJoystick
fact
:
_virtualJoystick
property
Fact
_virtualJoystick
:
QGroundControl
.
settingsManager
.
appSettings
.
virtualJoystick
}
}
FactCheckBox
{
FactCheckBox
{
text
:
qsTr
(
"
Auto-Center throttle
"
)
text
:
qsTr
(
"
Auto-Center Throttle
"
)
visible
:
_virtualJoystickCentralized
.
visible
&&
activeVehicle
&&
(
activeVehicle
.
sub
||
activeVehicle
.
rover
)
visible
:
_virtualJoystickAutoCenterThrottle
.
visible
fact
:
_virtualJoystickCentralized
enabled
:
_virtualJoystick
.
rawValue
Layout.leftMargin
:
_margins
fact
:
_virtualJoystickAutoCenterThrottle
property
Fact
_virtualJoystickCentralized
:
QGroundControl
.
settingsManager
.
appSettings
.
virtualJoystickCentralized
}
}
}
FactCheckBox
{
FactCheckBox
{
text
:
qsTr
(
"
Use Vertical Instrument Panel
"
)
text
:
qsTr
(
"
Use Vertical Instrument Panel
"
)
visible
:
_alternateInstrumentPanel
.
visible
visible
:
_alternateInstrumentPanel
.
visible
...
...
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