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
d0a6b775
Commit
d0a6b775
authored
Feb 20, 2017
by
Don Gagne
Browse files
Add new SettingsGroup support
parent
1ecca678
Changes
33
Hide whitespace changes
Inline
Side-by-side
qgroundcontrol.pro
View file @
d0a6b775
...
...
@@ -291,6 +291,7 @@ INCLUDEPATH += \
src/QmlControls \
src/QtLocationPlugin \
src/QtLocationPlugin/QMLControl \
src/Settings \
src/VehicleSetup \
src/ViewWidgets \
src/audio \
...
...
@@ -474,7 +475,12 @@ HEADERS += \
src/QmlControls/RCChannelMonitorController.h \
src/QmlControls/ScreenToolsController.h \
src/QtLocationPlugin/QMLControl/QGCMapEngineManager.h \
src/SettingsManager.h \
src/Settings/AppSettings.h \
src/Settings/AutoConnectSettings.h \
src/Settings/SettingsGroup.h \
src/Settings/SettingsManager.h \
src/Settings/UnitsSettings.h \
src/Settings/VideoSettings.h \
src/Vehicle/MAVLinkLogManager.h \
src/VehicleSetup/JoystickConfigController.h \
src/audio/QGCAudioWorker.h \
...
...
@@ -636,7 +642,12 @@ SOURCES += \
src/QmlControls/RCChannelMonitorController.cc \
src/QmlControls/ScreenToolsController.cc \
src/QtLocationPlugin/QMLControl/QGCMapEngineManager.cc \
src/SettingsManager.cc \
src/Settings/AppSettings.cc \
src/Settings/AutoConnectSettings.cc \
src/Settings/SettingsGroup.cc \
src/Settings/SettingsManager.cc \
src/Settings/UnitsSettings.cc \
src/Settings/VideoSettings.cc \
src/Vehicle/MAVLinkLogManager.cc \
src/VehicleSetup/JoystickConfigController.cc \
src/audio/QGCAudioWorker.cpp \
...
...
qgroundcontrol.qrc
View file @
d0a6b775
...
...
@@ -170,7 +170,10 @@
<file alias="Vehicle/GPSFact.json">src/Vehicle/GPSFact.json</file>
<file alias="Vehicle/WindFact.json">src/Vehicle/WindFact.json</file>
<file alias="Vehicle/VibrationFact.json">src/Vehicle/VibrationFact.json</file>
<file alias="SettingsManager.json">src/SettingsManager.json</file>
<file alias="SettingsGroup.app.json">src/Settings/SettingsGroup.app.json</file>
<file alias="SettingsGroup.autoConnect.json">src/Settings/SettingsGroup.autoConnect.json</file>
<file alias="SettingsGroup.units.json">src/Settings/SettingsGroup.units.json</file>
<file alias="SettingsGroup.video.json">src/Settings/SettingsGroup.video.json</file>
<file alias="RallyPoint.FactMetaData.json">src/MissionManager/RallyPoint.FactMetaData.json</file>
<file alias="FWLandingPattern.FactMetaData.json">src/MissionManager/FWLandingPattern.FactMetaData.json</file>
<file alias="Survey.FactMetaData.json">src/MissionManager/Survey.FactMetaData.json</file>
...
...
src/FactSystem/FactMetaData.cc
View file @
d0a6b775
...
...
@@ -40,21 +40,21 @@ const FactMetaData::BuiltInTranslation_s FactMetaData::_rgBuiltInTranslations[]
// Translations driven by app settings
const
FactMetaData
::
AppSettingsTranslation_s
FactMetaData
::
_rgAppSettingsTranslations
[]
=
{
{
"m"
,
"m"
,
false
,
Settings
Manager
::
DistanceUnitsMeters
,
FactMetaData
::
_defaultTranslator
,
FactMetaData
::
_defaultTranslator
},
{
"meters"
,
"meters"
,
false
,
Settings
Manager
::
DistanceUnitsMeters
,
FactMetaData
::
_defaultTranslator
,
FactMetaData
::
_defaultTranslator
},
{
"m/s"
,
"m/s"
,
true
,
Settings
Manager
::
SpeedUnitsMetersPerSecond
,
FactMetaData
::
_defaultTranslator
,
FactMetaData
::
_defaultTranslator
},
{
"m^2"
,
"m^2"
,
false
,
Settings
Manager
::
AreaUnitsSquareMeters
,
FactMetaData
::
_defaultTranslator
,
FactMetaData
::
_defaultTranslator
},
{
"m"
,
"ft"
,
false
,
Settings
Manager
::
DistanceUnitsFeet
,
FactMetaData
::
_metersToFeet
,
FactMetaData
::
_feetToMeters
},
{
"meters"
,
"ft"
,
false
,
Settings
Manager
::
DistanceUnitsFeet
,
FactMetaData
::
_metersToFeet
,
FactMetaData
::
_feetToMeters
},
{
"m^2"
,
"km^2"
,
false
,
Settings
Manager
::
AreaUnitsSquareKilometers
,
FactMetaData
::
_squareMetersToSquareKilometers
,
FactMetaData
::
_squareKilometersToSquareMeters
},
{
"m^2"
,
"ha"
,
false
,
Settings
Manager
::
AreaUnitsHectares
,
FactMetaData
::
_squareMetersToHectares
,
FactMetaData
::
_hectaresToSquareMeters
},
{
"m^2"
,
"ft^2"
,
false
,
Settings
Manager
::
AreaUnitsSquareFeet
,
FactMetaData
::
_squareMetersToSquareFeet
,
FactMetaData
::
_squareFeetToSquareMeters
},
{
"m^2"
,
"ac"
,
false
,
Settings
Manager
::
AreaUnitsAcres
,
FactMetaData
::
_squareMetersToAcres
,
FactMetaData
::
_acresToSquareMeters
},
{
"m^2"
,
"mi^2"
,
false
,
Settings
Manager
::
AreaUnitsSquareMiles
,
FactMetaData
::
_squareMetersToSquareMiles
,
FactMetaData
::
_squareMilesToSquareMeters
},
{
"m/s"
,
"ft/s"
,
true
,
Settings
Manager
::
SpeedUnitsFeetPerSecond
,
FactMetaData
::
_metersToFeet
,
FactMetaData
::
_feetToMeters
},
{
"m/s"
,
"mph"
,
true
,
Settings
Manager
::
SpeedUnitsMilesPerHour
,
FactMetaData
::
_metersPerSecondToMilesPerHour
,
FactMetaData
::
_milesPerHourToMetersPerSecond
},
{
"m/s"
,
"km/h"
,
true
,
Settings
Manager
::
SpeedUnitsKilometersPerHour
,
FactMetaData
::
_metersPerSecondToKilometersPerHour
,
FactMetaData
::
_kilometersPerHourToMetersPerSecond
},
{
"m/s"
,
"kn"
,
true
,
Settings
Manager
::
SpeedUnitsKnots
,
FactMetaData
::
_metersPerSecondToKnots
,
FactMetaData
::
_knotsToMetersPerSecond
},
{
"m"
,
"m"
,
false
,
Units
Settings
::
DistanceUnitsMeters
,
FactMetaData
::
_defaultTranslator
,
FactMetaData
::
_defaultTranslator
},
{
"meters"
,
"meters"
,
false
,
Units
Settings
::
DistanceUnitsMeters
,
FactMetaData
::
_defaultTranslator
,
FactMetaData
::
_defaultTranslator
},
{
"m/s"
,
"m/s"
,
true
,
Units
Settings
::
SpeedUnitsMetersPerSecond
,
FactMetaData
::
_defaultTranslator
,
FactMetaData
::
_defaultTranslator
},
{
"m^2"
,
"m^2"
,
false
,
Units
Settings
::
AreaUnitsSquareMeters
,
FactMetaData
::
_defaultTranslator
,
FactMetaData
::
_defaultTranslator
},
{
"m"
,
"ft"
,
false
,
Units
Settings
::
DistanceUnitsFeet
,
FactMetaData
::
_metersToFeet
,
FactMetaData
::
_feetToMeters
},
{
"meters"
,
"ft"
,
false
,
Units
Settings
::
DistanceUnitsFeet
,
FactMetaData
::
_metersToFeet
,
FactMetaData
::
_feetToMeters
},
{
"m^2"
,
"km^2"
,
false
,
Units
Settings
::
AreaUnitsSquareKilometers
,
FactMetaData
::
_squareMetersToSquareKilometers
,
FactMetaData
::
_squareKilometersToSquareMeters
},
{
"m^2"
,
"ha"
,
false
,
Units
Settings
::
AreaUnitsHectares
,
FactMetaData
::
_squareMetersToHectares
,
FactMetaData
::
_hectaresToSquareMeters
},
{
"m^2"
,
"ft^2"
,
false
,
Units
Settings
::
AreaUnitsSquareFeet
,
FactMetaData
::
_squareMetersToSquareFeet
,
FactMetaData
::
_squareFeetToSquareMeters
},
{
"m^2"
,
"ac"
,
false
,
Units
Settings
::
AreaUnitsAcres
,
FactMetaData
::
_squareMetersToAcres
,
FactMetaData
::
_acresToSquareMeters
},
{
"m^2"
,
"mi^2"
,
false
,
Units
Settings
::
AreaUnitsSquareMiles
,
FactMetaData
::
_squareMetersToSquareMiles
,
FactMetaData
::
_squareMilesToSquareMeters
},
{
"m/s"
,
"ft/s"
,
true
,
Units
Settings
::
SpeedUnitsFeetPerSecond
,
FactMetaData
::
_metersToFeet
,
FactMetaData
::
_feetToMeters
},
{
"m/s"
,
"mph"
,
true
,
Units
Settings
::
SpeedUnitsMilesPerHour
,
FactMetaData
::
_metersPerSecondToMilesPerHour
,
FactMetaData
::
_milesPerHourToMetersPerSecond
},
{
"m/s"
,
"km/h"
,
true
,
Units
Settings
::
SpeedUnitsKilometersPerHour
,
FactMetaData
::
_metersPerSecondToKilometersPerHour
,
FactMetaData
::
_kilometersPerHourToMetersPerSecond
},
{
"m/s"
,
"kn"
,
true
,
Units
Settings
::
SpeedUnitsKnots
,
FactMetaData
::
_metersPerSecondToKnots
,
FactMetaData
::
_knotsToMetersPerSecond
},
};
const
char
*
FactMetaData
::
_decimalPlacesJsonKey
=
"decimalPlaces"
;
...
...
@@ -635,8 +635,8 @@ void FactMetaData::_setAppSettingsTranslators(void)
const
AppSettingsTranslation_s
*
pAppSettingsTranslation
=
&
_rgAppSettingsTranslations
[
i
];
if
(
pAppSettingsTranslation
->
rawUnits
==
_rawUnits
.
toLower
()
&&
((
pAppSettingsTranslation
->
speed
&&
pAppSettingsTranslation
->
speedOrDistanceUnits
==
qgcApp
()
->
toolbox
()
->
settingsManager
()
->
speedUnits
()
->
rawValue
().
toUInt
())
||
(
!
pAppSettingsTranslation
->
speed
&&
pAppSettingsTranslation
->
speedOrDistanceUnits
==
qgcApp
()
->
toolbox
()
->
settingsManager
()
->
distanceUnits
()
->
rawValue
().
toUInt
())))
{
((
pAppSettingsTranslation
->
speed
&&
pAppSettingsTranslation
->
speedOrDistanceUnits
==
qgcApp
()
->
toolbox
()
->
settingsManager
()
->
unitsSettings
()
->
speedUnits
()
->
rawValue
().
toUInt
())
||
(
!
pAppSettingsTranslation
->
speed
&&
pAppSettingsTranslation
->
speedOrDistanceUnits
==
qgcApp
()
->
toolbox
()
->
settingsManager
()
->
unitsSettings
()
->
distanceUnits
()
->
rawValue
().
toUInt
())))
{
_cookedUnits
=
pAppSettingsTranslation
->
cookedUnits
;
setTranslators
(
pAppSettingsTranslation
->
rawTranslator
,
pAppSettingsTranslation
->
cookedTranslator
);
return
;
...
...
@@ -651,7 +651,7 @@ const FactMetaData::AppSettingsTranslation_s* FactMetaData::_findAppSettingsDist
const
AppSettingsTranslation_s
*
pAppSettingsTranslation
=
&
_rgAppSettingsTranslations
[
i
];
if
(
pAppSettingsTranslation
->
rawUnits
==
rawUnits
&&
(
!
pAppSettingsTranslation
->
speed
&&
pAppSettingsTranslation
->
speedOrDistanceUnits
==
qgcApp
()
->
toolbox
()
->
settingsManager
()
->
distanceUnits
()
->
rawValue
().
toUInt
()))
{
(
!
pAppSettingsTranslation
->
speed
&&
pAppSettingsTranslation
->
speedOrDistanceUnits
==
qgcApp
()
->
toolbox
()
->
settingsManager
()
->
unitsSettings
()
->
distanceUnits
()
->
rawValue
().
toUInt
()))
{
return
pAppSettingsTranslation
;
}
}
...
...
@@ -665,7 +665,7 @@ const FactMetaData::AppSettingsTranslation_s* FactMetaData::_findAppSettingsArea
const
AppSettingsTranslation_s
*
pAppSettingsTranslation
=
&
_rgAppSettingsTranslations
[
i
];
if
(
pAppSettingsTranslation
->
rawUnits
==
rawUnits
&&
(
!
pAppSettingsTranslation
->
speed
&&
pAppSettingsTranslation
->
speedOrDistanceUnits
==
qgcApp
()
->
toolbox
()
->
settingsManager
()
->
areaUnits
()
->
rawValue
().
toUInt
())
(
!
pAppSettingsTranslation
->
speed
&&
pAppSettingsTranslation
->
speedOrDistanceUnits
==
qgcApp
()
->
toolbox
()
->
settingsManager
()
->
unitsSettings
()
->
areaUnits
()
->
rawValue
().
toUInt
())
)
{
return
pAppSettingsTranslation
;
}
...
...
src/FlightMap/MapScale.qml
View file @
d0a6b775
...
...
@@ -115,7 +115,7 @@ Item {
var
rightCoord
=
mapControl
.
toCoordinate
(
Qt
.
point
(
scaleLinePixelLength
,
scale
.
y
))
var
scaleLineMeters
=
Math
.
round
(
leftCoord
.
distanceTo
(
rightCoord
))
if
(
QGroundControl
.
settingsManager
.
distanceUnits
.
value
==
QGroundControl
.
settingsManager
.
DistanceUnitsFeet
)
{
if
(
QGroundControl
.
settingsManager
.
unitsSettings
.
distanceUnits
.
value
==
UnitsSettings
.
DistanceUnitsFeet
)
{
calculateFeetRatio
(
scaleLineMeters
,
scaleLinePixelLength
)
}
else
{
calculateMetersRatio
(
scaleLineMeters
,
scaleLinePixelLength
)
...
...
src/GAudioOutput.cc
View file @
d0a6b775
...
...
@@ -56,7 +56,7 @@ GAudioOutput::~GAudioOutput()
bool
GAudioOutput
::
say
(
const
QString
&
inText
)
{
bool
muted
=
qgcApp
()
->
toolbox
()
->
settingsManager
()
->
audioMuted
()
->
rawValue
().
toBool
();
bool
muted
=
qgcApp
()
->
toolbox
()
->
settingsManager
()
->
appSettings
()
->
audioMuted
()
->
rawValue
().
toBool
();
muted
|=
qgcApp
()
->
runningUnitTests
();
if
(
!
muted
&&
!
qgcApp
()
->
runningUnitTests
())
{
#if defined __android__
...
...
src/MissionEditor/MissionSettingsEditor.qml
View file @
d0a6b775
...
...
@@ -122,7 +122,7 @@ Rectangle {
Layout.fillWidth
:
true
}
FactComboBox
{
fact
:
QGroundControl
.
settingsManager
.
offlineEditingFirmwareType
fact
:
QGroundControl
.
settingsManager
.
appSettings
.
offlineEditingFirmwareType
indexModel
:
false
visible
:
_showOfflineEditingCombos
Layout.preferredWidth
:
_fieldWidth
...
...
@@ -146,7 +146,7 @@ Rectangle {
}
FactComboBox
{
id
:
offlineVehicleCombo
fact
:
QGroundControl
.
settingsManager
.
offlineEditingVehicleType
fact
:
QGroundControl
.
settingsManager
.
appSettings
.
offlineEditingVehicleType
indexModel
:
false
visible
:
_showOfflineEditingCombos
Layout.preferredWidth
:
_fieldWidth
...
...
@@ -170,7 +170,7 @@ Rectangle {
Layout.fillWidth
:
true
}
FactTextField
{
fact
:
QGroundControl
.
settingsManager
.
offlineEditingCruiseSpeed
fact
:
QGroundControl
.
settingsManager
.
appSettings
.
offlineEditingCruiseSpeed
visible
:
_showCruiseSpeed
Layout.preferredWidth
:
_fieldWidth
}
...
...
@@ -182,7 +182,7 @@ Rectangle {
Layout.fillWidth
:
true
}
FactTextField
{
fact
:
QGroundControl
.
settingsManager
.
offlineEditingHoverSpeed
fact
:
QGroundControl
.
settingsManager
.
appSettings
.
offlineEditingHoverSpeed
visible
:
_showHoverSpeed
Layout.preferredWidth
:
_fieldWidth
}
...
...
@@ -196,7 +196,7 @@ Rectangle {
QGCLabel
{
text
:
qsTr
(
"
Hover speed:
"
);
Layout.fillWidth
:
true
}
FactTextField
{
Layout.preferredWidth
:
_fieldWidth
fact
:
QGroundControl
.
settingsManager
.
offlineEditingHoverSpeed
fact
:
QGroundControl
.
settingsManager
.
appSettings
.
offlineEditingHoverSpeed
}
}
...
...
src/MissionManager/MissionCommandTree.cc
View file @
d0a6b775
...
...
@@ -253,7 +253,7 @@ void MissionCommandTree::_baseVehicleInfo(Vehicle* vehicle, MAV_AUTOPILOT& baseF
baseVehicleType
=
_baseVehicleType
(
vehicle
->
vehicleType
());
}
else
{
// No Vehicle means offline editing
baseFirmwareType
=
_baseFirmwareType
((
MAV_AUTOPILOT
)
_settingsManager
->
offlineEditingFirmwareType
()
->
rawValue
().
toInt
());
baseVehicleType
=
_baseVehicleType
((
MAV_TYPE
)
_settingsManager
->
offlineEditingVehicleType
()
->
rawValue
().
toInt
());
baseFirmwareType
=
_baseFirmwareType
((
MAV_AUTOPILOT
)
_settingsManager
->
appSettings
()
->
offlineEditingFirmwareType
()
->
rawValue
().
toInt
());
baseVehicleType
=
_baseVehicleType
((
MAV_TYPE
)
_settingsManager
->
appSettings
()
->
offlineEditingVehicleType
()
->
rawValue
().
toInt
());
}
}
src/MissionManager/MissionController.cc
View file @
d0a6b775
...
...
@@ -437,13 +437,13 @@ bool MissionController::_loadJsonMissionFileV2(Vehicle* vehicle, const QJsonObje
return
false
;
}
if
(
json
.
contains
(
_jsonVehicleTypeKey
)
&&
vehicle
->
isOfflineEditingVehicle
())
{
settingsManager
->
offlineEditingVehicleType
()
->
setRawValue
(
json
[
_jsonVehicleTypeKey
].
toDouble
());
settingsManager
->
appSettings
()
->
offlineEditingVehicleType
()
->
setRawValue
(
json
[
_jsonVehicleTypeKey
].
toDouble
());
}
if
(
json
.
contains
(
_jsonCruiseSpeedKey
))
{
settingsManager
->
offlineEditingCruiseSpeed
()
->
setRawValue
(
json
[
_jsonCruiseSpeedKey
].
toDouble
());
settingsManager
->
appSettings
()
->
offlineEditingCruiseSpeed
()
->
setRawValue
(
json
[
_jsonCruiseSpeedKey
].
toDouble
());
}
if
(
json
.
contains
(
_jsonHoverSpeedKey
))
{
settingsManager
->
offlineEditingHoverSpeed
()
->
setRawValue
(
json
[
_jsonHoverSpeedKey
].
toDouble
());
settingsManager
->
appSettings
()
->
offlineEditingHoverSpeed
()
->
setRawValue
(
json
[
_jsonHoverSpeedKey
].
toDouble
());
}
SimpleMissionItem
*
homeItem
=
new
SimpleMissionItem
(
vehicle
,
visualItems
);
...
...
src/MissionManager/RallyPointController.cc
View file @
d0a6b775
...
...
@@ -268,7 +268,7 @@ void RallyPointController::addPoint(QGeoCoordinate point)
if
(
_points
.
count
())
{
defaultAlt
=
qobject_cast
<
RallyPoint
*>
(
_points
[
_points
.
count
()
-
1
])
->
coordinate
().
altitude
();
}
else
{
defaultAlt
=
qgcApp
()
->
toolbox
()
->
settingsManager
()
->
defaultMissionItemAltitude
()
->
rawValue
().
toDouble
();
defaultAlt
=
qgcApp
()
->
toolbox
()
->
settingsManager
()
->
appSettings
()
->
defaultMissionItemAltitude
()
->
rawValue
().
toDouble
();
}
point
.
setAltitude
(
defaultAlt
);
RallyPoint
*
newPoint
=
new
RallyPoint
(
point
,
this
);
...
...
src/MissionManager/SimpleMissionItem.cc
View file @
d0a6b775
...
...
@@ -530,7 +530,7 @@ void SimpleMissionItem::_syncFrameToAltitudeRelativeToHome(void)
void
SimpleMissionItem
::
setDefaultsForCommand
(
void
)
{
// We set these global defaults first, then if there are param defaults they will get reset
_missionItem
.
setParam7
(
qgcApp
()
->
toolbox
()
->
settingsManager
()
->
defaultMissionItemAltitude
()
->
rawValue
().
toDouble
());
_missionItem
.
setParam7
(
qgcApp
()
->
toolbox
()
->
settingsManager
()
->
appSettings
()
->
defaultMissionItemAltitude
()
->
rawValue
().
toDouble
());
MAV_CMD
command
=
(
MAV_CMD
)
this
->
command
();
const
MissionCommandUIInfo
*
uiInfo
=
_commandTree
->
getUIInfo
(
_vehicle
,
command
);
...
...
src/MissionManager/SimpleMissionItemTest.cc
View file @
d0a6b775
...
...
@@ -141,7 +141,7 @@ void SimpleMissionItemTest::_testDefaultValues(void)
item
.
missionItem
().
setCommand
(
MAV_CMD_NAV_WAYPOINT
);
item
.
missionItem
().
setFrame
(
MAV_FRAME_GLOBAL_RELATIVE_ALT
);
QCOMPARE
(
item
.
missionItem
().
param7
(),
qgcApp
()
->
toolbox
()
->
settingsManager
()
->
defaultMissionItemAltitude
()
->
rawValue
().
toDouble
());
QCOMPARE
(
item
.
missionItem
().
param7
(),
qgcApp
()
->
toolbox
()
->
settingsManager
()
->
appSettings
()
->
defaultMissionItemAltitude
()
->
rawValue
().
toDouble
());
}
void
SimpleMissionItemTest
::
_testSignals
(
void
)
...
...
@@ -226,7 +226,7 @@ void SimpleMissionItemTest::_testSignals(void)
// dirtyChanged
// Check that changing to the same coordinate does not signal
simpleMissionItem
.
setCoordinate
(
QGeoCoordinate
(
50.1234567
,
60.1234567
,
qgcApp
()
->
toolbox
()
->
settingsManager
()
->
defaultMissionItemAltitude
()
->
rawValue
().
toDouble
()));
simpleMissionItem
.
setCoordinate
(
QGeoCoordinate
(
50.1234567
,
60.1234567
,
qgcApp
()
->
toolbox
()
->
settingsManager
()
->
appSettings
()
->
defaultMissionItemAltitude
()
->
rawValue
().
toDouble
()));
QVERIFY
(
multiSpy
->
checkNoSignals
());
// Check that actually changing coordinate signals correctly
...
...
src/Settings/AppSettings.cc
0 → 100644
View file @
d0a6b775
/****************************************************************************
*
* (c) 2009-2016 QGROUNDCONTROL PROJECT <http://www.qgroundcontrol.org>
*
* QGroundControl is licensed according to the terms in the file
* COPYING.md in the root of the source code directory.
*
****************************************************************************/
#include
"AppSettings.h"
#include
<QQmlEngine>
const
char
*
AppSettings
::
appSettingsGroupName
=
"app"
;
const
char
*
AppSettings
::
offlineEditingFirmwareTypeSettingsName
=
"OfflineEditingFirmwareType"
;
const
char
*
AppSettings
::
offlineEditingVehicleTypeSettingsName
=
"OfflineEditingVehicleType"
;
const
char
*
AppSettings
::
offlineEditingCruiseSpeedSettingsName
=
"OfflineEditingCruiseSpeed"
;
const
char
*
AppSettings
::
offlineEditingHoverSpeedSettingsName
=
"OfflineEditingHoverSpeed"
;
const
char
*
AppSettings
::
batteryPercentRemainingAnnounceSettingsName
=
"batteryPercentRemainingAnnounce"
;
const
char
*
AppSettings
::
defaultMissionItemAltitudeSettingsName
=
"DefaultMissionItemAltitude"
;
const
char
*
AppSettings
::
missionAutoLoadDirSettingsName
=
"MissionAutoLoadDir"
;
const
char
*
AppSettings
::
promptFlightTelemetrySaveName
=
"PromptFLightDataSave"
;
const
char
*
AppSettings
::
promptFlightTelemetrySaveNotArmedName
=
"PromptFLightDataSaveNotArmed"
;
const
char
*
AppSettings
::
audioMutedName
=
"AudioMuted"
;
AppSettings
::
AppSettings
(
QObject
*
parent
)
:
SettingsGroup
(
appSettingsGroupName
,
QString
()
/* root settings group */
,
parent
)
,
_offlineEditingFirmwareTypeFact
(
NULL
)
,
_offlineEditingVehicleTypeFact
(
NULL
)
,
_offlineEditingCruiseSpeedFact
(
NULL
)
,
_offlineEditingHoverSpeedFact
(
NULL
)
,
_batteryPercentRemainingAnnounceFact
(
NULL
)
,
_defaultMissionItemAltitudeFact
(
NULL
)
,
_missionAutoLoadDirFact
(
NULL
)
,
_promptFlightTelemetrySave
(
NULL
)
,
_promptFlightTelemetrySaveNotArmed
(
NULL
)
,
_audioMuted
(
NULL
)
{
QQmlEngine
::
setObjectOwnership
(
this
,
QQmlEngine
::
CppOwnership
);
qmlRegisterUncreatableType
<
AppSettings
>
(
"QGroundControl.SettingsManager"
,
1
,
0
,
"AppSettings"
,
"Reference only"
);
}
Fact
*
AppSettings
::
offlineEditingFirmwareType
(
void
)
{
if
(
!
_offlineEditingFirmwareTypeFact
)
{
_offlineEditingFirmwareTypeFact
=
_createSettingsFact
(
offlineEditingFirmwareTypeSettingsName
);
}
return
_offlineEditingFirmwareTypeFact
;
}
Fact
*
AppSettings
::
offlineEditingVehicleType
(
void
)
{
if
(
!
_offlineEditingVehicleTypeFact
)
{
_offlineEditingVehicleTypeFact
=
_createSettingsFact
(
offlineEditingVehicleTypeSettingsName
);
}
return
_offlineEditingVehicleTypeFact
;
}
Fact
*
AppSettings
::
offlineEditingCruiseSpeed
(
void
)
{
if
(
!
_offlineEditingCruiseSpeedFact
)
{
_offlineEditingCruiseSpeedFact
=
_createSettingsFact
(
offlineEditingCruiseSpeedSettingsName
);
}
return
_offlineEditingCruiseSpeedFact
;
}
Fact
*
AppSettings
::
offlineEditingHoverSpeed
(
void
)
{
if
(
!
_offlineEditingHoverSpeedFact
)
{
_offlineEditingHoverSpeedFact
=
_createSettingsFact
(
offlineEditingHoverSpeedSettingsName
);
}
return
_offlineEditingHoverSpeedFact
;
}
Fact
*
AppSettings
::
batteryPercentRemainingAnnounce
(
void
)
{
if
(
!
_batteryPercentRemainingAnnounceFact
)
{
_batteryPercentRemainingAnnounceFact
=
_createSettingsFact
(
batteryPercentRemainingAnnounceSettingsName
);
}
return
_batteryPercentRemainingAnnounceFact
;
}
Fact
*
AppSettings
::
defaultMissionItemAltitude
(
void
)
{
if
(
!
_defaultMissionItemAltitudeFact
)
{
_defaultMissionItemAltitudeFact
=
_createSettingsFact
(
defaultMissionItemAltitudeSettingsName
);
}
return
_defaultMissionItemAltitudeFact
;
}
Fact
*
AppSettings
::
missionAutoLoadDir
(
void
)
{
if
(
!
_missionAutoLoadDirFact
)
{
_missionAutoLoadDirFact
=
_createSettingsFact
(
missionAutoLoadDirSettingsName
);
}
return
_missionAutoLoadDirFact
;
}
Fact
*
AppSettings
::
promptFlightTelemetrySave
(
void
)
{
if
(
!
_promptFlightTelemetrySave
)
{
_promptFlightTelemetrySave
=
_createSettingsFact
(
promptFlightTelemetrySaveName
);
}
return
_promptFlightTelemetrySave
;
}
Fact
*
AppSettings
::
promptFlightTelemetrySaveNotArmed
(
void
)
{
if
(
!
_promptFlightTelemetrySaveNotArmed
)
{
_promptFlightTelemetrySaveNotArmed
=
_createSettingsFact
(
promptFlightTelemetrySaveNotArmedName
);
}
return
_promptFlightTelemetrySaveNotArmed
;
}
Fact
*
AppSettings
::
audioMuted
(
void
)
{
if
(
!
_audioMuted
)
{
_audioMuted
=
_createSettingsFact
(
audioMutedName
);
}
return
_audioMuted
;
}
src/Settings
Manager
.h
→
src/Settings
/AppSettings
.h
View file @
d0a6b775
...
...
@@ -7,60 +7,22 @@
*
****************************************************************************/
#ifndef AppSettings_H
#define AppSettings_H
#ifndef SettingsManager_H
#define SettingsManager_H
#include
"SettingsGroup.h"
#include
"QGCLoggingCategory.h"
#include
"Joystick.h"
#include
"MultiVehicleManager.h"
#include
"QGCToolbox.h"
#include
<QVariantList>
Q_DECLARE_LOGGING_CATEGORY
(
SettingsManagerLog
)
/// Provides access to all app settings
class
SettingsManager
:
public
QGCTool
class
AppSettings
:
public
SettingsGroup
{
Q_OBJECT
public:
SettingsManager
(
QGCApplication
*
app
);
enum
DistanceUnits
{
DistanceUnitsFeet
=
0
,
DistanceUnitsMeters
};
enum
AreaUnits
{
AreaUnitsSquareFeet
=
0
,
AreaUnitsSquareMeters
,
AreaUnitsSquareKilometers
,
AreaUnitsHectares
,
AreaUnitsAcres
,
AreaUnitsSquareMiles
,
};
enum
SpeedUnits
{
SpeedUnitsFeetPerSecond
=
0
,
SpeedUnitsMetersPerSecond
,
SpeedUnitsMilesPerHour
,
SpeedUnitsKilometersPerHour
,
SpeedUnitsKnots
,
};
Q_ENUMS
(
DistanceUnits
)
Q_ENUMS
(
AreaUnits
)
Q_ENUMS
(
SpeedUnits
)
AppSettings
(
QObject
*
parent
=
NULL
);
Q_PROPERTY
(
Fact
*
offlineEditingFirmwareType
READ
offlineEditingFirmwareType
CONSTANT
)
Q_PROPERTY
(
Fact
*
offlineEditingVehicleType
READ
offlineEditingVehicleType
CONSTANT
)
Q_PROPERTY
(
Fact
*
offlineEditingCruiseSpeed
READ
offlineEditingCruiseSpeed
CONSTANT
)
Q_PROPERTY
(
Fact
*
offlineEditingHoverSpeed
READ
offlineEditingHoverSpeed
CONSTANT
)
Q_PROPERTY
(
Fact
*
distanceUnits
READ
distanceUnits
CONSTANT
)
Q_PROPERTY
(
Fact
*
areaUnits
READ
areaUnits
CONSTANT
)
Q_PROPERTY
(
Fact
*
speedUnits
READ
speedUnits
CONSTANT
)
Q_PROPERTY
(
Fact
*
batteryPercentRemainingAnnounce
READ
batteryPercentRemainingAnnounce
CONSTANT
)
Q_PROPERTY
(
Fact
*
defaultMissionItemAltitude
READ
defaultMissionItemAltitude
CONSTANT
)
Q_PROPERTY
(
Fact
*
missionAutoLoadDir
READ
missionAutoLoadDir
CONSTANT
)
...
...
@@ -72,9 +34,6 @@ public:
Fact
*
offlineEditingVehicleType
(
void
);
Fact
*
offlineEditingCruiseSpeed
(
void
);
Fact
*
offlineEditingHoverSpeed
(
void
);
Fact
*
distanceUnits
(
void
);
Fact
*
areaUnits
(
void
);
Fact
*
speedUnits
(
void
);
Fact
*
batteryPercentRemainingAnnounce
(
void
);
Fact
*
defaultMissionItemAltitude
(
void
);
Fact
*
missionAutoLoadDir
(
void
);
...
...
@@ -82,16 +41,12 @@ public:
Fact
*
promptFlightTelemetrySaveNotArmed
(
void
);
Fact
*
audioMuted
(
void
);
// Override from QGCTool
virtual
void
setToolbox
(
QGCToolbox
*
toolbox
);
static
const
char
*
appSettingsGroupName
;
static
const
char
*
offlineEditingFirmwareTypeSettingsName
;
static
const
char
*
offlineEditingVehicleTypeSettingsName
;
static
const
char
*
offlineEditingCruiseSpeedSettingsName
;
static
const
char
*
offlineEditingHoverSpeedSettingsName
;
static
const
char
*
distanceUnitsSettingsName
;
static
const
char
*
areaUnitsSettingsName
;
static
const
char
*
speedUnitsSettingsName
;
static
const
char
*
batteryPercentRemainingAnnounceSettingsName
;
static
const
char
*
defaultMissionItemAltitudeSettingsName
;
static
const
char
*
missionAutoLoadDirSettingsName
;
...
...
@@ -100,17 +55,10 @@ public:
static
const
char
*
audioMutedName
;
private:
SettingsFact
*
_createSettingsFact
(
const
QString
&
name
);
QMap
<
QString
,
FactMetaData
*>
_nameToMetaDataMap
;
SettingsFact
*
_offlineEditingFirmwareTypeFact
;
SettingsFact
*
_offlineEditingVehicleTypeFact
;
SettingsFact
*
_offlineEditingCruiseSpeedFact
;
SettingsFact
*
_offlineEditingHoverSpeedFact
;
SettingsFact
*
_distanceUnitsFact
;
SettingsFact
*
_areaUnitsFact
;
SettingsFact
*
_speedUnitsFact
;
SettingsFact
*
_batteryPercentRemainingAnnounceFact
;
SettingsFact
*
_defaultMissionItemAltitudeFact
;
SettingsFact
*
_missionAutoLoadDirFact
;
...
...
src/Settings/AutoConnectSettings.cc
0 → 100644
View file @
d0a6b775
/****************************************************************************
*
* (c) 2009-2016 QGROUNDCONTROL PROJECT <http://www.qgroundcontrol.org>
*
* QGroundControl is licensed according to the terms in the file
* COPYING.md in the root of the source code directory.
*
****************************************************************************/
#include
"AutoConnectSettings.h"
#include
<QQmlEngine>
const
char
*
AutoConnectSettings
::
autoConnectSettingsGroupName
=
"autoConnect"
;
AutoConnectSettings
::
AutoConnectSettings
(
QObject
*
parent
)
:
SettingsGroup
(
autoConnectSettingsGroupName
,
QString
()
/* root settings group */
,
parent
)
{
QQmlEngine
::
setObjectOwnership
(
this
,
QQmlEngine
::
CppOwnership
);
qmlRegisterUncreatableType
<
AutoConnectSettings
>
(
"QGroundControl.SettingsManager"
,
1
,
0
,
"AutoConnectSettings"
,
"Reference only"
);
}
src/Settings/AutoConnectSettings.h
0 → 100644
View file @
d0a6b775
/****************************************************************************
*
* (c) 2009-2016 QGROUNDCONTROL PROJECT <http://www.qgroundcontrol.org>
*
* QGroundControl is licensed according to the terms in the file
* COPYING.md in the root of the source code directory.
*
****************************************************************************/
#ifndef AutoConnectSettings_H
#define AutoConnectSettings_H
#include
"SettingsGroup.h"
class
AutoConnectSettings
:
public
SettingsGroup
{
Q_OBJECT
public:
AutoConnectSettings
(
QObject
*
parent
=
NULL
);
static
const
char
*
autoConnectSettingsGroupName
;
private:
};
#endif
src/Settings
Manager
.json
→
src/Settings
/SettingsGroup.app
.json
View file @
d0a6b775
File moved
src/Settings/SettingsGroup.autoConnect.json
0 → 100644
View file @
d0a6b775
[
]
src/Settings/SettingsGroup.cc
0 → 100644
View file @
d0a6b775
/****************************************************************************
*
* (c) 2009-2016 QGROUNDCONTROL PROJECT <http://www.qgroundcontrol.org>
*
* QGroundControl is licensed according to the terms in the file
* COPYING.md in the root of the source code directory.
*
****************************************************************************/
#include
"SettingsGroup.h"
#include
"QGCCorePlugin.h"
#include
"QGCApplication.h"
SettingsGroup
::
SettingsGroup
(
const
QString
&
name
,
const
QString
&
settingsGroup
,
QObject
*
parent
)
:
QObject
(
parent
)
,
_name
(
name
)
,
_settingsGroup
(
settingsGroup
)
,
_visible
(
qgcApp
()
->
toolbox
()
->
corePlugin
()
->
overrideSettingsGroupVisibility
(
name
))
{
QString
jsonNameFormat
(
":/json/SettingsGroup.%1.json"
);
_nameToMetaDataMap
=
FactMetaData
::
createMapFromJsonFile
(
jsonNameFormat
.
arg
(
name
),
this
);
}
SettingsFact
*
SettingsGroup
::
_createSettingsFact
(
const
QString
&
name
)
{
return
new
SettingsFact
(
_settingsGroup
,
_nameToMetaDataMap
[
name
],
this
);
}
src/Settings/SettingsGroup.h
0 → 100644
View file @
d0a6b775
/****************************************************************************
*
* (c) 2009-2016 QGROUNDCONTROL PROJECT <http://www.qgroundcontrol.org>
*
* QGroundControl is licensed according to the terms in the file
* COPYING.md in the root of the source code directory.
*
****************************************************************************/
#ifndef SettingsGroup_H
#define SettingsGroup_H
#include
"QGCLoggingCategory.h"
#include
"Joystick.h"
#include
"MultiVehicleManager.h"
#include
"QGCToolbox.h"
#include
<QVariantList>
/// Provides access to group of settings. The group is named and has a visible property associated with which can control whether the group
/// is shows in the ui.
class
SettingsGroup
:
public
QObject
{
Q_OBJECT
public:
/// @param name Name for this Settings group
/// @param settingsGroup Group to place settings in for QSettings::setGroup
SettingsGroup
(
const
QString
&
name
,
const
QString
&
settingsGroup
,
QObject
*
parent
=
NULL
);
Q_PROPERTY
(
bool
visible
MEMBER
_visible
CONSTANT
)
protected:
SettingsFact
*
_createSettingsFact
(
const
QString
&
name
);
QString
_name
;
QString
_settingsGroup
;
bool
_visible
;
QMap
<
QString
,
FactMetaData
*>
_nameToMetaDataMap
;
};
#endif
src/Settings/SettingsGroup.units.json
0 → 100644
View file @
d0a6b775
[
]
Prev
1
2
Next
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