Add gas consumption statistic for selected dives

We already did a list of gases and volume consumed for the selected dive
on the Dive Info tab, but did not provide that same data on the Stats tab
for all the selected dives.

I arbitrary limited this to eight gases (as the list can get quite long
when you select a lot of dives). The gases are sorted by volume consumed.

Fixes #535

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
Dirk Hohndel 2014-06-09 22:45:44 -07:00
parent 0102604645
commit 8a0d852a7c
4 changed files with 81 additions and 14 deletions

View file

@ -530,6 +530,23 @@ void MainTab::updateDiveInfo(int dive)
ui.timeLimits->setAverage(get_time_string(seconds, 0));
ui.timeLimits->setMaximum(get_time_string(stats_selection.longest_time.seconds, 0));
ui.timeLimits->setMinimum(get_time_string(stats_selection.shortest_time.seconds, 0));
// now let's get some gas use statistics
QVector<QPair<QString, int> > gasUsed;
QString gasUsedString;
QPair<QString, int> topGases[8] = { };
volume_t vol;
selectedDivesGasUsed(gasUsed);
for (int j = 0; j < 8; j++) {
if (gasUsed.isEmpty())
break;
QPair<QString, int> gasPair = gasUsed.last();
gasUsed.pop_back();
vol.mliter = gasPair.second;
gasUsedString.append(gasPair.first).append(": ").append(get_volume_string(vol, true)).append("\n");
}
if (!gasUsed.isEmpty())
gasUsedString.append("...");
ui.gasConsumption->setText(gasUsedString);
} else {
/* clear the fields */
clearInfo();

View file

@ -37,8 +37,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>662</width>
<height>649</height>
<width>668</width>
<height>658</height>
</rect>
</property>
<layout class="QGridLayout" name="gridLayout_2">
@ -289,8 +289,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>662</width>
<height>649</height>
<width>100</width>
<height>30</height>
</rect>
</property>
<layout class="QGridLayout" name="gridLayout_5">
@ -369,8 +369,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>662</width>
<height>649</height>
<width>387</width>
<height>285</height>
</rect>
</property>
<layout class="QGridLayout" name="gridLayout_6">
@ -679,8 +679,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>662</width>
<height>649</height>
<width>337</width>
<height>157</height>
</rect>
</property>
<layout class="QGridLayout" name="gridLayout_7">
@ -766,7 +766,7 @@
</layout>
</widget>
</item>
<item row="1" column="2">
<item row="2" column="1">
<widget class="QGroupBox" name="groupBox_7b">
<property name="title">
<string>Dives</string>
@ -785,8 +785,27 @@
</layout>
</widget>
</item>
<item row="2" column="0">
<spacer>
<item row="1" column="2">
<widget class="QGroupBox" name="groupBox_13">
<property name="title">
<string>Gas Consumption</string>
</property>
<layout class="QHBoxLayout" name="horizontalLayout_15b">
<item>
<widget class="QLabel" name="gasConsumption">
<property name="text">
<string/>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item row="3" column="0">
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
@ -795,8 +814,8 @@
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>20</height>
<width>0</width>
<height>0</height>
</size>
</property>
</spacer>
@ -808,6 +827,7 @@
<zorder>groupBox_14</zorder>
<zorder>groupBoxb</zorder>
<zorder>groupBox_7b</zorder>
<zorder>groupBox_13</zorder>
</widget>
</widget>
</item>