From 0dfa8f0e0082d05bb1ed5d7fca34dbb8e0bca2b9 Mon Sep 17 00:00:00 2001 From: Ale Martinez Date: Thu, 24 Sep 2020 15:00:39 -0300 Subject: [PATCH] Fix Measures conversion error on Athlete Options When using imperial units --- src/Gui/AthletePages.cpp | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/Gui/AthletePages.cpp b/src/Gui/AthletePages.cpp index 74f805dc8..2a9160707 100644 --- a/src/Gui/AthletePages.cpp +++ b/src/Gui/AthletePages.cpp @@ -814,8 +814,11 @@ MeasuresPage::addOReditClicked() } addMeasure.when = dateTimeEdit->dateTime(); - for (int k = 0; k < valuesEdit.count(); k++) - addMeasure.values[k] = valuesEdit[k]->value(); + QList unitsFactors = measuresGroup->getFieldUnitsFactors(); + for (int k = 0; k < valuesEdit.count(); k++) { + const double unitsFactor = (metricUnits ? 1.0 : unitsFactors[k]); + addMeasure.values[k] = valuesEdit[k]->value() / unitsFactor; + } addMeasure.comment = comment->text(); addMeasure.source = Measure::Manual; addMeasure.originalSource = ""; @@ -877,8 +880,11 @@ MeasuresPage::rangeSelectionChanged() Measure current = measures[index]; dateTimeEdit->setDateTime(current.when); - for (int k = 0; k < valuesEdit.count(); k++) - valuesEdit[k]->setValue(current.values[k]); + QList unitsFactors = measuresGroup->getFieldUnitsFactors(); + for (int k = 0; k < valuesEdit.count(); k++) { + const double unitsFactor = (metricUnits ? 1.0 : unitsFactors[k]); + valuesEdit[k]->setValue(current.values[k]*unitsFactor); + } comment->setText(current.comment); updateButton->hide();