Commit d3faaf5e authored by Aleksey Kontsevich's avatar Aleksey Kontsevich

Refactor FactMetaData::_findAppSettings*Translation() into single worker function

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