diff --git a/src/FactSystem/FactGroup.cc b/src/FactSystem/FactGroup.cc index 23db60a8341dbe684a846cadc02eba637c4bbf4d..29c265a38b7f16eda749edc18c61ee2cda6bc69b 100644 --- a/src/FactSystem/FactGroup.cc +++ b/src/FactSystem/FactGroup.cc @@ -234,9 +234,6 @@ void FactGroup::_loadMetaData(const QString& jsonFilename) } } - // All FactGroup Facts use translator based on app settings - metaData->setAppSettingsTranslators(); - _nameToFactMetaDataMap[name] = metaData; } } diff --git a/src/FactSystem/FactMetaData.cc b/src/FactSystem/FactMetaData.cc index 67ef286bdb26085136ad4a61c8c4f8cc6c5ca2ca..322aa9ccd3ccde0a4a569946bc99084ec47ed753 100644 --- a/src/FactSystem/FactMetaData.cc +++ b/src/FactSystem/FactMetaData.cc @@ -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; irawUnits == _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; isetRawUnits("m"); _altitudeMetaData->setDecimalPlaces(2); - _altitudeMetaData->setAppSettingsTranslators(); enumStrings.clear(); enumValues.clear(); @@ -378,7 +377,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);