From da52ff56b2cc2b4aecda03b4f21f94ce3ff0ce22 Mon Sep 17 00:00:00 2001 From: Dirk Hohndel Date: Wed, 29 May 2013 15:32:31 +0900 Subject: Correct the ceiling preference handling Added the red dc ceiling as preference option. Hooked them all up together so the sub-preferences are enabled when the master preference is set (for 3m and red ceiling). Use the options in the profile plotting functions. Signed-off-by: Dirk Hohndel --- qt-ui/mainwindow.cpp | 3 ++- qt-ui/preferences.cpp | 12 ++++++---- qt-ui/preferences.ui | 55 ++++++++++++++++++++++++++++++++++++++++----- qt-ui/profilegraphics.cpp | 57 +++++++++++++++++++++++------------------------ 4 files changed, 87 insertions(+), 40 deletions(-) diff --git a/qt-ui/mainwindow.cpp b/qt-ui/mainwindow.cpp index 7ed4f8aeb..8c600ea19 100644 --- a/qt-ui/mainwindow.cpp +++ b/qt-ui/mainwindow.cpp @@ -392,7 +392,7 @@ void MainWindow::readSettings() prefs.mod_ppO2 = v.toDouble(); GET_BOOL(v, "ead", prefs.ead); GET_BOOL(v, "redceiling", prefs.profile_red_ceiling); - GET_BOOL(v, "show_dc_reported_ceiling", prefs.profile_dc_ceiling); + GET_BOOL(v, "dcceiling", prefs.profile_dc_ceiling); GET_BOOL(v, "calcceiling", prefs.profile_calc_ceiling); GET_BOOL(v, "calcceiling3m", prefs.calc_ceiling_3m_incr); v = settings.value(QString("gflow")); @@ -471,6 +471,7 @@ void MainWindow::writeSettings() SAVE_VALUE("redceiling", profile_red_ceiling); SAVE_VALUE("calcceiling", profile_calc_ceiling); SAVE_VALUE("calcceiling3m", calc_ceiling_3m_incr); + SAVE_VALUE("dcceiling", profile_dc_ceiling); SAVE_VALUE("gflow", gflow); SAVE_VALUE("gfhigh", gfhigh); settings.endGroup(); diff --git a/qt-ui/preferences.cpp b/qt-ui/preferences.cpp index 8949a2df0..453f20c34 100644 --- a/qt-ui/preferences.cpp +++ b/qt-ui/preferences.cpp @@ -25,7 +25,6 @@ PreferencesDialog::PreferencesDialog(QWidget* parent, Qt::WindowFlags f) : QDial // Graph s.beginGroup("TecDetails"); - ui->calculated_ceiling->setChecked(B(calcceiling, profile_calc_ceiling)); ui->phe->setChecked(B(phegraph, pp_graphs.phe)); ui->pheThreshold->setEnabled(ui->phe->isChecked()); ui->po2->setChecked(B(po2graph, pp_graphs.po2)); @@ -37,8 +36,12 @@ PreferencesDialog::PreferencesDialog(QWidget* parent, Qt::WindowFlags f) : QDial ui->pn2Threshold->setValue(D(pn2threshold, pp_graphs.pn2_threshold)); ui->ead_end_eadd->setChecked(B(ead, ead)); ui->dc_reported_ceiling->setChecked(B(dcceiling, profile_dc_ceiling)); - ui->calculated_ceiling->setChecked(B(calceiling, profile_calc_ceiling)); + ui->red_ceiling->setEnabled(ui->dc_reported_ceiling->isChecked()); + ui->red_ceiling->setChecked(B(redceiling, profile_red_ceiling)); + ui->calculated_ceiling->setChecked(B(calcceiling, profile_calc_ceiling)); + ui->increment_3m->setEnabled(ui->calculated_ceiling->isChecked()); ui->increment_3m->setChecked(B(calcceiling3m, calc_ceiling_3m_incr)); + ui->gflow->setValue((int)(I(gflow, gflow))); ui->gfhigh->setValue((int)(I(gfhigh, gfhigh))); s.endGroup(); @@ -98,7 +101,6 @@ void PreferencesDialog::syncSettings() // Graph s.beginGroup("TecDetails"); - SB("calcceiling", ui->calculated_ceiling); SB("phegraph", ui->phe); SB("po2graph", ui->po2); SB("pn2graph", ui->pn2); @@ -107,7 +109,9 @@ void PreferencesDialog::syncSettings() s.setValue("pn2threshold", ui->pn2Threshold->value()); SB("ead", ui->ead_end_eadd); SB("dcceiling", ui->dc_reported_ceiling); - SB("calceiling3m", ui->increment_3m); + SB("redceiling", ui->red_ceiling); + SB("calcceiling", ui->calculated_ceiling); + SB("calcceiling3m", ui->increment_3m); s.setValue("gflow", ui->gflow->value()); s.setValue("gfhigh", ui->gfhigh->value()); s.endGroup(); diff --git a/qt-ui/preferences.ui b/qt-ui/preferences.ui index c442f5d2c..348e62ecd 100644 --- a/qt-ui/preferences.ui +++ b/qt-ui/preferences.ui @@ -593,12 +593,39 @@ - - - Dive computer reported ceiling - - - + + + + + Dive computer reported ceiling + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + false + + + draw ceiling red + + + + + @@ -863,6 +890,22 @@ + + dc_ceiling + clicked(bool) + red_ceiling + setEnabled(bool) + + + 288 + 364 + + + 555 + 371 + + + calculated_ceiling clicked(bool) diff --git a/qt-ui/profilegraphics.cpp b/qt-ui/profilegraphics.cpp index 060c36b51..663aefe25 100644 --- a/qt-ui/profilegraphics.cpp +++ b/qt-ui/profilegraphics.cpp @@ -1000,14 +1000,16 @@ void ProfileGraphicsView::plot_depth_profile() p.append(QPointF(SCALEGC(entry->sec, entry->depth))); /* Show any ceiling we may have encountered */ - for (i = gc.pi.nr - 1; i >= 0; i--, entry--) { - if (entry->ndl) { - /* non-zero NDL implies this is a safety stop, no ceiling */ - p.append(QPointF(SCALEGC(entry->sec, 0))); - } else if (entry->stopdepth < entry->depth) { - p.append(QPointF(SCALEGC(entry->sec, entry->stopdepth))); - } else { - p.append(QPointF(SCALEGC(entry->sec, entry->depth))); + if (prefs.profile_dc_ceiling) { + for (i = gc.pi.nr - 1; i >= 0; i--, entry--) { + if (entry->ndl) { + /* non-zero NDL implies this is a safety stop, no ceiling */ + p.append(QPointF(SCALEGC(entry->sec, 0))); + } else if (entry->stopdepth < entry->depth) { + p.append(QPointF(SCALEGC(entry->sec, entry->stopdepth))); + } else { + p.append(QPointF(SCALEGC(entry->sec, entry->depth))); + } } } pat.setColorAt(1, profile_color[DEPTH_BOTTOM].first()); @@ -1023,9 +1025,7 @@ void ProfileGraphicsView::plot_depth_profile() /* if the user wants the deco ceiling more visible, do that here (this * basically draws over the background that we had allowed to shine * through so far) */ - // TODO: port the prefs.profile_red_ceiling to QSettings - - //if (prefs.profile_red_ceiling) { + if (prefs.profile_dc_ceiling && prefs.profile_red_ceiling) { p.clear(); pat.setColorAt(0, profile_color[CEILING_SHALLOW].first()); pat.setColorAt(1, profile_color[CEILING_DEEP].first()); @@ -1049,12 +1049,10 @@ void ProfileGraphicsView::plot_depth_profile() neatFill->setPolygon(p); neatFill->setPen(QPen(QBrush(Qt::NoBrush),0)); scene()->addItem(neatFill); - //} + } /* finally, plot the calculated ceiling over all this */ - // TODO: Port the profile_calc_ceiling to QSettings - // if (prefs.profile_calc_ceiling) { - + if (prefs.profile_calc_ceiling) { pat.setColorAt(0, profile_color[CALC_CEILING_SHALLOW].first()); pat.setColorAt(1, profile_color[CALC_CEILING_DEEP].first()); @@ -1073,25 +1071,26 @@ void ProfileGraphicsView::plot_depth_profile() neatFill->setPen(QPen(QBrush(Qt::NoBrush),0)); neatFill->setBrush(pat); scene()->addItem(neatFill); - //} + } /* next show where we have been bad and crossed the dc's ceiling */ - pat.setColorAt(0, profile_color[CEILING_SHALLOW].first()); - pat.setColorAt(1, profile_color[CEILING_DEEP].first()); - - entry = gc.pi.entry; - p.clear(); - p.append(QPointF(SCALEGC(0, 0))); - for (i = 0; i < gc.pi.nr; i++, entry++) - p.append(QPointF(SCALEGC(entry->sec, entry->depth))); + if (prefs.profile_dc_ceiling) { + pat.setColorAt(0, profile_color[CEILING_SHALLOW].first()); + pat.setColorAt(1, profile_color[CEILING_DEEP].first()); - for (i = gc.pi.nr - 1; i >= 0; i--, entry--) { - if (entry->ndl == 0 && entry->stopdepth > entry->depth) { - p.append(QPointF(SCALEGC(entry->sec, entry->stopdepth))); - } else { + entry = gc.pi.entry; + p.clear(); + p.append(QPointF(SCALEGC(0, 0))); + for (i = 0; i < gc.pi.nr; i++, entry++) p.append(QPointF(SCALEGC(entry->sec, entry->depth))); + + for (i = gc.pi.nr - 1; i >= 0; i--, entry--) { + if (entry->ndl == 0 && entry->stopdepth > entry->depth) { + p.append(QPointF(SCALEGC(entry->sec, entry->stopdepth))); + } else { + p.append(QPointF(SCALEGC(entry->sec, entry->depth))); + } } } - neatFill = new QGraphicsPolygonItem(); neatFill->setPolygon(p); neatFill->setPen(QPen(QBrush(Qt::NoBrush),0)); -- cgit v1.2.3-70-g09d2