Commit c57ee792 authored by Don Gagne's avatar Don Gagne Committed by GitHub

Merge pull request #3954 from DonLakeFlyer/Translators

Use app settings translators on params
parents 957a4b1b 783476cb
...@@ -234,9 +234,6 @@ void FactGroup::_loadMetaData(const QString& jsonFilename) ...@@ -234,9 +234,6 @@ void FactGroup::_loadMetaData(const QString& jsonFilename)
} }
} }
// All FactGroup Facts use translator based on app settings
metaData->setAppSettingsTranslators();
_nameToFactMetaDataMap[name] = metaData; _nameToFactMetaDataMap[name] = metaData;
} }
} }
...@@ -37,7 +37,7 @@ const qreal FactMetaData::UnitConsts_s::feetToMeters = 0.3048; ...@@ -37,7 +37,7 @@ const qreal FactMetaData::UnitConsts_s::feetToMeters = 0.3048;
const FactMetaData::BuiltInTranslation_s FactMetaData::_rgBuiltInTranslations[] = { const FactMetaData::BuiltInTranslation_s FactMetaData::_rgBuiltInTranslations[] = {
{ "centi-degrees", "deg", FactMetaData::_centiDegreesToDegrees, FactMetaData::_degreesToCentiDegrees }, { "centi-degrees", "deg", FactMetaData::_centiDegreesToDegrees, FactMetaData::_degreesToCentiDegrees },
{ "radians", "deg", FactMetaData::_radiansToDegrees, FactMetaData::_degreesToRadians }, { "radians", "deg", FactMetaData::_radiansToDegrees, FactMetaData::_degreesToRadians },
{ "norm", "%", FactMetaData::_normToPercent, FactMetaData::_percentToNorm }, { "norm", "%", FactMetaData::_normToPercent, FactMetaData::_percentToNorm },
}; };
// Translations driven by app settings // Translations driven by app settings
...@@ -48,11 +48,11 @@ const FactMetaData::AppSettingsTranslation_s FactMetaData::_rgAppSettingsTransla ...@@ -48,11 +48,11 @@ const FactMetaData::AppSettingsTranslation_s FactMetaData::_rgAppSettingsTransla
{ "m^2", "m^2", false, QGroundControlQmlGlobal::AreaUnitsSquareMeters, FactMetaData::_defaultTranslator, FactMetaData::_defaultTranslator }, { "m^2", "m^2", false, QGroundControlQmlGlobal::AreaUnitsSquareMeters, FactMetaData::_defaultTranslator, FactMetaData::_defaultTranslator },
{ "m", "ft", false, QGroundControlQmlGlobal::DistanceUnitsFeet, FactMetaData::_metersToFeet, FactMetaData::_feetToMeters }, { "m", "ft", false, QGroundControlQmlGlobal::DistanceUnitsFeet, FactMetaData::_metersToFeet, FactMetaData::_feetToMeters },
{ "meters", "ft", false, QGroundControlQmlGlobal::DistanceUnitsFeet, FactMetaData::_metersToFeet, FactMetaData::_feetToMeters }, { "meters", "ft", false, QGroundControlQmlGlobal::DistanceUnitsFeet, FactMetaData::_metersToFeet, FactMetaData::_feetToMeters },
{ "m^2", "km^2", false, QGroundControlQmlGlobal::AreaUnitsSquareKilometers, FactMetaData::_squareMetersToSquareKilometers, FactMetaData::_squareKilometersToSquareMeters }, { "m^2", "km^2", false, QGroundControlQmlGlobal::AreaUnitsSquareKilometers, FactMetaData::_squareMetersToSquareKilometers, FactMetaData::_squareKilometersToSquareMeters },
{ "m^2", "ha", false, QGroundControlQmlGlobal::AreaUnitsHectares, FactMetaData::_squareMetersToHectares, FactMetaData::_hectaresToSquareMeters }, { "m^2", "ha", false, QGroundControlQmlGlobal::AreaUnitsHectares, FactMetaData::_squareMetersToHectares, FactMetaData::_hectaresToSquareMeters },
{ "m^2", "ft^2", false, QGroundControlQmlGlobal::AreaUnitsSquareFeet, FactMetaData::_squareMetersToSquareFeet, FactMetaData::_squareFeetToSquareMeters }, { "m^2", "ft^2", false, QGroundControlQmlGlobal::AreaUnitsSquareFeet, FactMetaData::_squareMetersToSquareFeet, FactMetaData::_squareFeetToSquareMeters },
{ "m^2", "ac", false, QGroundControlQmlGlobal::AreaUnitsAcres, FactMetaData::_squareMetersToAcres, FactMetaData::_acresToSquareMeters }, { "m^2", "ac", false, QGroundControlQmlGlobal::AreaUnitsAcres, FactMetaData::_squareMetersToAcres, FactMetaData::_acresToSquareMeters },
{ "m^2", "mi^2", false, QGroundControlQmlGlobal::AreaUnitsSquareMiles, FactMetaData::_squareMetersToSquareMiles, FactMetaData::_squareMilesToSquareMeters }, { "m^2", "mi^2", false, QGroundControlQmlGlobal::AreaUnitsSquareMiles, FactMetaData::_squareMetersToSquareMiles, FactMetaData::_squareMilesToSquareMeters },
{ "m/s", "ft/s", true, QGroundControlQmlGlobal::SpeedUnitsFeetPerSecond, FactMetaData::_metersToFeet, FactMetaData::_feetToMeters }, { "m/s", "ft/s", true, QGroundControlQmlGlobal::SpeedUnitsFeetPerSecond, FactMetaData::_metersToFeet, FactMetaData::_feetToMeters },
{ "m/s", "mph", true, QGroundControlQmlGlobal::SpeedUnitsMilesPerHour, FactMetaData::_metersPerSecondToMilesPerHour, FactMetaData::_milesPerHourToMetersPerSecond }, { "m/s", "mph", true, QGroundControlQmlGlobal::SpeedUnitsMilesPerHour, FactMetaData::_metersPerSecondToMilesPerHour, FactMetaData::_milesPerHourToMetersPerSecond },
{ "m/s", "km/h", true, QGroundControlQmlGlobal::SpeedUnitsKilometersPerHour, FactMetaData::_metersPerSecondToKilometersPerHour, FactMetaData::_kilometersPerHourToMetersPerSecond }, { "m/s", "km/h", true, QGroundControlQmlGlobal::SpeedUnitsKilometersPerHour, FactMetaData::_metersPerSecondToKilometersPerHour, FactMetaData::_kilometersPerHourToMetersPerSecond },
...@@ -383,6 +383,7 @@ void FactMetaData::setBuiltInTranslator(void) ...@@ -383,6 +383,7 @@ void FactMetaData::setBuiltInTranslator(void)
// No translation if enum // No translation if enum
setTranslators(_defaultTranslator, _defaultTranslator); setTranslators(_defaultTranslator, _defaultTranslator);
_cookedUnits = _rawUnits; _cookedUnits = _rawUnits;
return;
} else { } else {
for (size_t i=0; i<sizeof(_rgBuiltInTranslations)/sizeof(_rgBuiltInTranslations[0]); i++) { for (size_t i=0; i<sizeof(_rgBuiltInTranslations)/sizeof(_rgBuiltInTranslations[0]); i++) {
const BuiltInTranslation_s* pBuiltInTranslation = &_rgBuiltInTranslations[i]; const BuiltInTranslation_s* pBuiltInTranslation = &_rgBuiltInTranslations[i];
...@@ -390,9 +391,13 @@ void FactMetaData::setBuiltInTranslator(void) ...@@ -390,9 +391,13 @@ void FactMetaData::setBuiltInTranslator(void)
if (pBuiltInTranslation->rawUnits == _rawUnits.toLower()) { if (pBuiltInTranslation->rawUnits == _rawUnits.toLower()) {
_cookedUnits = pBuiltInTranslation->cookedUnits; _cookedUnits = pBuiltInTranslation->cookedUnits;
setTranslators(pBuiltInTranslation->rawTranslator, pBuiltInTranslation->cookedTranslator); setTranslators(pBuiltInTranslation->rawTranslator, pBuiltInTranslation->cookedTranslator);
return;
} }
} }
} }
// Translator not yet set, try app settings translators
_setAppSettingsTranslators();
} }
QVariant FactMetaData::_degreesToRadians(const QVariant& degrees) QVariant FactMetaData::_degreesToRadians(const QVariant& degrees)
...@@ -584,7 +589,9 @@ size_t FactMetaData::typeToSize(ValueType_t type) ...@@ -584,7 +589,9 @@ size_t FactMetaData::typeToSize(ValueType_t type)
} }
} }
void FactMetaData::setAppSettingsTranslators(void)
/// Set translators according to app settings
void FactMetaData::_setAppSettingsTranslators(void)
{ {
if (!_enumStrings.count()) { if (!_enumStrings.count()) {
for (size_t i=0; i<sizeof(_rgAppSettingsTranslations)/sizeof(_rgAppSettingsTranslations[0]); i++) { for (size_t i=0; i<sizeof(_rgAppSettingsTranslations)/sizeof(_rgAppSettingsTranslations[0]); i++) {
......
...@@ -121,9 +121,6 @@ public: ...@@ -121,9 +121,6 @@ public:
/// Set the translators to the standard built in versions /// Set the translators to the standard built in versions
void setBuiltInTranslator(void); void setBuiltInTranslator(void);
/// Set translators according to app settings
void setAppSettingsTranslators(void);
/// Converts the specified raw value, validating against meta data /// Converts the specified raw value, validating against meta data
/// @param rawValue Value to convert, can be string /// @param rawValue Value to convert, can be string
/// @param convertOnly true: convert to correct type only, do not validate against meta data /// @param convertOnly true: convert to correct type only, do not validate against meta data
...@@ -144,6 +141,7 @@ public: ...@@ -144,6 +141,7 @@ public:
private: private:
QVariant _minForType(void) const; QVariant _minForType(void) const;
QVariant _maxForType(void) const; QVariant _maxForType(void) const;
void _setAppSettingsTranslators(void);
// Built in translators // Built in translators
static QVariant _defaultTranslator(const QVariant& from) { return from; } static QVariant _defaultTranslator(const QVariant& from) { return from; }
......
...@@ -195,7 +195,6 @@ void SimpleMissionItem::_setupMetaData(void) ...@@ -195,7 +195,6 @@ void SimpleMissionItem::_setupMetaData(void)
_altitudeMetaData = new FactMetaData(FactMetaData::valueTypeDouble); _altitudeMetaData = new FactMetaData(FactMetaData::valueTypeDouble);
_altitudeMetaData->setRawUnits("m"); _altitudeMetaData->setRawUnits("m");
_altitudeMetaData->setDecimalPlaces(2); _altitudeMetaData->setDecimalPlaces(2);
_altitudeMetaData->setAppSettingsTranslators();
enumStrings.clear(); enumStrings.clear();
enumValues.clear(); enumValues.clear();
...@@ -378,7 +377,6 @@ QmlObjectListModel* SimpleMissionItem::textFieldFacts(void) ...@@ -378,7 +377,6 @@ QmlObjectListModel* SimpleMissionItem::textFieldFacts(void)
paramMetaData->setDecimalPlaces(paramInfo->decimalPlaces()); paramMetaData->setDecimalPlaces(paramInfo->decimalPlaces());
paramMetaData->setEnumInfo(paramInfo->enumStrings(), paramInfo->enumValues()); paramMetaData->setEnumInfo(paramInfo->enumStrings(), paramInfo->enumValues());
paramMetaData->setRawUnits(paramInfo->units()); paramMetaData->setRawUnits(paramInfo->units());
paramMetaData->setAppSettingsTranslators();
paramFact->setMetaData(paramMetaData); paramFact->setMetaData(paramMetaData);
model->append(paramFact); model->append(paramFact);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment