mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
Maintab combobox to set dive type
still needs some work Signed-off-by: Robert C. Helling <helling@atdotde.de> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
93eb386ba9
commit
a478eb5711
8 changed files with 72 additions and 15 deletions
22
dive.c
22
dive.c
|
@ -29,7 +29,7 @@ static const char *default_tags[] = {
|
||||||
const char *cylinderuse_text[] = {
|
const char *cylinderuse_text[] = {
|
||||||
QT_TRANSLATE_NOOP("gettextFromC", "OC-gas"), QT_TRANSLATE_NOOP("gettextFromC", "diluent"), QT_TRANSLATE_NOOP("gettextFromC", "oxygen")
|
QT_TRANSLATE_NOOP("gettextFromC", "OC-gas"), QT_TRANSLATE_NOOP("gettextFromC", "diluent"), QT_TRANSLATE_NOOP("gettextFromC", "oxygen")
|
||||||
};
|
};
|
||||||
const char *dctype_text[] = { "OC", "CCR", "PSCR" };
|
const char *dctype_text[] = { "OC", "CCR", "PSCR", "Freedive" };
|
||||||
|
|
||||||
int event_is_gaschange(struct event *ev)
|
int event_is_gaschange(struct event *ev)
|
||||||
{
|
{
|
||||||
|
@ -872,6 +872,26 @@ int explicit_first_cylinder(struct dive *dive, struct divecomputer *dc)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void update_setpoint_events(struct divecomputer *dc)
|
||||||
|
{
|
||||||
|
struct event *ev = get_next_event(dc->events, "SP change");
|
||||||
|
bool changed = false;
|
||||||
|
int new_setpoint = 0;
|
||||||
|
|
||||||
|
if (dc->dctype == CCR)
|
||||||
|
new_setpoint = prefs.defaultsetpoint;
|
||||||
|
|
||||||
|
while (ev) {
|
||||||
|
if (ev->time.seconds == 0) {
|
||||||
|
ev->value = new_setpoint;
|
||||||
|
changed = true;
|
||||||
|
}
|
||||||
|
ev = get_next_event(ev->next, "SP change");
|
||||||
|
}
|
||||||
|
if (!changed)
|
||||||
|
add_event(dc, 0, SAMPLE_EVENT_PO2, 0, new_setpoint, "SP change");
|
||||||
|
}
|
||||||
|
|
||||||
void sanitize_gasmix(struct gasmix *mix)
|
void sanitize_gasmix(struct gasmix *mix)
|
||||||
{
|
{
|
||||||
unsigned int o2, he;
|
unsigned int o2, he;
|
||||||
|
|
3
dive.h
3
dive.h
|
@ -47,7 +47,7 @@ extern "C" {
|
||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
enum dive_comp_type {OC, CCR, PSCR, NUM_DC_TYPE}; // Flags (Open-circuit and Closed-circuit-rebreather) for setting dive computer type
|
enum dive_comp_type {OC, CCR, PSCR, FREEDIVE, NUM_DC_TYPE}; // Flags (Open-circuit and Closed-circuit-rebreather) for setting dive computer type
|
||||||
enum cylinderuse {OC_GAS, DILUENT, OXYGEN, NUM_GAS_USE}; // The different uses for cylinders
|
enum cylinderuse {OC_GAS, DILUENT, OXYGEN, NUM_GAS_USE}; // The different uses for cylinders
|
||||||
|
|
||||||
extern const char *cylinderuse_text[];
|
extern const char *cylinderuse_text[];
|
||||||
|
@ -850,6 +850,7 @@ extern void set_save_userid_local(short value);
|
||||||
extern void set_userid(char *user_id);
|
extern void set_userid(char *user_id);
|
||||||
|
|
||||||
extern const char *get_dive_date_c_string(timestamp_t when);
|
extern const char *get_dive_date_c_string(timestamp_t when);
|
||||||
|
extern void update_setpoint_events(struct divecomputer *dc);
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
1
pref.h
1
pref.h
|
@ -76,6 +76,7 @@ struct preferences {
|
||||||
int decosac;
|
int decosac;
|
||||||
int o2consumption; // ml per min
|
int o2consumption; // ml per min
|
||||||
int pscr_ratio; // dump ratio times 1000
|
int pscr_ratio; // dump ratio times 1000
|
||||||
|
int defaultsetpoint; // default setpoint in mbar
|
||||||
bool show_pictures_in_profile;
|
bool show_pictures_in_profile;
|
||||||
bool use_default_file;
|
bool use_default_file;
|
||||||
facebook_prefs_t facebook;
|
facebook_prefs_t facebook;
|
||||||
|
|
|
@ -86,6 +86,7 @@ MainTab::MainTab(QWidget *parent) : QTabWidget(parent),
|
||||||
ui.dateEdit->installEventFilter(this);
|
ui.dateEdit->installEventFilter(this);
|
||||||
ui.timeEdit->installEventFilter(this);
|
ui.timeEdit->installEventFilter(this);
|
||||||
ui.tagWidget->installEventFilter(this);
|
ui.tagWidget->installEventFilter(this);
|
||||||
|
ui.DiveType->installEventFilter(this);
|
||||||
|
|
||||||
Q_FOREACH (QObject *obj, ui.statisticsTab->children()) {
|
Q_FOREACH (QObject *obj, ui.statisticsTab->children()) {
|
||||||
QLabel *label = qobject_cast<QLabel *>(obj);
|
QLabel *label = qobject_cast<QLabel *>(obj);
|
||||||
|
@ -100,6 +101,10 @@ MainTab::MainTab(QWidget *parent) : QTabWidget(parent),
|
||||||
ui.weights->setBtnToolTip(tr("Add weight system"));
|
ui.weights->setBtnToolTip(tr("Add weight system"));
|
||||||
connect(ui.weights, SIGNAL(addButtonClicked()), this, SLOT(addWeight_clicked()));
|
connect(ui.weights, SIGNAL(addButtonClicked()), this, SLOT(addWeight_clicked()));
|
||||||
|
|
||||||
|
// 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.cylinders->view(), SIGNAL(clicked(QModelIndex)), this, SLOT(editCylinderWidget(QModelIndex)));
|
connect(ui.cylinders->view(), SIGNAL(clicked(QModelIndex)), this, SLOT(editCylinderWidget(QModelIndex)));
|
||||||
connect(ui.weights->view(), SIGNAL(clicked(QModelIndex)), this, SLOT(editWeightWidget(QModelIndex)));
|
connect(ui.weights->view(), SIGNAL(clicked(QModelIndex)), this, SLOT(editWeightWidget(QModelIndex)));
|
||||||
|
|
||||||
|
@ -425,6 +430,7 @@ void MainTab::updateDiveInfo(bool clear)
|
||||||
UPDATE_TEXT(displayed_dive, buddy);
|
UPDATE_TEXT(displayed_dive, buddy);
|
||||||
UPDATE_TEMP(displayed_dive, airtemp);
|
UPDATE_TEMP(displayed_dive, airtemp);
|
||||||
UPDATE_TEMP(displayed_dive, watertemp);
|
UPDATE_TEMP(displayed_dive, watertemp);
|
||||||
|
ui.DiveType->setCurrentIndex(displayed_dive.dc.dctype);
|
||||||
|
|
||||||
if (!clear) {
|
if (!clear) {
|
||||||
updateGpsCoordinates(&displayed_dive);
|
updateGpsCoordinates(&displayed_dive);
|
||||||
|
@ -454,6 +460,8 @@ void MainTab::updateDiveInfo(bool clear)
|
||||||
ui.TagLabel->setVisible(false);
|
ui.TagLabel->setVisible(false);
|
||||||
ui.airTempLabel->setVisible(false);
|
ui.airTempLabel->setVisible(false);
|
||||||
ui.airtemp->setVisible(false);
|
ui.airtemp->setVisible(false);
|
||||||
|
ui.DiveType->setVisible(false);
|
||||||
|
ui.TypeLabel->setVisible(false);
|
||||||
ui.waterTempLabel->setVisible(false);
|
ui.waterTempLabel->setVisible(false);
|
||||||
ui.watertemp->setVisible(false);
|
ui.watertemp->setVisible(false);
|
||||||
// rename the remaining fields and fill data from selected trip
|
// rename the remaining fields and fill data from selected trip
|
||||||
|
@ -483,6 +491,8 @@ void MainTab::updateDiveInfo(bool clear)
|
||||||
ui.tagWidget->setVisible(true);
|
ui.tagWidget->setVisible(true);
|
||||||
ui.airTempLabel->setVisible(true);
|
ui.airTempLabel->setVisible(true);
|
||||||
ui.airtemp->setVisible(true);
|
ui.airtemp->setVisible(true);
|
||||||
|
ui.TypeLabel->setVisible(true);
|
||||||
|
ui.DiveType->setVisible(true);
|
||||||
ui.waterTempLabel->setVisible(true);
|
ui.waterTempLabel->setVisible(true);
|
||||||
ui.watertemp->setVisible(true);
|
ui.watertemp->setVisible(true);
|
||||||
/* and fill them from the dive */
|
/* and fill them from the dive */
|
||||||
|
@ -504,6 +514,7 @@ void MainTab::updateDiveInfo(bool clear)
|
||||||
ui.otuText->setText(QString("%1").arg(displayed_dive.otu));
|
ui.otuText->setText(QString("%1").arg(displayed_dive.otu));
|
||||||
ui.waterTemperatureText->setText(get_temperature_string(displayed_dive.watertemp, true));
|
ui.waterTemperatureText->setText(get_temperature_string(displayed_dive.watertemp, true));
|
||||||
ui.airTemperatureText->setText(get_temperature_string(displayed_dive.airtemp, true));
|
ui.airTemperatureText->setText(get_temperature_string(displayed_dive.airtemp, true));
|
||||||
|
ui.DiveType->setCurrentIndex(current_dc->dctype);
|
||||||
volume_t gases[MAX_CYLINDERS] = {};
|
volume_t gases[MAX_CYLINDERS] = {};
|
||||||
get_gas_used(&displayed_dive, gases);
|
get_gas_used(&displayed_dive, gases);
|
||||||
QString volumes;
|
QString volumes;
|
||||||
|
@ -761,6 +772,8 @@ void MainTab::acceptChanges()
|
||||||
MODIFY_SELECTED_DIVES(EDIT_VALUE(visibility));
|
MODIFY_SELECTED_DIVES(EDIT_VALUE(visibility));
|
||||||
if (displayed_dive.airtemp.mkelvin != cd->airtemp.mkelvin)
|
if (displayed_dive.airtemp.mkelvin != cd->airtemp.mkelvin)
|
||||||
MODIFY_SELECTED_DIVES(EDIT_VALUE(airtemp.mkelvin));
|
MODIFY_SELECTED_DIVES(EDIT_VALUE(airtemp.mkelvin));
|
||||||
|
if (displayed_dive.dc.dctype != cd->dc.dctype)
|
||||||
|
MODIFY_SELECTED_DIVES(EDIT_VALUE(dc.dctype));
|
||||||
if (displayed_dive.watertemp.mkelvin != cd->watertemp.mkelvin)
|
if (displayed_dive.watertemp.mkelvin != cd->watertemp.mkelvin)
|
||||||
MODIFY_SELECTED_DIVES(EDIT_VALUE(watertemp.mkelvin));
|
MODIFY_SELECTED_DIVES(EDIT_VALUE(watertemp.mkelvin));
|
||||||
if (displayed_dive.when != cd->when) {
|
if (displayed_dive.when != cd->when) {
|
||||||
|
@ -887,6 +900,7 @@ void MainTab::resetPallete()
|
||||||
ui.divemaster->setPalette(p);
|
ui.divemaster->setPalette(p);
|
||||||
ui.suit->setPalette(p);
|
ui.suit->setPalette(p);
|
||||||
ui.airtemp->setPalette(p);
|
ui.airtemp->setPalette(p);
|
||||||
|
ui.DiveType->setPalette(p);
|
||||||
ui.watertemp->setPalette(p);
|
ui.watertemp->setPalette(p);
|
||||||
ui.dateEdit->setPalette(p);
|
ui.dateEdit->setPalette(p);
|
||||||
ui.timeEdit->setPalette(p);
|
ui.timeEdit->setPalette(p);
|
||||||
|
@ -998,6 +1012,15 @@ void MainTab::on_airtemp_textChanged(const QString &text)
|
||||||
validate_temp_field(ui.airtemp, text);
|
validate_temp_field(ui.airtemp, text);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void MainTab::on_divetype_Changed(const int &index)
|
||||||
|
{
|
||||||
|
if (editMode == IGNORE)
|
||||||
|
return;
|
||||||
|
displayed_dive.dc.dctype = (enum dive_comp_type) index;
|
||||||
|
update_setpoint_events(&displayed_dive.dc);
|
||||||
|
markChangedWidget(ui.DiveType);
|
||||||
|
}
|
||||||
|
|
||||||
void MainTab::on_watertemp_textChanged(const QString &text)
|
void MainTab::on_watertemp_textChanged(const QString &text)
|
||||||
{
|
{
|
||||||
if (editMode == IGNORE || acceptingEdit == true)
|
if (editMode == IGNORE || acceptingEdit == true)
|
||||||
|
|
|
@ -71,6 +71,7 @@ slots:
|
||||||
void on_suit_textChanged(const QString &text);
|
void on_suit_textChanged(const QString &text);
|
||||||
void on_notes_textChanged();
|
void on_notes_textChanged();
|
||||||
void on_airtemp_textChanged(const QString &text);
|
void on_airtemp_textChanged(const QString &text);
|
||||||
|
void on_divetype_Changed(const int &index);
|
||||||
void on_watertemp_textChanged(const QString &text);
|
void on_watertemp_textChanged(const QString &text);
|
||||||
void validate_temp_field(QLineEdit *tempField, const QString &text);
|
void validate_temp_field(QLineEdit *tempField, const QString &text);
|
||||||
void on_dateEdit_dateChanged(const QDate &date);
|
void on_dateEdit_dateChanged(const QDate &date);
|
||||||
|
|
|
@ -175,28 +175,28 @@
|
||||||
<number>0</number>
|
<number>0</number>
|
||||||
</property>
|
</property>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QLabel" name="RatingLabel">
|
<widget class="StarWidget" name="rating" native="true">
|
||||||
<property name="sizePolicy">
|
<property name="sizePolicy">
|
||||||
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
|
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
|
||||||
<horstretch>0</horstretch>
|
<horstretch>0</horstretch>
|
||||||
<verstretch>0</verstretch>
|
<verstretch>0</verstretch>
|
||||||
</sizepolicy>
|
</sizepolicy>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="focusPolicy">
|
||||||
<string>Rating</string>
|
<enum>Qt::StrongFocus</enum>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QLabel" name="visibilityLabel">
|
<widget class="StarWidget" name="visibility" native="true">
|
||||||
<property name="sizePolicy">
|
<property name="sizePolicy">
|
||||||
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
|
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
|
||||||
<horstretch>0</horstretch>
|
<horstretch>0</horstretch>
|
||||||
<verstretch>0</verstretch>
|
<verstretch>0</verstretch>
|
||||||
</sizepolicy>
|
</sizepolicy>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="focusPolicy">
|
||||||
<string>Visibility</string>
|
<enum>Qt::StrongFocus</enum>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
@ -236,28 +236,28 @@
|
||||||
<number>0</number>
|
<number>0</number>
|
||||||
</property>
|
</property>
|
||||||
<item>
|
<item>
|
||||||
<widget class="StarWidget" name="rating" native="true">
|
<widget class="QLabel" name="RatingLabel">
|
||||||
<property name="sizePolicy">
|
<property name="sizePolicy">
|
||||||
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
|
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
|
||||||
<horstretch>0</horstretch>
|
<horstretch>0</horstretch>
|
||||||
<verstretch>0</verstretch>
|
<verstretch>0</verstretch>
|
||||||
</sizepolicy>
|
</sizepolicy>
|
||||||
</property>
|
</property>
|
||||||
<property name="focusPolicy">
|
<property name="text">
|
||||||
<enum>Qt::StrongFocus</enum>
|
<string>Rating</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="StarWidget" name="visibility" native="true">
|
<widget class="QLabel" name="visibilityLabel">
|
||||||
<property name="sizePolicy">
|
<property name="sizePolicy">
|
||||||
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
|
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
|
||||||
<horstretch>0</horstretch>
|
<horstretch>0</horstretch>
|
||||||
<verstretch>0</verstretch>
|
<verstretch>0</verstretch>
|
||||||
</sizepolicy>
|
</sizepolicy>
|
||||||
</property>
|
</property>
|
||||||
<property name="focusPolicy">
|
<property name="text">
|
||||||
<enum>Qt::StrongFocus</enum>
|
<string>Visibility</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
@ -301,6 +301,16 @@
|
||||||
<bool>false</bool>
|
<bool>false</bool>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
|
<item>
|
||||||
|
<widget class="QComboBox" name="DiveType">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
</item>
|
</item>
|
||||||
<item row="13" column="0" colspan="3">
|
<item row="13" column="0" colspan="3">
|
||||||
<layout class="QHBoxLayout" name="notesAndSocialNetworksLayout">
|
<layout class="QHBoxLayout" name="notesAndSocialNetworksLayout">
|
||||||
|
@ -1019,7 +1029,6 @@
|
||||||
<tabstop>airtemp</tabstop>
|
<tabstop>airtemp</tabstop>
|
||||||
<tabstop>watertemp</tabstop>
|
<tabstop>watertemp</tabstop>
|
||||||
<tabstop>location</tabstop>
|
<tabstop>location</tabstop>
|
||||||
<tabstop>coordinates</tabstop>
|
|
||||||
<tabstop>divemaster</tabstop>
|
<tabstop>divemaster</tabstop>
|
||||||
<tabstop>buddy</tabstop>
|
<tabstop>buddy</tabstop>
|
||||||
<tabstop>rating</tabstop>
|
<tabstop>rating</tabstop>
|
||||||
|
|
|
@ -367,6 +367,7 @@ void PreferencesDialog::loadSettings()
|
||||||
GET_BOOL("show_sac", show_sac);
|
GET_BOOL("show_sac", show_sac);
|
||||||
GET_BOOL("display_unused_tanks", display_unused_tanks);
|
GET_BOOL("display_unused_tanks", display_unused_tanks);
|
||||||
GET_BOOL("show_average_depth", show_average_depth);
|
GET_BOOL("show_average_depth", show_average_depth);
|
||||||
|
GET_INT("default_setpoint", defaultsetpoint);
|
||||||
s.endGroup();
|
s.endGroup();
|
||||||
|
|
||||||
s.beginGroup("GeneralSettings");
|
s.beginGroup("GeneralSettings");
|
||||||
|
|
|
@ -55,6 +55,7 @@ struct preferences default_prefs = {
|
||||||
.album_id = NULL,
|
.album_id = NULL,
|
||||||
.access_token = NULL
|
.access_token = NULL
|
||||||
}
|
}
|
||||||
|
.defaultsetpoint = 1100
|
||||||
};
|
};
|
||||||
|
|
||||||
int run_survey;
|
int run_survey;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue