@ -19,20 +19,17 @@
static const char * kQmlGlobalKeyName = " QGCQml " ;
static const char * kQmlGlobalKeyName = " QGCQml " ;
SettingsFact * QGroundControlQmlGlobal : : _offlineEditingFirmwareTypeFact = NULL ;
FactMetaData * QGroundControlQmlGlobal : : _offlineEditingFirmwareTypeMetaData = NULL ;
SettingsFact * QGroundControlQmlGlobal : : _offlineEditingVehicleTypeFact = NULL ;
FactMetaData * QGroundControlQmlGlobal : : _offlineEditingVehicleTypeMetaData = NULL ;
SettingsFact * QGroundControlQmlGlobal : : _offlineEditingCruiseSpeedFact = NULL ;
SettingsFact * QGroundControlQmlGlobal : : _offlineEditingHoverSpeedFact = NULL ;
SettingsFact * QGroundControlQmlGlobal : : _distanceUnitsFact = NULL ;
SettingsFact * QGroundControlQmlGlobal : : _distanceUnitsFact = NULL ;
FactMetaData * QGroundControlQmlGlobal : : _distanceUnitsMetaData = NULL ;
FactMetaData * QGroundControlQmlGlobal : : _distanceUnitsMetaData = NULL ;
SettingsFact * QGroundControlQmlGlobal : : _areaUnitsFact = NULL ;
SettingsFact * QGroundControlQmlGlobal : : _areaUnitsFact = NULL ;
FactMetaData * QGroundControlQmlGlobal : : _areaUnitsMetaData = NULL ;
FactMetaData * QGroundControlQmlGlobal : : _areaUnitsMetaData = NULL ;
SettingsFact * QGroundControlQmlGlobal : : _speedUnitsFact = NULL ;
SettingsFact * QGroundControlQmlGlobal : : _speedUnitsFact = NULL ;
FactMetaData * QGroundControlQmlGlobal : : _speedUnitsMetaData = NULL ;
FactMetaData * QGroundControlQmlGlobal : : _speedUnitsMetaData = NULL ;
SettingsFact * QGroundControlQmlGlobal : : _offlineEditingFirmwareTypeFact = NULL ;
SettingsFact * QGroundControlQmlGlobal : : _offlineEditingVehicleTypeFact = NULL ;
SettingsFact * QGroundControlQmlGlobal : : _offlineEditingCruiseSpeedFact = NULL ;
SettingsFact * QGroundControlQmlGlobal : : _offlineEditingHoverSpeedFact = NULL ;
SettingsFact * QGroundControlQmlGlobal : : _batteryPercentRemainingAnnounceFact = NULL ;
SettingsFact * QGroundControlQmlGlobal : : _batteryPercentRemainingAnnounceFact = NULL ;
FactMetaData * QGroundControlQmlGlobal : : _batteryPercentRemainingAnnounceMetaData = NULL ;
const char * QGroundControlQmlGlobal : : _virtualTabletJoystickKey = " VirtualTabletJoystick " ;
const char * QGroundControlQmlGlobal : : _virtualTabletJoystickKey = " VirtualTabletJoystick " ;
const char * QGroundControlQmlGlobal : : _baseFontPointSizeKey = " BaseDeviceFontPointSize " ;
const char * QGroundControlQmlGlobal : : _baseFontPointSizeKey = " BaseDeviceFontPointSize " ;
@ -229,20 +226,21 @@ void QGroundControlQmlGlobal::setBaseFontPointSize(qreal size)
}
}
}
}
Fact * QGroundControlQmlGlobal : : offlineEditingFirmwareType ( void )
Settings Fact* QGroundControlQmlGlobal : : _createSettingsFact ( const QString & name )
{
{
if ( ! _offlineEditingFirmwareTypeFact ) {
SettingsFact * fact ;
QStringList enumStrings ;
FactMetaData * metaData = nameToMetaDataMap ( ) [ name ] ;
QVariantList enumValues ;
_o fflineEditingFirmwareTypeF act = new SettingsFact ( QString ( ) , " OfflineEditingFirmwareType " , FactMetaData : : valueTypeUint32 , ( uint32_t ) MAV_AUTOPILOT_ARDUPILOTMEGA ) ;
fact = new SettingsFact ( QString ( ) , name , metaData - > type ( ) , metaData - > rawDefaultValue ( ) ) ;
_offlineEditingFirmwareTypeMetaData = new FactMetaData ( FactMetaData : : valueTypeUint32 ) ;
fact - > setMetaData ( metaData ) ;
enumStrings < < tr ( " ArduPilot Firmware " ) < < tr ( " PX4 Pro Firmware " ) < < tr ( " Mavlink Generic Firmware " ) ;
return fact ;
enumValues < < QVariant : : fromValue ( ( uint32_t ) MAV_AUTOPILOT_ARDUPILOTMEGA ) < < QVariant : : fromValue ( ( uint32_t ) MAV_AUTOPILOT_PX4 ) < < QVariant : : fromValue ( ( uint32_t ) MAV_AUTOPILOT_GENERIC ) ;
}
_offlineEditingFirmwareTypeMetaData - > setEnumInfo ( enumStrings , enumValues ) ;
Fact * QGroundControlQmlGlobal : : offlineEditingFirmwareType ( void )
_offlineEditingFirmwareTypeFact - > setMetaData ( _offlineEditingFirmwareTypeMetaData ) ;
{
if ( ! _offlineEditingFirmwareTypeFact ) {
_offlineEditingFirmwareTypeFact = _createSettingsFact ( QStringLiteral ( " OfflineEditingFirmwareType " ) ) ;
}
}
return _offlineEditingFirmwareTypeFact ;
return _offlineEditingFirmwareTypeFact ;
@ -251,19 +249,7 @@ Fact* QGroundControlQmlGlobal::offlineEditingFirmwareType(void)
Fact * QGroundControlQmlGlobal : : offlineEditingVehicleType ( void )
Fact * QGroundControlQmlGlobal : : offlineEditingVehicleType ( void )
{
{
if ( ! _offlineEditingVehicleTypeFact ) {
if ( ! _offlineEditingVehicleTypeFact ) {
QStringList enumStrings ;
_offlineEditingVehicleTypeFact = _createSettingsFact ( QStringLiteral ( " OfflineEditingVehicleType " ) ) ;
QVariantList enumValues ;
_offlineEditingVehicleTypeFact = new SettingsFact ( QString ( ) , " OfflineEditingVehicleType " , FactMetaData : : valueTypeUint32 , ( uint32_t ) MAV_TYPE_FIXED_WING ) ;
_offlineEditingVehicleTypeMetaData = new FactMetaData ( FactMetaData : : valueTypeUint32 ) ;
enumStrings < < tr ( " Fixedwing " ) < < tr ( " Multicopter " ) < < tr ( " VTOL " ) < < tr ( " Rover " ) < < tr ( " Sub " ) ;
enumValues < < QVariant : : fromValue ( ( uint32_t ) MAV_TYPE_FIXED_WING ) < < QVariant : : fromValue ( ( uint32_t ) MAV_TYPE_QUADROTOR )
< < QVariant : : fromValue ( ( uint32_t ) MAV_TYPE_VTOL_DUOROTOR ) < < QVariant : : fromValue ( ( uint32_t ) MAV_TYPE_GROUND_ROVER )
< < QVariant : : fromValue ( ( uint32_t ) MAV_TYPE_SUBMARINE ) ;
_offlineEditingVehicleTypeMetaData - > setEnumInfo ( enumStrings , enumValues ) ;
_offlineEditingVehicleTypeFact - > setMetaData ( _offlineEditingVehicleTypeMetaData ) ;
}
}
return _offlineEditingVehicleTypeFact ;
return _offlineEditingVehicleTypeFact ;
@ -272,7 +258,7 @@ Fact* QGroundControlQmlGlobal::offlineEditingVehicleType(void)
Fact * QGroundControlQmlGlobal : : offlineEditingCruiseSpeed ( void )
Fact * QGroundControlQmlGlobal : : offlineEditingCruiseSpeed ( void )
{
{
if ( ! _offlineEditingCruiseSpeedFact ) {
if ( ! _offlineEditingCruiseSpeedFact ) {
_offlineEditingCruiseSpeedFact = new SettingsFact ( QString ( ) , " OfflineEditingCruiseSpeed " , FactMetaData : : valueTypeDouble , 16.0 ) ;
_offlineEditingCruiseSpeedFact = _createSettingsFact ( QStringLiteral ( " OfflineEditingCruiseSpeed " ) ) ;
}
}
return _offlineEditingCruiseSpeedFact ;
return _offlineEditingCruiseSpeedFact ;
}
}
@ -280,7 +266,7 @@ Fact* QGroundControlQmlGlobal::offlineEditingCruiseSpeed(void)
Fact * QGroundControlQmlGlobal : : offlineEditingHoverSpeed ( void )
Fact * QGroundControlQmlGlobal : : offlineEditingHoverSpeed ( void )
{
{
if ( ! _offlineEditingHoverSpeedFact ) {
if ( ! _offlineEditingHoverSpeedFact ) {
_offlineEditingHoverSpeedFact = new SettingsFact ( QString ( ) , " OfflineEditingHoverSpeed " , FactMetaData : : valueTypeDouble , 4.0 ) ;
_offlineEditingHoverSpeedFact = _createSettingsFact ( QStringLiteral ( " OfflineEditingHoverSpeed " ) ) ;
}
}
return _offlineEditingHoverSpeedFact ;
return _offlineEditingHoverSpeedFact ;
}
}
@ -288,6 +274,7 @@ Fact* QGroundControlQmlGlobal::offlineEditingHoverSpeed(void)
Fact * QGroundControlQmlGlobal : : distanceUnits ( void )
Fact * QGroundControlQmlGlobal : : distanceUnits ( void )
{
{
if ( ! _distanceUnitsFact ) {
if ( ! _distanceUnitsFact ) {
// Distance/Area/Speed units settings can't be loaded from json since it creates an infinite loop of meta data loading.
QStringList enumStrings ;
QStringList enumStrings ;
QVariantList enumValues ;
QVariantList enumValues ;
@ -308,6 +295,7 @@ Fact* QGroundControlQmlGlobal::distanceUnits(void)
Fact * QGroundControlQmlGlobal : : areaUnits ( void )
Fact * QGroundControlQmlGlobal : : areaUnits ( void )
{
{
if ( ! _areaUnitsFact ) {
if ( ! _areaUnitsFact ) {
// Distance/Area/Speed units settings can't be loaded from json since it creates an infinite loop of meta data loading.
QStringList enumStrings ;
QStringList enumStrings ;
QVariantList enumValues ;
QVariantList enumValues ;
@ -328,6 +316,7 @@ Fact* QGroundControlQmlGlobal::areaUnits(void)
Fact * QGroundControlQmlGlobal : : speedUnits ( void )
Fact * QGroundControlQmlGlobal : : speedUnits ( void )
{
{
if ( ! _speedUnitsFact ) {
if ( ! _speedUnitsFact ) {
// Distance/Area/Speed units settings can't be loaded from json since it creates an infinite loop of meta data loading.
QStringList enumStrings ;
QStringList enumStrings ;
QVariantList enumValues ;
QVariantList enumValues ;
@ -347,19 +336,7 @@ Fact* QGroundControlQmlGlobal::speedUnits(void)
Fact * QGroundControlQmlGlobal : : batteryPercentRemainingAnnounce ( void )
Fact * QGroundControlQmlGlobal : : batteryPercentRemainingAnnounce ( void )
{
{
if ( ! _batteryPercentRemainingAnnounceFact ) {
if ( ! _batteryPercentRemainingAnnounceFact ) {
QStringList enumStrings ;
_batteryPercentRemainingAnnounceFact = _createSettingsFact ( QStringLiteral ( " batteryPercentRemainingAnnounce " ) ) ;
QVariantList enumValues ;
_batteryPercentRemainingAnnounceFact = new SettingsFact ( QString ( ) , " batteryPercentRemainingAnnounce " , FactMetaData : : valueTypeUint32 , 30 ) ;
_batteryPercentRemainingAnnounceMetaData = new FactMetaData ( FactMetaData : : valueTypeUint32 ) ;
_batteryPercentRemainingAnnounceMetaData - > setDecimalPlaces ( 0 ) ;
_batteryPercentRemainingAnnounceMetaData - > setShortDescription ( tr ( " Percent announce " ) ) ;
_batteryPercentRemainingAnnounceMetaData - > setRawUnits ( " % " ) ;
_batteryPercentRemainingAnnounceMetaData - > setRawMin ( 0 ) ;
_batteryPercentRemainingAnnounceMetaData - > setRawMax ( 100 ) ;
_batteryPercentRemainingAnnounceFact - > setMetaData ( _batteryPercentRemainingAnnounceMetaData ) ;
}
}
return _batteryPercentRemainingAnnounceFact ;
return _batteryPercentRemainingAnnounceFact ;
@ -372,3 +349,13 @@ bool QGroundControlQmlGlobal::linesIntersect(QPointF line1A, QPointF line1B, QPo
return QLineF ( line1A , line1B ) . intersect ( QLineF ( line2A , line2B ) , & intersectPoint ) = = QLineF : : BoundedIntersection & &
return QLineF ( line1A , line1B ) . intersect ( QLineF ( line2A , line2B ) , & intersectPoint ) = = QLineF : : BoundedIntersection & &
intersectPoint ! = line1A & & intersectPoint ! = line1B ;
intersectPoint ! = line1A & & intersectPoint ! = line1B ;
}
}
QMap < QString , FactMetaData * > & QGroundControlQmlGlobal : : nameToMetaDataMap ( void ) {
static QMap < QString , FactMetaData * > map ;
if ( map . isEmpty ( ) ) {
map = FactMetaData : : createMapFromJsonFile ( " :/json/QGroundControlQmlGlobal.json " , NULL ) ;
}
return map ;
}