diff options
Diffstat (limited to 'qt-ui')
-rw-r--r-- | qt-ui/diveplanner.cpp | 30 | ||||
-rw-r--r-- | qt-ui/diveplanner.h | 2 | ||||
-rw-r--r-- | qt-ui/mainwindow.cpp | 5 |
3 files changed, 27 insertions, 10 deletions
diff --git a/qt-ui/diveplanner.cpp b/qt-ui/diveplanner.cpp index 6943283d9..131cf300a 100644 --- a/qt-ui/diveplanner.cpp +++ b/qt-ui/diveplanner.cpp @@ -6,9 +6,9 @@ #include "maintab.h" #include "tableview.h" -#include "../dive.h" -#include "../divelist.h" -#include "../planner.h" +#include "dive.h" +#include "divelist.h" +#include "planner.h" #include "display.h" #include "helpers.h" @@ -23,6 +23,7 @@ #include <QColor> #include <algorithm> +#include <string.h> #define TIME_INITIAL_MAX 30 @@ -110,9 +111,28 @@ void DivePlannerPointsModel::copyCylinders(dive *d) copy_cylinders(stagingDive, d); } -void DivePlannerPointsModel::copyCylindersFrom(dive *d) +// copy the tanks from the current dive, or the default cylinder +// or an unknown cylinder +// setup the cylinder widget accordingly +void DivePlannerPointsModel::setupCylinders() { - copy_cylinders(d, stagingDive); + if (!stagingDive) + return; + + if (current_dive) { + copy_cylinders(current_dive, stagingDive); + } else { + if (!same_string(prefs.default_cylinder, "")) { + fill_default_cylinder(&stagingDive->cylinder[0]); + } else { + // roughly an AL80 + stagingDive->cylinder[0].type.description = strdup(tr("unknown").toUtf8().constData()); + stagingDive->cylinder[0].type.size.mliter = 11100; + stagingDive->cylinder[0].type.workingpressure.mbar = 207000; + stagingDive->cylinder[0].used = true; + } + } + CylindersModel::instance()->copyFromDive(stagingDive); } QStringList &DivePlannerPointsModel::getGasList() diff --git a/qt-ui/diveplanner.h b/qt-ui/diveplanner.h index 4aa5f0094..a281b7634 100644 --- a/qt-ui/diveplanner.h +++ b/qt-ui/diveplanner.h @@ -48,7 +48,7 @@ public: void rememberTanks(); bool tankInUse(int o2, int he); void copyCylinders(struct dive *d); - void copyCylindersFrom(struct dive *d); + void setupCylinders(); /** * @return the row number. */ diff --git a/qt-ui/mainwindow.cpp b/qt-ui/mainwindow.cpp index 82276f32e..52eb3d115 100644 --- a/qt-ui/mainwindow.cpp +++ b/qt-ui/mainwindow.cpp @@ -420,10 +420,7 @@ void MainWindow::on_actionDivePlanner_triggered() DivePlannerPointsModel::instance()->clear(); // setup the staging dive cylinders from the selected dive - if (current_dive) { - DivePlannerPointsModel::instance()->copyCylindersFrom(current_dive); - CylindersModel::instance()->copyFromDive(current_dive); - } + DivePlannerPointsModel::instance()->setupCylinders(); // create a simple starting dive, using the first gas from the just copied cylidners createFakeDiveForAddAndPlan(); |