mirror of
https://github.com/subsurface/subsurface.git
synced 2024-11-30 22:20:21 +00:00
Improve display of yearly statistics
Display the units in the header, make the header more consistent looking, convert the values into the right units with appropriate precision. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
dda28c76aa
commit
370673cc99
3 changed files with 67 additions and 34 deletions
15
helpers.h
15
helpers.h
|
@ -11,11 +11,16 @@
|
|||
#include "dive.h"
|
||||
#include "qthelper.h"
|
||||
|
||||
QString get_depth_string(depth_t depth, bool showunit);
|
||||
QString get_weight_string(weight_t weight, bool showunit);
|
||||
QString get_temperature_string(temperature_t temp, bool showunit);
|
||||
QString get_volume_string(volume_t volume, bool showunit);
|
||||
QString get_pressure_string(pressure_t pressure, bool showunit);
|
||||
QString get_depth_string(depth_t depth, bool showunit = false);
|
||||
QString get_depth_unit();
|
||||
QString get_weight_string(weight_t weight, bool showunit = false);
|
||||
QString get_weight_unit();
|
||||
QString get_temperature_string(temperature_t temp, bool showunit = false);
|
||||
QString get_temp_unit();
|
||||
QString get_volume_string(volume_t volume, bool showunit = false);
|
||||
QString get_volume_unit();
|
||||
QString get_pressure_string(pressure_t pressure, bool showunit = false);
|
||||
QString get_pressure_unit();
|
||||
void set_default_dive_computer(const char *vendor, const char *product);
|
||||
void set_default_dive_computer_device(const char *name);
|
||||
QString getSubsurfaceDataPath(QString folderToFind);
|
||||
|
|
32
qt-gui.cpp
32
qt-gui.cpp
|
@ -196,6 +196,14 @@ QString get_depth_string(depth_t depth, bool showunit)
|
|||
}
|
||||
}
|
||||
|
||||
QString get_depth_unit()
|
||||
{
|
||||
if (prefs.units.length == units::METERS)
|
||||
return "m";
|
||||
else
|
||||
return "ft";
|
||||
}
|
||||
|
||||
QString get_weight_string(weight_t weight, bool showunit)
|
||||
{
|
||||
if (prefs.units.weight == units::KG) {
|
||||
|
@ -207,6 +215,14 @@ QString get_weight_string(weight_t weight, bool showunit)
|
|||
}
|
||||
}
|
||||
|
||||
QString get_weight_unit()
|
||||
{
|
||||
if (prefs.units.weight == units::KG)
|
||||
return "kg";
|
||||
else
|
||||
return "lbs";
|
||||
}
|
||||
|
||||
QString get_temperature_string(temperature_t temp, bool showunit)
|
||||
{
|
||||
if (prefs.units.temperature == units::CELSIUS) {
|
||||
|
@ -220,6 +236,14 @@ QString get_temperature_string(temperature_t temp, bool showunit)
|
|||
}
|
||||
}
|
||||
|
||||
QString get_temp_unit()
|
||||
{
|
||||
if (prefs.units.temperature == units::CELSIUS)
|
||||
return QString(UTF8_DEGREE "C");
|
||||
else
|
||||
return QString(UTF8_DEGREE "F");
|
||||
}
|
||||
|
||||
QString get_volume_string(volume_t volume, bool showunit)
|
||||
{
|
||||
if (prefs.units.volume == units::LITER) {
|
||||
|
@ -231,6 +255,14 @@ QString get_volume_string(volume_t volume, bool showunit)
|
|||
}
|
||||
}
|
||||
|
||||
QString get_volume_unit()
|
||||
{
|
||||
if (prefs.units.volume == units::LITER)
|
||||
return "l";
|
||||
else
|
||||
return "cuft";
|
||||
}
|
||||
|
||||
QString get_pressure_string(pressure_t pressure, bool showunit)
|
||||
{
|
||||
if (prefs.units.pressure == units::BAR) {
|
||||
|
|
|
@ -1302,7 +1302,6 @@ YearStatisticsItem::YearStatisticsItem(stats_t interval) : stats_interval(interv
|
|||
|
||||
QVariant YearStatisticsItem::data(int column, int role) const
|
||||
{
|
||||
const char *unit;
|
||||
double value;
|
||||
QVariant ret;
|
||||
|
||||
|
@ -1317,29 +1316,26 @@ QVariant YearStatisticsItem::data(int column, int role) const
|
|||
case AVERAGE_TIME: ret = get_minutes(stats_interval.total_time.seconds / stats_interval.selection_size); break;
|
||||
case SHORTEST_TIME: ret = get_minutes(stats_interval.shortest_time.seconds); break;
|
||||
case LONGEST_TIME: ret = get_minutes(stats_interval.longest_time.seconds); break;
|
||||
case AVG_DEPTH: ret = stats_interval.avg_depth.mm; break;
|
||||
case MIN_DEPTH: ret = stats_interval.min_depth.mm; break;
|
||||
case MAX_DEPTH: ret = stats_interval.max_depth.mm; break;
|
||||
case AVG_SAC: ret = stats_interval.avg_sac.mliter; break;
|
||||
case MIN_SAC: ret = stats_interval.min_sac.mliter; break;
|
||||
case MAX_SAC: ret = stats_interval.max_sac.mliter; break;
|
||||
case AVG_DEPTH: ret = get_depth_string(stats_interval.avg_depth); break;
|
||||
case MIN_DEPTH: ret = get_depth_string(stats_interval.min_depth); break;
|
||||
case MAX_DEPTH: ret = get_depth_string(stats_interval.max_depth); break;
|
||||
case AVG_SAC: ret = get_volume_string(stats_interval.avg_sac); break;
|
||||
case MIN_SAC: ret = get_volume_string(stats_interval.min_sac); break;
|
||||
case MAX_SAC: ret = get_volume_string(stats_interval.max_sac); break;
|
||||
case AVG_TEMP:
|
||||
get_temp_units(stats_interval.min_temp, &unit);
|
||||
if (stats_interval.combined_temp && stats_interval.combined_count) {
|
||||
ret = QString("%1 %2").arg(stats_interval.combined_temp / stats_interval.combined_count).arg(unit);
|
||||
ret = QString::number(stats_interval.combined_temp / stats_interval.combined_count, 'f', 1);
|
||||
}
|
||||
break;
|
||||
case MIN_TEMP:
|
||||
value = get_temp_units(stats_interval.min_temp, &unit);
|
||||
if (value > -100.0) {
|
||||
ret = QString("%1 %2").arg(value).arg(unit);
|
||||
}
|
||||
value = get_temp_units(stats_interval.min_temp, NULL);
|
||||
if (value > -100.0)
|
||||
ret = QString::number(value, 'f', 1);
|
||||
break;
|
||||
case MAX_TEMP:
|
||||
value = get_temp_units(stats_interval.max_temp, &unit);
|
||||
if (value > -100.0) {
|
||||
ret = QString("%1 %2").arg(value).arg(unit);
|
||||
}
|
||||
value = get_temp_units(stats_interval.max_temp, NULL);
|
||||
if (value > -100.0)
|
||||
ret = QString::number(value, 'f', 1);
|
||||
break;
|
||||
}
|
||||
return ret;
|
||||
|
@ -1362,18 +1358,18 @@ QVariant YearlyStatisticsModel::headerData(int section, Qt::Orientation orientat
|
|||
case YEAR: val = tr("Year \n > Month"); break;
|
||||
case DIVES: val = tr("#"); break;
|
||||
case TOTAL_TIME: val = tr("Duration \n Total"); break;
|
||||
case AVERAGE_TIME: val = tr("Average"); break;
|
||||
case SHORTEST_TIME: val = tr("Shortest"); break;
|
||||
case LONGEST_TIME: val = tr("Longest"); break;
|
||||
case AVG_DEPTH: val = tr("Depth \n Average"); break;
|
||||
case MIN_DEPTH: val = tr("Minimum"); break;
|
||||
case MAX_DEPTH: val = tr("Maximum"); break;
|
||||
case AVG_SAC: val = tr("SAC \n Average"); break;
|
||||
case MIN_SAC: val = tr("Minimum"); break;
|
||||
case MAX_SAC: val = tr("Maximum"); break;
|
||||
case AVG_TEMP: val = tr("Temperature \n Average"); break;
|
||||
case MIN_TEMP: val = tr("Minimum"); break;
|
||||
case MAX_TEMP: val = tr("Maximum"); break;
|
||||
case AVERAGE_TIME: val = tr("\nAverage"); break;
|
||||
case SHORTEST_TIME: val = tr("\nShortest"); break;
|
||||
case LONGEST_TIME: val = tr("\nLongest"); break;
|
||||
case AVG_DEPTH: val = QString(tr("Depth (%1)\n Average")).arg(get_depth_unit()); break;
|
||||
case MIN_DEPTH: val = tr("\nMinimum"); break;
|
||||
case MAX_DEPTH: val = tr("\nMaximum"); break;
|
||||
case AVG_SAC: val = QString(tr("SAC (%1)\n Average")).arg(get_volume_unit()); break;
|
||||
case MIN_SAC: val = tr("\nMinimum"); break;
|
||||
case MAX_SAC: val = tr("\nMaximum"); break;
|
||||
case AVG_TEMP: val = QString(tr("Temp. (%1)\n Average").arg(get_temp_unit())); break;
|
||||
case MIN_TEMP: val = tr("\nMinimum"); break;
|
||||
case MAX_TEMP: val = tr("\nMaximum"); break;
|
||||
}
|
||||
}
|
||||
return val;
|
||||
|
|
Loading…
Reference in a new issue