summaryrefslogtreecommitdiffstats
path: root/qt-ui
diff options
context:
space:
mode:
Diffstat (limited to 'qt-ui')
-rw-r--r--qt-ui/diveplanner.cpp6
-rw-r--r--qt-ui/maintab.cpp1
-rw-r--r--qt-ui/models.cpp6
3 files changed, 11 insertions, 2 deletions
diff --git a/qt-ui/diveplanner.cpp b/qt-ui/diveplanner.cpp
index 1b389afdf..cd3206c41 100644
--- a/qt-ui/diveplanner.cpp
+++ b/qt-ui/diveplanner.cpp
@@ -905,7 +905,11 @@ bool DivePlannerPointsModel::addGas(struct gasmix mix)
/* The depth to change to that gas is given by the depth where its pO₂ is 1.6 bar.
* The user should be able to change this depth manually. */
pressure_t modpO2;
- modpO2.mbar = prefs.decopo2;
+ if (displayed_dive.dc.divemode == PSCR)
+ modpO2.mbar = prefs.decopo2 + (1000 - get_o2(&mix)) * SURFACE_PRESSURE *
+ prefs.o2consumption / prefs.decosac / prefs.pscr_ratio;
+ else
+ modpO2.mbar = prefs.decopo2;
cyl->depth = gas_mod(&mix, modpO2, M_OR_FT(3,10));
diff --git a/qt-ui/maintab.cpp b/qt-ui/maintab.cpp
index 89208b5c7..492753d25 100644
--- a/qt-ui/maintab.cpp
+++ b/qt-ui/maintab.cpp
@@ -1022,6 +1022,7 @@ void MainTab::divetype_Changed(int index)
displayed_dive.dc.divemode = (enum dive_comp_type) index;
update_setpoint_events(&displayed_dive.dc);
markChangedWidget(ui.DiveType);
+ MainWindow::instance()->graphics()->replot();
}
void MainTab::on_watertemp_textChanged(const QString &text)
diff --git a/qt-ui/models.cpp b/qt-ui/models.cpp
index 9246a0b07..8a5b8235b 100644
--- a/qt-ui/models.cpp
+++ b/qt-ui/models.cpp
@@ -284,7 +284,11 @@ bool CylindersModel::setData(const QModelIndex &index, const QVariant &value, in
if (CHANGED()) {
cyl->gasmix.o2 = string_to_fraction(vString.toUtf8().data());
pressure_t modpO2;
- modpO2.mbar = prefs.decopo2;
+ if (displayed_dive.dc.divemode == PSCR)
+ modpO2.mbar = prefs.decopo2 + (1000 - get_o2(&cyl->gasmix)) * SURFACE_PRESSURE *
+ prefs.o2consumption / prefs.decosac / prefs.pscr_ratio;
+ else
+ modpO2.mbar = prefs.decopo2;
cyl->depth = gas_mod(&cyl->gasmix, modpO2, M_OR_FT(3, 10));
changed = true;
}