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)
}
}
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++) {
const AppSettingsTranslation_s* pAppSettingsTranslation = &_rgAppSettingsTranslations[i];
......@@ -1012,86 +1012,32 @@ const FactMetaData::AppSettingsTranslation_s* FactMetaData::_findAppSettingsHori
continue;
}
uint settingsUnits = qgcApp()->toolbox()->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; 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()->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; 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 = 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 {
......
......@@ -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<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