diff options
author | Stefan Fuchs <sfuchs@gmx.de> | 2017-10-09 08:46:18 +0200 |
---|---|---|
committer | Lubomir I. Ivanov <neolit123@gmail.com> | 2017-10-09 11:49:29 +0300 |
commit | 78cda85444a9b9ec384e19ec17686f2ce7c307ec (patch) | |
tree | 1e0e74006b7a9afdf7bd9046d1df459122c202ca /qt-models | |
parent | 2cb5d45231b65a713cad0808badde250594b49de (diff) | |
download | subsurface-78cda85444a9b9ec384e19ec17686f2ce7c307ec.tar.gz |
Display units in dive list table based on prefs option
Add a preferences option which enables or disables display of units in the
main dive liste table.
Signed-off-by: Stefan Fuchs <sfuchs@gmx.de>
Diffstat (limited to 'qt-models')
-rw-r--r-- | qt-models/divetripmodel.cpp | 54 | ||||
-rw-r--r-- | qt-models/divetripmodel.h | 3 |
2 files changed, 44 insertions, 13 deletions
diff --git a/qt-models/divetripmodel.cpp b/qt-models/divetripmodel.cpp index 5777ae88a..2a0b29449 100644 --- a/qt-models/divetripmodel.cpp +++ b/qt-models/divetripmodel.cpp @@ -157,16 +157,16 @@ QVariant DiveItem::data(int column, int role) const retVal = displayDate(); break; case DEPTH: - retVal = displayDepth(); + retVal = prefs.units.show_units_table ? displayDepthWithUnit() : displayDepth(); break; case DURATION: retVal = displayDuration(); break; case TEMPERATURE: - retVal = displayTemperature(); + retVal = prefs.units.show_units_table ? retVal = displayTemperatureWithUnit() : displayTemperature(); break; case TOTALWEIGHT: - retVal = displayWeight(); + retVal = prefs.units.show_units_table ? retVal = displayWeightWithUnit() : displayWeight(); break; case SUIT: retVal = QString(dive->suit); @@ -175,13 +175,16 @@ QVariant DiveItem::data(int column, int role) const retVal = QString(dive->cylinder[0].type.description); break; case SAC: - retVal = displaySac(); + retVal = prefs.units.show_units_table ? retVal = displaySacWithUnit() : displaySac(); break; case OTU: retVal = dive->otu; break; case MAXCNS: - retVal = dive->maxcns; + if (prefs.units.show_units_table) + retVal = QString("%1%").arg(dive->maxcns); + else + retVal = dive->maxcns; break; case PHOTOS: break; @@ -359,9 +362,10 @@ int DiveItem::countPhotos(dive *dive) const QString DiveItem::displayDuration() const { struct dive *dive = get_dive_by_uniq_id(diveId); - return get_dive_duration_string(dive->duration.seconds, "", "", "", ":", dive->dc.divemode == FREEDIVE); - // Next line is test for alternative display with units - // return get_dive_duration_string(dive->duration.seconds, tr("h"), tr("min"), "", ":", dive->dc.divemode == FREEDIVE); + if (prefs.units.show_units_table) + return get_dive_duration_string(dive->duration.seconds, tr("h"), tr("min"), "", ":", dive->dc.divemode == FREEDIVE); + else + return get_dive_duration_string(dive->duration.seconds, "", "", "", ":", dive->dc.divemode == FREEDIVE); } QString DiveItem::displayTemperature() const @@ -370,11 +374,16 @@ QString DiveItem::displayTemperature() const struct dive *dive = get_dive_by_uniq_id(diveId); if (!dive->watertemp.mkelvin) return str; - if (get_units()->temperature == units::CELSIUS) - str = QString::number(mkelvin_to_C(dive->watertemp.mkelvin), 'f', 1); - else - str = QString::number(mkelvin_to_F(dive->watertemp.mkelvin), 'f', 1); - return str; + return get_temperature_string(dive->watertemp, false); +} + +QString DiveItem::displayTemperatureWithUnit() const +{ + QString str; + struct dive *dive = get_dive_by_uniq_id(diveId); + if (!dive->watertemp.mkelvin) + return str; + return get_temperature_string(dive->watertemp, true); } QString DiveItem::displaySac() const @@ -390,12 +399,31 @@ QString DiveItem::displaySac() const return QString(""); } +QString DiveItem::displaySacWithUnit() const +{ + QString str; + struct dive *dive = get_dive_by_uniq_id(diveId); + if (dive->sac) { + const char *unit; + int decimal; + double value = get_volume_units(dive->sac, &decimal, &unit); + return QString::number(value, 'f', decimal) + QString(unit).append(tr("/min")); + } + return QString(""); +} + QString DiveItem::displayWeight() const { QString str = weight_string(weight()); return str; } +QString DiveItem::displayWeightWithUnit() const +{ + QString str = weight_string(weight()) + ((get_units()->weight == units::KG) ? tr("kg") : tr("lbs")); + return str; +} + int DiveItem::weight() const { struct dive *dive = get_dive_by_uniq_id(diveId); diff --git a/qt-models/divetripmodel.h b/qt-models/divetripmodel.h index 24b215129..ec9b615b0 100644 --- a/qt-models/divetripmodel.h +++ b/qt-models/divetripmodel.h @@ -38,8 +38,11 @@ public: QString displayDepth() const; QString displayDepthWithUnit() const; QString displayTemperature() const; + QString displayTemperatureWithUnit() const; QString displayWeight() const; + QString displayWeightWithUnit() const; QString displaySac() const; + QString displaySacWithUnit() const; int countPhotos(dive *dive) const; int weight() const; QString icon_names[4]; |