Filter: ignore unset temperatures

The filter treated unset air and water temperatures as 0 K, leading
to many dives not being shown. Don't filter on unset temperatures.

Reported-by: Jan Mulder <jlmulder@xs4all.nl>
Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
Berthold Stoeger 2019-01-18 17:08:48 +01:00 committed by Dirk Hohndel
parent 424f1e98af
commit 37a521eb5d

View file

@ -111,10 +111,12 @@ bool MultiFilterSortModel::showDive(const struct dive *d) const
// TODO: get the preferences for the imperial vs metric data.
// ignore the check if it doesn't makes sense.
if (d->watertemp.mkelvin < C_to_mkelvin(filterData.minWaterTemp) || d->watertemp.mkelvin > C_to_mkelvin((filterData.maxWaterTemp)))
if (d->watertemp.mkelvin &&
(d->watertemp.mkelvin < C_to_mkelvin(filterData.minWaterTemp) || d->watertemp.mkelvin > C_to_mkelvin((filterData.maxWaterTemp))))
return false;
if (d->airtemp.mkelvin < C_to_mkelvin(filterData.minAirTemp) || d->airtemp.mkelvin > C_to_mkelvin(filterData.maxAirTemp))
if (d->airtemp.mkelvin &&
(d->airtemp.mkelvin < C_to_mkelvin(filterData.minAirTemp) || d->airtemp.mkelvin > C_to_mkelvin(filterData.maxAirTemp)))
return false;
if (filterData.from.isValid() && d->when < filterData.from.toTime_t())