Commit 783476cb authored by Don Gagne's avatar Don Gagne

Use app settings translators on params

parent 589046c1
......@@ -234,9 +234,6 @@ void FactGroup::_loadMetaData(const QString& jsonFilename)
}
}
// All FactGroup Facts use translator based on app settings
metaData->setAppSettingsTranslators();
_nameToFactMetaDataMap[name] = metaData;
}
}
......@@ -37,7 +37,7 @@ const qreal FactMetaData::UnitConsts_s::feetToMeters = 0.3048;
const FactMetaData::BuiltInTranslation_s FactMetaData::_rgBuiltInTranslations[] = {
{ "centi-degrees", "deg", FactMetaData::_centiDegreesToDegrees, FactMetaData::_degreesToCentiDegrees },
{ "radians", "deg", FactMetaData::_radiansToDegrees, FactMetaData::_degreesToRadians },
{ "norm", "%", FactMetaData::_normToPercent, FactMetaData::_percentToNorm },
{ "norm", "%", FactMetaData::_normToPercent, FactMetaData::_percentToNorm },
};
// Translations driven by app settings
......@@ -48,11 +48,11 @@ const FactMetaData::AppSettingsTranslation_s FactMetaData::_rgAppSettingsTransla
{ "m^2", "m^2", false, QGroundControlQmlGlobal::AreaUnitsSquareMeters, FactMetaData::_defaultTranslator, FactMetaData::_defaultTranslator },
{ "m", "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", "ha", false, QGroundControlQmlGlobal::AreaUnitsHectares, FactMetaData::_squareMetersToHectares, FactMetaData::_hectaresToSquareMeters },
{ "m^2", "ft^2", false, QGroundControlQmlGlobal::AreaUnitsSquareFeet, FactMetaData::_squareMetersToSquareFeet, FactMetaData::_squareFeetToSquareMeters },
{ "m^2", "ac", false, QGroundControlQmlGlobal::AreaUnitsAcres, FactMetaData::_squareMetersToAcres, FactMetaData::_acresToSquareMeters },
{ "m^2", "mi^2", false, QGroundControlQmlGlobal::AreaUnitsSquareMiles, FactMetaData::_squareMetersToSquareMiles, FactMetaData::_squareMilesToSquareMeters },
{ "m^2", "km^2", false, QGroundControlQmlGlobal::AreaUnitsSquareKilometers, FactMetaData::_squareMetersToSquareKilometers, FactMetaData::_squareKilometersToSquareMeters },
{ "m^2", "ha", false, QGroundControlQmlGlobal::AreaUnitsHectares, FactMetaData::_squareMetersToHectares, FactMetaData::_hectaresToSquareMeters },
{ "m^2", "ft^2", false, QGroundControlQmlGlobal::AreaUnitsSquareFeet, FactMetaData::_squareMetersToSquareFeet, FactMetaData::_squareFeetToSquareMeters },
{ "m^2", "ac", false, QGroundControlQmlGlobal::AreaUnitsAcres, FactMetaData::_squareMetersToAcres, FactMetaData::_acresToSquareMeters },
{ "m^2", "mi^2", false, QGroundControlQmlGlobal::AreaUnitsSquareMiles, FactMetaData::_squareMetersToSquareMiles, FactMetaData::_squareMilesToSquareMeters },
{ "m/s", "ft/s", true, QGroundControlQmlGlobal::SpeedUnitsFeetPerSecond, FactMetaData::_metersToFeet, FactMetaData::_feetToMeters },
{ "m/s", "mph", true, QGroundControlQmlGlobal::SpeedUnitsMilesPerHour, FactMetaData::_metersPerSecondToMilesPerHour, FactMetaData::_milesPerHourToMetersPerSecond },
{ "m/s", "km/h", true, QGroundControlQmlGlobal::SpeedUnitsKilometersPerHour, FactMetaData::_metersPerSecondToKilometersPerHour, FactMetaData::_kilometersPerHourToMetersPerSecond },
......@@ -383,6 +383,7 @@ void FactMetaData::setBuiltInTranslator(void)
// No translation if enum
setTranslators(_defaultTranslator, _defaultTranslator);
_cookedUnits = _rawUnits;
return;
} else {
for (size_t i=0; i<sizeof(_rgBuiltInTranslations)/sizeof(_rgBuiltInTranslations[0]); i++) {
const BuiltInTranslation_s* pBuiltInTranslation = &_rgBuiltInTranslations[i];
......@@ -390,9 +391,13 @@ void FactMetaData::setBuiltInTranslator(void)
if (pBuiltInTranslation->rawUnits == _rawUnits.toLower()) {
_cookedUnits = pBuiltInTranslation->cookedUnits;
setTranslators(pBuiltInTranslation->rawTranslator, pBuiltInTranslation->cookedTranslator);
return;
}
}
}
// Translator not yet set, try app settings translators
_setAppSettingsTranslators();
}
QVariant FactMetaData::_degreesToRadians(const QVariant& degrees)
......@@ -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()) {
for (size_t i=0; i<sizeof(_rgAppSettingsTranslations)/sizeof(_rgAppSettingsTranslations[0]); i++) {
......
......@@ -121,9 +121,6 @@ public:
/// Set the translators to the standard built in versions
void setBuiltInTranslator(void);
/// Set translators according to app settings
void setAppSettingsTranslators(void);
/// Converts the specified raw value, validating against meta data
/// @param rawValue Value to convert, can be string
/// @param convertOnly true: convert to correct type only, do not validate against meta data
......@@ -144,6 +141,7 @@ public:
private:
QVariant _minForType(void) const;
QVariant _maxForType(void) const;
void _setAppSettingsTranslators(void);
// Built in translators
static QVariant _defaultTranslator(const QVariant& from) { return from; }
......
......@@ -193,7 +193,6 @@ void SimpleMissionItem::_setupMetaData(void)
_altitudeMetaData = new FactMetaData(FactMetaData::valueTypeDouble);
_altitudeMetaData->setRawUnits("m");
_altitudeMetaData->setDecimalPlaces(2);
_altitudeMetaData->setAppSettingsTranslators();
enumStrings.clear();
enumValues.clear();
......@@ -375,7 +374,6 @@ QmlObjectListModel* SimpleMissionItem::textFieldFacts(void)
paramMetaData->setDecimalPlaces(paramInfo->decimalPlaces());
paramMetaData->setEnumInfo(paramInfo->enumStrings(), paramInfo->enumValues());
paramMetaData->setRawUnits(paramInfo->units());
paramMetaData->setAppSettingsTranslators();
paramFact->setMetaData(paramMetaData);
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