aboutsummaryrefslogtreecommitdiffstats
path: root/qt-ui
diff options
context:
space:
mode:
Diffstat (limited to 'qt-ui')
-rw-r--r--qt-ui/diveplanner.cpp30
-rw-r--r--qt-ui/diveplanner.h2
-rw-r--r--qt-ui/mainwindow.cpp5
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();