From b126fccb1b38ca94e33c092d9758add8a89fcb29 Mon Sep 17 00:00:00 2001 From: Michael Keller Date: Sun, 9 Jun 2024 08:13:44 +1200 Subject: [PATCH] Desktop: Fix Inconsistencies in Handling of Salinity. - add correct setting of the water type drop down for the dive shown initially after program start; - change salinity to have 3 decimals in planner, to make it consistency with the log. Fixes #4240. Reported-by: @ccsieh Signed-off-by: Michael Keller --- desktop-widgets/diveplanner.cpp | 5 ++--- desktop-widgets/diveplanner.ui | 5 ++++- desktop-widgets/tab-widgets/TabDiveInformation.cpp | 8 +++----- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/desktop-widgets/diveplanner.cpp b/desktop-widgets/diveplanner.cpp index 4ffef5104..a20b615c5 100644 --- a/desktop-widgets/diveplanner.cpp +++ b/desktop-widgets/diveplanner.cpp @@ -185,13 +185,12 @@ void DivePlannerWidget::heightChanged(const int height) void DivePlannerWidget::waterTypeUpdateTexts() { - double density; /* Do not set text in last/custom element */ for (int i = 0; i < ui.waterType->count()-1; i++) { if (ui.waterType->itemData(i) != QVariant::Invalid) { QString densityText = ui.waterType->itemText(i).split("(")[0].trimmed(); - density = ui.waterType->itemData(i).toInt() / 10000.0; - densityText.append(QString(" (%L1%2)").arg(density, 0, 'f', 2).arg(tr("kg/ℓ"))); + double density = ui.waterType->itemData(i).toInt() / 10000.0; + densityText.append(QStringLiteral(" (%L1%2)").arg(density, 0, 'f', 3).arg(tr("kg/ℓ"))); ui.waterType->setItemText(i, densityText); } } diff --git a/desktop-widgets/diveplanner.ui b/desktop-widgets/diveplanner.ui index 1b67a5fc9..74e7b3bb4 100644 --- a/desktop-widgets/diveplanner.ui +++ b/desktop-widgets/diveplanner.ui @@ -210,7 +210,7 @@ - 90 + 100 16777215 @@ -232,6 +232,9 @@ 1.000000000000000 + + 3 + diff --git a/desktop-widgets/tab-widgets/TabDiveInformation.cpp b/desktop-widgets/tab-widgets/TabDiveInformation.cpp index a0a84b66f..1b34eb242 100644 --- a/desktop-widgets/tab-widgets/TabDiveInformation.cpp +++ b/desktop-widgets/tab-widgets/TabDiveInformation.cpp @@ -224,11 +224,8 @@ void TabDiveInformation::updateData(const std::vector &, dive *currentDi setIndexNoSignal(ui->atmPressType, 0); // Set the atmospheric pressure combo box to mbar salinity_value = get_dive_salinity(currentDive); if (salinity_value) { // Set water type indicator (EN13319 = 1.020 g/l) - if (ui->waterTypeCombo->isVisible()) { // If water salinity is editable then set correct water type in combobox: - setIndexNoSignal(ui->waterTypeCombo, updateSalinityComboIndex(salinity_value)); - } else { // If water salinity is not editable: show water type as a text label - ui->waterTypeText->setText(get_water_type_string(salinity_value)); - } + setIndexNoSignal(ui->waterTypeCombo, updateSalinityComboIndex(salinity_value)); + ui->waterTypeText->setText(get_water_type_string(salinity_value)); ui->salinityText->setText(get_salinity_string(salinity_value)); } else { setIndexNoSignal(ui->waterTypeCombo, -1); @@ -349,6 +346,7 @@ void TabDiveInformation::divesChanged(const QVector &dives, DiveField fi else salinity_value = currentDive->salinity; setIndexNoSignal(ui->waterTypeCombo, updateSalinityComboIndex(salinity_value)); + ui->waterTypeText->setText(get_water_type_string(salinity_value)); ui->salinityText->setText(QString("%L1g/ℓ").arg(salinity_value / 10.0)); }