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)
}
}
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,67 +1012,31 @@ 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 unitOption = 0;
auto unitsSettings = qgcApp()->toolbox()->settingsManager()->unitsSettings();
switch (type) {
case UnitHorizontalDistance:
unitOption = unitsSettings->horizontalDistanceUnits()->rawValue().toUInt();
break;
case UnitVerticalDistance:
unitOption = unitsSettings->verticalDistanceUnits()->rawValue().toUInt();
break;
case UnitArea:
unitOption = unitsSettings->areaUnits()->rawValue().toUInt();
break;
case UnitSpeed:
unitOption = unitsSettings->speedUnits()->rawValue().toUInt();
break;
case UnitTemperature:
unitOption = unitsSettings->temperatureUnits()->rawValue().toUInt();
break;
case UnitWeight:
unitOption = unitsSettings->weightUnits()->rawValue().toUInt();
break;
}
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) {
if (pAppSettingsTranslation->unitType == type
&& pAppSettingsTranslation->unitOption == unitOption) {
return pAppSettingsTranslation;
}
}
......@@ -1082,7 +1046,7 @@ const FactMetaData::AppSettingsTranslation_s* FactMetaData::_findAppSettingsArea
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 {
......@@ -1092,7 +1056,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 {
......@@ -1102,7 +1066,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 {
......@@ -1112,7 +1076,7 @@ QVariant FactMetaData::appSettingsHorizontalDistanceUnitsToMeters(const QVariant
QVariant FactMetaData::appSettingsVerticalDistanceUnitsToMeters(const QVariant& distance)
{
const AppSettingsTranslation_s* pAppSettingsTranslation = _findAppSettingsVerticalDistanceUnitsTranslation("alt m");
const AppSettingsTranslation_s* pAppSettingsTranslation = _findAppSettingsUnitsTranslation("vertical m", UnitVerticalDistance);
if (pAppSettingsTranslation) {
return pAppSettingsTranslation->cookedTranslator(distance);
} else {
......@@ -1122,7 +1086,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 {
......@@ -1132,7 +1096,7 @@ QString FactMetaData::appSettingsHorizontalDistanceUnitsString(void)
QString FactMetaData::appSettingsVerticalDistanceUnitsString(void)
{
const AppSettingsTranslation_s* pAppSettingsTranslation = _findAppSettingsVerticalDistanceUnitsTranslation("alt m");
const AppSettingsTranslation_s* pAppSettingsTranslation = _findAppSettingsUnitsTranslation("vertical m", UnitVerticalDistance);
if (pAppSettingsTranslation) {
return pAppSettingsTranslation->cookedUnits;
} else {
......@@ -1142,7 +1106,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 {
......@@ -1152,7 +1116,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 {
......@@ -1162,7 +1126,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 {
......@@ -1172,7 +1136,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 {
......@@ -1181,7 +1145,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 {
......@@ -1190,7 +1154,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 {
......@@ -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
{
......
......@@ -95,6 +95,9 @@ public:
/// Returns the string for distance units which has configued by user
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 defaultGroup ();
......@@ -282,10 +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* _findAppSettingsUnitsTranslation(const QString& rawUnits, UnitTypes type);
static void _loadJsonDefines(const QJsonObject& jsonDefinesObject, QMap<QString, QString>& defineMap);
......
......@@ -25,6 +25,7 @@ public:
Q_PROPERTY(QString appSettingsVerticalDistanceUnitsString READ appSettingsVerticalDistanceUnitsString CONSTANT)
Q_PROPERTY(QString appSettingsAreaUnitsString READ appSettingsAreaUnitsString CONSTANT)
Q_PROPERTY(QString appSettingsWeightUnitsString READ appSettingsWeightUnitsString CONSTANT)
Q_PROPERTY(QString appSettingsSpeedUnitsString READ appSettingsSpeedUnitsString CONSTANT)
/// Converts from meters to the user specified distance unit
Q_INVOKABLE QVariant metersToAppSettingsHorizontalDistanceUnits(const QVariant& meters) const { return FactMetaData::metersToAppSettingsHorizontalDistanceUnits(meters); }
......@@ -58,6 +59,9 @@ public:
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 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