mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
Add setpoint events according to divetype
When changing to a CCR dive, add a setpoint change to the default setpoint at the beginning of the dive. Otherwise add an explicit setpoint change to 0 . Signed-off-by: Robert C. Helling <helling@atdotde.de> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
a478eb5711
commit
0f7f2195d5
3 changed files with 11 additions and 6 deletions
6
dive.c
6
dive.c
|
@ -888,8 +888,10 @@ void update_setpoint_events(struct divecomputer *dc)
|
|||
}
|
||||
ev = get_next_event(ev->next, "SP change");
|
||||
}
|
||||
if (!changed)
|
||||
add_event(dc, 0, SAMPLE_EVENT_PO2, 0, new_setpoint, "SP change");
|
||||
if (!changed) {
|
||||
if (!add_event(dc, 0, SAMPLE_EVENT_PO2, 0, new_setpoint, "SP change"))
|
||||
printf("Could not add setpoint change event\n");
|
||||
}
|
||||
}
|
||||
|
||||
void sanitize_gasmix(struct gasmix *mix)
|
||||
|
|
|
@ -103,7 +103,7 @@ MainTab::MainTab(QWidget *parent) : QTabWidget(parent),
|
|||
|
||||
// This needs to be the same order as enum dive_comp_type in dive.h!
|
||||
ui.DiveType->insertItems(0, QStringList() << "OC" << "CCR" << "pSCR" << "Freedive");
|
||||
connect(ui.DiveType, SIGNAL(currentIndexChanged(int)), this, SLOT(on_divetype_Changed(int)));
|
||||
connect(ui.DiveType, SIGNAL(currentIndexChanged(int)), this, SLOT(divetype_Changed(int)));
|
||||
|
||||
connect(ui.cylinders->view(), SIGNAL(clicked(QModelIndex)), this, SLOT(editCylinderWidget(QModelIndex)));
|
||||
connect(ui.weights->view(), SIGNAL(clicked(QModelIndex)), this, SLOT(editWeightWidget(QModelIndex)));
|
||||
|
@ -772,8 +772,10 @@ void MainTab::acceptChanges()
|
|||
MODIFY_SELECTED_DIVES(EDIT_VALUE(visibility));
|
||||
if (displayed_dive.airtemp.mkelvin != cd->airtemp.mkelvin)
|
||||
MODIFY_SELECTED_DIVES(EDIT_VALUE(airtemp.mkelvin));
|
||||
if (displayed_dive.dc.dctype != cd->dc.dctype)
|
||||
if (displayed_dive.dc.dctype != cd->dc.dctype) {
|
||||
MODIFY_SELECTED_DIVES(EDIT_VALUE(dc.dctype));
|
||||
MODIFY_SELECTED_DIVES(update_setpoint_events(&mydive->dc));
|
||||
}
|
||||
if (displayed_dive.watertemp.mkelvin != cd->watertemp.mkelvin)
|
||||
MODIFY_SELECTED_DIVES(EDIT_VALUE(watertemp.mkelvin));
|
||||
if (displayed_dive.when != cd->when) {
|
||||
|
@ -1012,10 +1014,11 @@ void MainTab::on_airtemp_textChanged(const QString &text)
|
|||
validate_temp_field(ui.airtemp, text);
|
||||
}
|
||||
|
||||
void MainTab::on_divetype_Changed(const int &index)
|
||||
void MainTab::divetype_Changed(int index)
|
||||
{
|
||||
if (editMode == IGNORE)
|
||||
return;
|
||||
qDebug() << "Changing divetype to " << dctype_text[index];
|
||||
displayed_dive.dc.dctype = (enum dive_comp_type) index;
|
||||
update_setpoint_events(&displayed_dive.dc);
|
||||
markChangedWidget(ui.DiveType);
|
||||
|
|
|
@ -71,7 +71,7 @@ slots:
|
|||
void on_suit_textChanged(const QString &text);
|
||||
void on_notes_textChanged();
|
||||
void on_airtemp_textChanged(const QString &text);
|
||||
void on_divetype_Changed(const int &index);
|
||||
void divetype_Changed(int);
|
||||
void on_watertemp_textChanged(const QString &text);
|
||||
void validate_temp_field(QLineEdit *tempField, const QString &text);
|
||||
void on_dateEdit_dateChanged(const QDate &date);
|
||||
|
|
Loading…
Add table
Reference in a new issue