/**************************************************************************** * * (c) 2009-2016 QGROUNDCONTROL PROJECT * * QGroundControl is licensed according to the terms in the file * COPYING.md in the root of the source code directory. * ****************************************************************************/ #include "UnitsSettings.h" #include #include DECLARE_SETTINGGROUP(Units, "Units") { qmlRegisterUncreatableType("QGroundControl.SettingsManager", 1, 0, "UnitsSettings", "Reference only"); } DECLARE_SETTINGSFACT_NO_FUNC(UnitsSettings, distanceUnits) { 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; QVariantList enumValues; enumStrings << "Feet" << "Meters"; enumValues << QVariant::fromValue(static_cast(DistanceUnitsFeet)) << QVariant::fromValue(static_cast(DistanceUnitsMeters)); FactMetaData* metaData = new FactMetaData(FactMetaData::valueTypeUint32, this); metaData->setName(distanceUnitsName); metaData->setShortDescription("Distance units"); metaData->setEnumInfo(enumStrings, enumValues); metaData->setRawDefaultValue(DistanceUnitsMeters); metaData->setQGCRebootRequired(true); _distanceUnitsFact = new SettingsFact(_settingsGroup, metaData, this); } return _distanceUnitsFact; } DECLARE_SETTINGSFACT_NO_FUNC(UnitsSettings, areaUnits) { 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; QVariantList enumValues; enumStrings << "SquareFeet" << "SquareMeters" << "SquareKilometers" << "Hectares" << "Acres" << "SquareMiles"; enumValues << QVariant::fromValue(static_cast(AreaUnitsSquareFeet)) << QVariant::fromValue(static_cast(AreaUnitsSquareMeters)) << QVariant::fromValue(static_cast(AreaUnitsSquareKilometers)) << QVariant::fromValue(static_cast(AreaUnitsHectares)) << QVariant::fromValue(static_cast(AreaUnitsAcres)) << QVariant::fromValue(static_cast(AreaUnitsSquareMiles)); FactMetaData* metaData = new FactMetaData(FactMetaData::valueTypeUint32, this); metaData->setName(areaUnitsName); metaData->setShortDescription("Area units"); metaData->setEnumInfo(enumStrings, enumValues); metaData->setRawDefaultValue(AreaUnitsSquareMeters); metaData->setQGCRebootRequired(true); _areaUnitsFact = new SettingsFact(_settingsGroup, metaData, this); } return _areaUnitsFact; } DECLARE_SETTINGSFACT_NO_FUNC(UnitsSettings, speedUnits) { 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; QVariantList enumValues; enumStrings << "Feet/second" << "Meters/second" << "Miles/hour" << "Kilometers/hour" << "Knots"; enumValues << QVariant::fromValue(static_cast(SpeedUnitsFeetPerSecond)) << QVariant::fromValue(static_cast(SpeedUnitsMetersPerSecond)) << QVariant::fromValue(static_cast(SpeedUnitsMilesPerHour)) << QVariant::fromValue(static_cast(SpeedUnitsKilometersPerHour)) << QVariant::fromValue(static_cast(SpeedUnitsKnots)); FactMetaData* metaData = new FactMetaData(FactMetaData::valueTypeUint32, this); metaData->setName(speedUnitsName); metaData->setShortDescription("Speed units"); metaData->setEnumInfo(enumStrings, enumValues); metaData->setRawDefaultValue(SpeedUnitsMetersPerSecond); metaData->setQGCRebootRequired(true); _speedUnitsFact = new SettingsFact(_settingsGroup, metaData, this); } return _speedUnitsFact; } DECLARE_SETTINGSFACT_NO_FUNC(UnitsSettings, temperatureUnits) { if (!_temperatureUnitsFact) { // Units settings can't be loaded from json since it creates an infinite loop of meta data loading. QStringList enumStrings; QVariantList enumValues; enumStrings << "Celsius" << "Farenheit"; enumValues << QVariant::fromValue(static_cast(TemperatureUnitsCelsius)) << QVariant::fromValue(static_cast(TemperatureUnitsFarenheit)); FactMetaData* metaData = new FactMetaData(FactMetaData::valueTypeUint32, this); metaData->setName(temperatureUnitsName); metaData->setShortDescription("Temperature units"); metaData->setEnumInfo(enumStrings, enumValues); metaData->setRawDefaultValue(TemperatureUnitsCelsius); metaData->setQGCRebootRequired(true); _temperatureUnitsFact = new SettingsFact(_settingsGroup, metaData, this); } return _temperatureUnitsFact; }