diff --git a/src/FactSystem/FactMetaData.cc b/src/FactSystem/FactMetaData.cc index b38b82b674b1fc1313ca912130c5b263571e9e15..bf71a831196c602455d0c7b5bbdc781c36cb31c3 100644 --- a/src/FactSystem/FactMetaData.cc +++ b/src/FactSystem/FactMetaData.cc @@ -1003,7 +1003,7 @@ void FactMetaData::_setAppSettingsTranslators(void) } } -const FactMetaData::AppSettingsTranslation_s* FactMetaData::_findAppSettingsHorizontalDistanceUnitsTranslation(const QString& rawUnits) +const FactMetaData::AppSettingsTranslation_s* FactMetaData::_findAppSettingsUnitsTranslation(const QString& rawUnits, UnitTypes type) { for (size_t i=0; itoolbox()->settingsManager()->unitsSettings()->horizontalDistanceUnits()->rawValue().toUInt(); - - if (pAppSettingsTranslation->unitType == UnitHorizontalDistance - && pAppSettingsTranslation->unitOption == settingsUnits) { - return pAppSettingsTranslation; - } - } - return nullptr; -} - -const FactMetaData::AppSettingsTranslation_s* FactMetaData::_findAppSettingsVerticalDistanceUnitsTranslation(const QString& rawUnits) -{ - for (size_t i=0; irawUnits.toLower()) { - continue; - } - - uint settingsUnits = qgcApp()->toolbox()->settingsManager()->unitsSettings()->verticalDistanceUnits()->rawValue().toUInt(); - - if (pAppSettingsTranslation->unitType == UnitVerticalDistance - && pAppSettingsTranslation->unitOption == settingsUnits) { - return pAppSettingsTranslation; - } - } - return nullptr; -} - -const FactMetaData::AppSettingsTranslation_s* FactMetaData::_findAppSettingsWeightUnitsTranslation(const QString& rawUnits) -{ - for (size_t i=0; irawUnits.toLower()) { - continue; - } - - uint settingsUnits = qgcApp()->toolbox()->settingsManager()->unitsSettings()->weightUnits()->rawValue().toUInt(); - - if (pAppSettingsTranslation->unitType == UnitWeight - && pAppSettingsTranslation->unitOption == settingsUnits) { - return pAppSettingsTranslation; - } - } - return nullptr; -} - -const FactMetaData::AppSettingsTranslation_s* FactMetaData::_findAppSettingsAreaUnitsTranslation(const QString& rawUnits) -{ - for (size_t i=0; irawUnits.toLower()) { - continue; - } - - uint settingsUnits = qgcApp()->toolbox()->settingsManager()->unitsSettings()->areaUnits()->rawValue().toUInt(); - - if (pAppSettingsTranslation->unitType == UnitArea - && pAppSettingsTranslation->unitOption == settingsUnits) { - return pAppSettingsTranslation; - } - } - - return nullptr; -} - -const FactMetaData::AppSettingsTranslation_s* FactMetaData::_findAppSettingsSpeedUnitsTranslation(const QString& rawUnits) -{ - for (size_t i=0; irawUnits.toLower()) { - continue; + uint settingsUnits = 0; + switch (type) { + case UnitHorizontalDistance: + settingsUnits = qgcApp()->toolbox()->settingsManager()->unitsSettings()->horizontalDistanceUnits()->rawValue().toUInt(); + break; + case UnitVerticalDistance: + settingsUnits = qgcApp()->toolbox()->settingsManager()->unitsSettings()->verticalDistanceUnits()->rawValue().toUInt(); + break; + case UnitArea: + settingsUnits = qgcApp()->toolbox()->settingsManager()->unitsSettings()->areaUnits()->rawValue().toUInt(); + break; + case UnitSpeed: + settingsUnits = qgcApp()->toolbox()->settingsManager()->unitsSettings()->speedUnits()->rawValue().toUInt(); + break; + case UnitTemperature: + settingsUnits = qgcApp()->toolbox()->settingsManager()->unitsSettings()->temperatureUnits()->rawValue().toUInt(); + break; + case UnitWeight: + settingsUnits = qgcApp()->toolbox()->settingsManager()->unitsSettings()->weightUnits()->rawValue().toUInt(); + break; + default: + assert(false); + break; } - uint settingsUnits = qgcApp()->toolbox()->settingsManager()->unitsSettings()->speedUnits()->rawValue().toUInt(); - - if (pAppSettingsTranslation->unitType == UnitSpeed + if (pAppSettingsTranslation->unitType == type && pAppSettingsTranslation->unitOption == settingsUnits) { return pAppSettingsTranslation; } @@ -1102,7 +1048,7 @@ const FactMetaData::AppSettingsTranslation_s* FactMetaData::_findAppSettingsSpee QVariant FactMetaData::metersToAppSettingsHorizontalDistanceUnits(const QVariant& meters) { - const AppSettingsTranslation_s* pAppSettingsTranslation = _findAppSettingsHorizontalDistanceUnitsTranslation("m"); + const AppSettingsTranslation_s* pAppSettingsTranslation = _findAppSettingsUnitsTranslation("m", UnitHorizontalDistance); if (pAppSettingsTranslation) { return pAppSettingsTranslation->rawTranslator(meters); } else { @@ -1112,7 +1058,7 @@ QVariant FactMetaData::metersToAppSettingsHorizontalDistanceUnits(const QVariant QVariant FactMetaData::metersToAppSettingsVerticalDistanceUnits(const QVariant& meters) { - const AppSettingsTranslation_s* pAppSettingsTranslation = _findAppSettingsVerticalDistanceUnitsTranslation("vertical m"); + const AppSettingsTranslation_s* pAppSettingsTranslation = _findAppSettingsUnitsTranslation("vertical m", UnitVerticalDistance); if (pAppSettingsTranslation) { return pAppSettingsTranslation->rawTranslator(meters); } else { @@ -1122,7 +1068,7 @@ QVariant FactMetaData::metersToAppSettingsVerticalDistanceUnits(const QVariant& QVariant FactMetaData::appSettingsHorizontalDistanceUnitsToMeters(const QVariant& distance) { - const AppSettingsTranslation_s* pAppSettingsTranslation = _findAppSettingsHorizontalDistanceUnitsTranslation("m"); + const AppSettingsTranslation_s* pAppSettingsTranslation = _findAppSettingsUnitsTranslation("m", UnitHorizontalDistance); if (pAppSettingsTranslation) { return pAppSettingsTranslation->cookedTranslator(distance); } else { @@ -1132,7 +1078,7 @@ QVariant FactMetaData::appSettingsHorizontalDistanceUnitsToMeters(const QVariant QVariant FactMetaData::appSettingsVerticalDistanceUnitsToMeters(const QVariant& distance) { - const AppSettingsTranslation_s* pAppSettingsTranslation = _findAppSettingsVerticalDistanceUnitsTranslation("alt m"); + const AppSettingsTranslation_s* pAppSettingsTranslation = _findAppSettingsUnitsTranslation("alt m", UnitVerticalDistance); if (pAppSettingsTranslation) { return pAppSettingsTranslation->cookedTranslator(distance); } else { @@ -1142,7 +1088,7 @@ QVariant FactMetaData::appSettingsVerticalDistanceUnitsToMeters(const QVariant& QString FactMetaData::appSettingsHorizontalDistanceUnitsString(void) { - const AppSettingsTranslation_s* pAppSettingsTranslation = _findAppSettingsHorizontalDistanceUnitsTranslation("m"); + const AppSettingsTranslation_s* pAppSettingsTranslation = _findAppSettingsUnitsTranslation("m", UnitHorizontalDistance); if (pAppSettingsTranslation) { return pAppSettingsTranslation->cookedUnits; } else { @@ -1152,7 +1098,7 @@ QString FactMetaData::appSettingsHorizontalDistanceUnitsString(void) QString FactMetaData::appSettingsVerticalDistanceUnitsString(void) { - const AppSettingsTranslation_s* pAppSettingsTranslation = _findAppSettingsVerticalDistanceUnitsTranslation("alt m"); + const AppSettingsTranslation_s* pAppSettingsTranslation = _findAppSettingsUnitsTranslation("alt m", UnitVerticalDistance); if (pAppSettingsTranslation) { return pAppSettingsTranslation->cookedUnits; } else { @@ -1162,7 +1108,7 @@ QString FactMetaData::appSettingsVerticalDistanceUnitsString(void) QString FactMetaData::appSettingsWeightUnitsString(void) { - const AppSettingsTranslation_s* pAppSettingsTranslation = _findAppSettingsWeightUnitsTranslation("g"); + const AppSettingsTranslation_s* pAppSettingsTranslation = _findAppSettingsUnitsTranslation("g", UnitWeight); if (pAppSettingsTranslation) { return pAppSettingsTranslation->cookedUnits; } else { @@ -1172,7 +1118,7 @@ QString FactMetaData::appSettingsWeightUnitsString(void) QVariant FactMetaData::squareMetersToAppSettingsAreaUnits(const QVariant& squareMeters) { - const AppSettingsTranslation_s* pAppSettingsTranslation = _findAppSettingsAreaUnitsTranslation("m^2"); + const AppSettingsTranslation_s* pAppSettingsTranslation = _findAppSettingsUnitsTranslation("m^2", UnitArea); if (pAppSettingsTranslation) { return pAppSettingsTranslation->rawTranslator(squareMeters); } else { @@ -1182,7 +1128,7 @@ QVariant FactMetaData::squareMetersToAppSettingsAreaUnits(const QVariant& square QVariant FactMetaData::appSettingsAreaUnitsToSquareMeters(const QVariant& area) { - const AppSettingsTranslation_s* pAppSettingsTranslation = _findAppSettingsAreaUnitsTranslation("m^2"); + const AppSettingsTranslation_s* pAppSettingsTranslation = _findAppSettingsUnitsTranslation("m^2", UnitArea); if (pAppSettingsTranslation) { return pAppSettingsTranslation->cookedTranslator(area); } else { @@ -1192,7 +1138,7 @@ QVariant FactMetaData::appSettingsAreaUnitsToSquareMeters(const QVariant& area) QString FactMetaData::appSettingsAreaUnitsString(void) { - const AppSettingsTranslation_s* pAppSettingsTranslation = _findAppSettingsAreaUnitsTranslation("m^2"); + const AppSettingsTranslation_s* pAppSettingsTranslation = _findAppSettingsUnitsTranslation("m^2", UnitArea); if (pAppSettingsTranslation) { return pAppSettingsTranslation->cookedUnits; } else { @@ -1201,7 +1147,7 @@ QString FactMetaData::appSettingsAreaUnitsString(void) } QVariant FactMetaData::gramsToAppSettingsWeightUnits(const QVariant& grams) { - const AppSettingsTranslation_s* pAppSettingsTranslation = _findAppSettingsWeightUnitsTranslation("g"); + const AppSettingsTranslation_s* pAppSettingsTranslation = _findAppSettingsUnitsTranslation("g", UnitWeight); if (pAppSettingsTranslation) { return pAppSettingsTranslation->rawTranslator(grams); } else { @@ -1210,7 +1156,7 @@ QVariant FactMetaData::gramsToAppSettingsWeightUnits(const QVariant& grams) { } QVariant FactMetaData::appSettingsWeightUnitsToGrams(const QVariant& weight) { - const AppSettingsTranslation_s* pAppSettingsTranslation = _findAppSettingsWeightUnitsTranslation("g"); + const AppSettingsTranslation_s* pAppSettingsTranslation = _findAppSettingsUnitsTranslation("g", UnitWeight); if (pAppSettingsTranslation) { return pAppSettingsTranslation->cookedTranslator(weight); } else { @@ -1220,7 +1166,7 @@ QVariant FactMetaData::appSettingsWeightUnitsToGrams(const QVariant& weight) { QString FactMetaData::appSettingsSpeedUnitsString() { - const AppSettingsTranslation_s* pAppSettingsTranslation = _findAppSettingsSpeedUnitsTranslation("m/s"); + const AppSettingsTranslation_s* pAppSettingsTranslation = _findAppSettingsUnitsTranslation("m/s", UnitSpeed); if (pAppSettingsTranslation) { return pAppSettingsTranslation->cookedUnits; } else { diff --git a/src/FactSystem/FactMetaData.h b/src/FactSystem/FactMetaData.h index 0443814248d7a4712c442c76d1dcd0f87563ba6f..d191113d0c035ae3f76f66700e08470dffad6549 100644 --- a/src/FactSystem/FactMetaData.h +++ b/src/FactSystem/FactMetaData.h @@ -285,11 +285,7 @@ private: Translator cookedTranslator; }; - static const AppSettingsTranslation_s* _findAppSettingsHorizontalDistanceUnitsTranslation(const QString& rawUnits); - static const AppSettingsTranslation_s* _findAppSettingsVerticalDistanceUnitsTranslation(const QString& rawUnits); - static const AppSettingsTranslation_s* _findAppSettingsAreaUnitsTranslation(const QString& rawUnits); - static const AppSettingsTranslation_s* _findAppSettingsWeightUnitsTranslation(const QString& rawUnits); - static const AppSettingsTranslation_s* _findAppSettingsSpeedUnitsTranslation(const QString& rawUnits); + static const AppSettingsTranslation_s* _findAppSettingsUnitsTranslation(const QString& rawUnits, UnitTypes type); static void _loadJsonDefines(const QJsonObject& jsonDefinesObject, QMap& defineMap);