mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
Update gas deco MOD when deco pO2 is changed
This fix is reasonably straightforward when the divedatapoint structure stores the cylinder rather than gasmix. Fixes #970 Signed-off-by: Rick Walsh <rickmwalsh@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
b827107619
commit
1ba61d7ad5
3 changed files with 20 additions and 0 deletions
|
@ -514,7 +514,10 @@ void PlannerSettingsWidget::setBottomPo2(double po2)
|
|||
|
||||
void PlannerSettingsWidget::setDecoPo2(double po2)
|
||||
{
|
||||
pressure_t olddecopo2;
|
||||
olddecopo2.mbar = prefs.decopo2;
|
||||
prefs.decopo2 = (int) (po2 * 1000.0);
|
||||
CylindersModel::instance()->updateDecoDepths(olddecopo2);
|
||||
}
|
||||
|
||||
void PlannerSettingsWidget::setBestmixEND(int depth)
|
||||
|
|
|
@ -426,3 +426,19 @@ void CylindersModel::remove(const QModelIndex &index)
|
|||
dc = dc->next;
|
||||
}
|
||||
}
|
||||
|
||||
void CylindersModel::updateDecoDepths(pressure_t olddecopo2)
|
||||
{
|
||||
pressure_t decopo2;
|
||||
decopo2.mbar = prefs.decopo2;
|
||||
for (int i = 0; i < MAX_CYLINDERS; i++) {
|
||||
cylinder_t *cyl = &displayed_dive.cylinder[i];
|
||||
struct gasmix *mygas = &cyl->gasmix;
|
||||
/* If the gas's deco MOD matches the old pO2, it will have been automatically calculated and should be updated.
|
||||
* If they don't match, we should leave the user entered depth as it is */
|
||||
if (cyl->depth.mm == gas_mod(&cyl->gasmix, olddecopo2, &displayed_dive, M_OR_FT(3, 10)).mm) {
|
||||
cyl->depth = gas_mod(&cyl->gasmix, decopo2, &displayed_dive, M_OR_FT(3, 10));
|
||||
}
|
||||
}
|
||||
emit dataChanged(createIndex(0, 0), createIndex(MAX_CYLINDERS - 1, COLUMNS - 1));
|
||||
}
|
||||
|
|
|
@ -35,6 +35,7 @@ public:
|
|||
void clear();
|
||||
void updateDive();
|
||||
void copyFromDive(struct dive *d);
|
||||
void updateDecoDepths(pressure_t olddecopo2);
|
||||
cylinder_t *cylinderAt(const QModelIndex &index);
|
||||
bool changed;
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue