Helper function to determined planned dives

... to reduce code duplication.

Signed-off-by: Robert C. Helling <helling@atdotde.de>
This commit is contained in:
Robert C. Helling 2019-01-01 18:02:04 +01:00
parent f1fc89b978
commit c349692d98
4 changed files with 8 additions and 3 deletions

View file

@ -3357,6 +3357,10 @@ void dump_taglist(const char *intro, struct tag_entry *tl)
fprintf(stderr, "\n");
}
bool is_dc_planner(const struct divecomputer *dc) {
return same_string(dc->model, "planned dive");
}
/*
* Merging two dives can be subtle, because there's two different ways
* of merging:
@ -3401,7 +3405,7 @@ struct dive *merge_dives(const struct dive *a, const struct dive *b, int offset,
offset = 0;
}
if (same_string(a->dc.model, "planned dive")) {
if (is_dc_planner(&a->dc)) {
const struct dive *tmp = a;
a = b;
b = tmp;

View file

@ -652,6 +652,7 @@ extern void nuclear_regeneration(struct deco_state *ds, double time);
extern void vpmb_start_gradient(struct deco_state *ds);
extern void vpmb_next_gradient(struct deco_state *ds, double deco_time, double surface_pressure);
extern double tissue_tolerance_calc(struct deco_state *ds, const struct dive *dive, double pressure);
extern bool is_dc_planner(const struct divecomputer *dc);
/* this should be converted to use our types */
struct divedatapoint {

View file

@ -169,7 +169,7 @@ QString DiveObjectHelper::waterTemp() const
QString DiveObjectHelper::notes() const
{
QString tmp = m_dive->notes ? QString::fromUtf8(m_dive->notes) : QString();
if (same_string(m_dive->dc.model, "planned dive")) {
if (is_dc_planner(&m_dive->dc)) {
QTextDocument notes;
#define _NOTES_BR "&#92n"
tmp.replace("<thead>", "<thead>" _NOTES_BR)

View file

@ -965,7 +965,7 @@ void MainWindow::on_actionReplanDive_triggered()
{
if (!plannerStateClean() || !current_dive)
return;
else if (!current_dive->dc.model || strcmp(current_dive->dc.model, "planned dive")) {
else if (!is_dc_planner(&current_dive->dc)) {
if (QMessageBox::warning(this, tr("Warning"), tr("Trying to replan a dive that's not a planned dive."),
QMessageBox::Ok | QMessageBox::Cancel) == QMessageBox::Cancel)
return;