Unverified Commit 37d3db3d authored by Don Gagne's avatar Don Gagne Committed by GitHub

Merge pull request #8820 from airmap/speed_units

appSettingsSpeedUnitsString() method added
parents 7146e5fe 05314056
...@@ -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,67 +1012,31 @@ const FactMetaData::AppSettingsTranslation_s* FactMetaData::_findAppSettingsHori ...@@ -1012,67 +1012,31 @@ const FactMetaData::AppSettingsTranslation_s* FactMetaData::_findAppSettingsHori
continue; continue;
} }
uint settingsUnits = qgcApp()->toolbox()->settingsManager()->unitsSettings()->horizontalDistanceUnits()->rawValue().toUInt(); uint unitOption = 0;
auto unitsSettings = qgcApp()->toolbox()->settingsManager()->unitsSettings();
if (pAppSettingsTranslation->unitType == UnitHorizontalDistance switch (type) {
&& pAppSettingsTranslation->unitOption == settingsUnits) { case UnitHorizontalDistance:
return pAppSettingsTranslation; unitOption = unitsSettings->horizontalDistanceUnits()->rawValue().toUInt();
} break;
} case UnitVerticalDistance:
return nullptr; unitOption = unitsSettings->verticalDistanceUnits()->rawValue().toUInt();
} break;
case UnitArea:
const FactMetaData::AppSettingsTranslation_s* FactMetaData::_findAppSettingsVerticalDistanceUnitsTranslation(const QString& rawUnits) unitOption = unitsSettings->areaUnits()->rawValue().toUInt();
{ break;
for (size_t i=0; i<sizeof(_rgAppSettingsTranslations)/sizeof(_rgAppSettingsTranslations[0]); i++) { case UnitSpeed:
const AppSettingsTranslation_s* pAppSettingsTranslation = &_rgAppSettingsTranslations[i]; unitOption = unitsSettings->speedUnits()->rawValue().toUInt();
break;
if (rawUnits.toLower() != pAppSettingsTranslation->rawUnits.toLower()) { case UnitTemperature:
continue; unitOption = unitsSettings->temperatureUnits()->rawValue().toUInt();
} break;
case UnitWeight:
uint settingsUnits = qgcApp()->toolbox()->settingsManager()->unitsSettings()->verticalDistanceUnits()->rawValue().toUInt(); unitOption = unitsSettings->weightUnits()->rawValue().toUInt();
break;
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 == type
&& pAppSettingsTranslation->unitOption == unitOption) {
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 pAppSettingsTranslation;
} }
} }
...@@ -1082,7 +1046,7 @@ const FactMetaData::AppSettingsTranslation_s* FactMetaData::_findAppSettingsArea ...@@ -1082,7 +1046,7 @@ const FactMetaData::AppSettingsTranslation_s* FactMetaData::_findAppSettingsArea
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 {
...@@ -1092,7 +1056,7 @@ QVariant FactMetaData::metersToAppSettingsHorizontalDistanceUnits(const QVariant ...@@ -1092,7 +1056,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 {
...@@ -1102,7 +1066,7 @@ QVariant FactMetaData::metersToAppSettingsVerticalDistanceUnits(const QVariant& ...@@ -1102,7 +1066,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 {
...@@ -1112,7 +1076,7 @@ QVariant FactMetaData::appSettingsHorizontalDistanceUnitsToMeters(const QVariant ...@@ -1112,7 +1076,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("vertical m", UnitVerticalDistance);
if (pAppSettingsTranslation) { if (pAppSettingsTranslation) {
return pAppSettingsTranslation->cookedTranslator(distance); return pAppSettingsTranslation->cookedTranslator(distance);
} else { } else {
...@@ -1122,7 +1086,7 @@ QVariant FactMetaData::appSettingsVerticalDistanceUnitsToMeters(const QVariant& ...@@ -1122,7 +1086,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 {
...@@ -1132,7 +1096,7 @@ QString FactMetaData::appSettingsHorizontalDistanceUnitsString(void) ...@@ -1132,7 +1096,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("vertical m", UnitVerticalDistance);
if (pAppSettingsTranslation) { if (pAppSettingsTranslation) {
return pAppSettingsTranslation->cookedUnits; return pAppSettingsTranslation->cookedUnits;
} else { } else {
...@@ -1142,7 +1106,7 @@ QString FactMetaData::appSettingsVerticalDistanceUnitsString(void) ...@@ -1142,7 +1106,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 {
...@@ -1152,7 +1116,7 @@ QString FactMetaData::appSettingsWeightUnitsString(void) ...@@ -1152,7 +1116,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 {
...@@ -1162,7 +1126,7 @@ QVariant FactMetaData::squareMetersToAppSettingsAreaUnits(const QVariant& square ...@@ -1162,7 +1126,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 {
...@@ -1172,7 +1136,7 @@ QVariant FactMetaData::appSettingsAreaUnitsToSquareMeters(const QVariant& area) ...@@ -1172,7 +1136,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 {
...@@ -1181,7 +1145,7 @@ QString FactMetaData::appSettingsAreaUnitsString(void) ...@@ -1181,7 +1145,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 {
...@@ -1190,7 +1154,7 @@ QVariant FactMetaData::gramsToAppSettingsWeightUnits(const QVariant& grams) { ...@@ -1190,7 +1154,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 {
...@@ -1198,6 +1162,15 @@ QVariant FactMetaData::appSettingsWeightUnitsToGrams(const QVariant& weight) { ...@@ -1198,6 +1162,15 @@ QVariant FactMetaData::appSettingsWeightUnitsToGrams(const QVariant& weight) {
} }
} }
QString FactMetaData::appSettingsSpeedUnitsString()
{
const AppSettingsTranslation_s* pAppSettingsTranslation = _findAppSettingsUnitsTranslation("m/s", UnitSpeed);
if (pAppSettingsTranslation) {
return pAppSettingsTranslation->cookedUnits;
} else {
return QStringLiteral("m/s");
}
}
double FactMetaData::cookedIncrement(void) const double FactMetaData::cookedIncrement(void) const
{ {
......
...@@ -95,6 +95,9 @@ public: ...@@ -95,6 +95,9 @@ public:
/// Returns the string for distance units which has configued by user /// Returns the string for distance units which has configued by user
static QString appSettingsAreaUnitsString(void); static QString appSettingsAreaUnitsString(void);
/// Returns the string for speed units which has configued by user
static QString appSettingsSpeedUnitsString();
static const QString defaultCategory (); static const QString defaultCategory ();
static const QString defaultGroup (); static const QString defaultGroup ();
...@@ -282,10 +285,7 @@ private: ...@@ -282,10 +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 void _loadJsonDefines(const QJsonObject& jsonDefinesObject, QMap<QString, QString>& defineMap); static void _loadJsonDefines(const QJsonObject& jsonDefinesObject, QMap<QString, QString>& defineMap);
......
...@@ -25,6 +25,7 @@ public: ...@@ -25,6 +25,7 @@ public:
Q_PROPERTY(QString appSettingsVerticalDistanceUnitsString READ appSettingsVerticalDistanceUnitsString CONSTANT) Q_PROPERTY(QString appSettingsVerticalDistanceUnitsString READ appSettingsVerticalDistanceUnitsString CONSTANT)
Q_PROPERTY(QString appSettingsAreaUnitsString READ appSettingsAreaUnitsString CONSTANT) Q_PROPERTY(QString appSettingsAreaUnitsString READ appSettingsAreaUnitsString CONSTANT)
Q_PROPERTY(QString appSettingsWeightUnitsString READ appSettingsWeightUnitsString CONSTANT) Q_PROPERTY(QString appSettingsWeightUnitsString READ appSettingsWeightUnitsString CONSTANT)
Q_PROPERTY(QString appSettingsSpeedUnitsString READ appSettingsSpeedUnitsString CONSTANT)
/// Converts from meters to the user specified distance unit /// Converts from meters to the user specified distance unit
Q_INVOKABLE QVariant metersToAppSettingsHorizontalDistanceUnits(const QVariant& meters) const { return FactMetaData::metersToAppSettingsHorizontalDistanceUnits(meters); } Q_INVOKABLE QVariant metersToAppSettingsHorizontalDistanceUnits(const QVariant& meters) const { return FactMetaData::metersToAppSettingsHorizontalDistanceUnits(meters); }
...@@ -58,6 +59,9 @@ public: ...@@ -58,6 +59,9 @@ public:
QString appSettingsAreaUnitsString(void) const { return FactMetaData::appSettingsAreaUnitsString(); } QString appSettingsAreaUnitsString(void) const { return FactMetaData::appSettingsAreaUnitsString(); }
/// Returns the string for speed units which has configued by user
QString appSettingsSpeedUnitsString() { return FactMetaData::appSettingsSpeedUnitsString(); }
Q_INVOKABLE double degreesToRadians(double degrees) { return qDegreesToRadians(degrees); } Q_INVOKABLE double degreesToRadians(double degrees) { return qDegreesToRadians(degrees); }
Q_INVOKABLE double radiansToDegrees(double radians) { return qRadiansToDegrees(radians); } Q_INVOKABLE double radiansToDegrees(double radians) { return qRadiansToDegrees(radians); }
}; };
......
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