summaryrefslogtreecommitdiffstats
path: root/qt-ui
diff options
context:
space:
mode:
authorGravatar Anton Lundin <glance@acc.umu.se>2014-11-12 23:33:40 +0100
committerGravatar Dirk Hohndel <dirk@hohndel.org>2014-11-12 14:42:15 -0800
commita06befc0075c19afbec31130b6d1e0f4447a2498 (patch)
tree7a34547df9bb69bdbdeb078f3e58fd10dce9908c /qt-ui
parent1617d437d413705977905673ddcde0d8ff0ba068 (diff)
downloadsubsurface-a06befc0075c19afbec31130b6d1e0f4447a2498.tar.gz
Support different salinity in planner
Depth is often mentioned in a length unit, but what we care about is pressure. When diving in fresh water the pressure is lower than the same depth in salt water. This adds support for using different salinities in planning. Signed-off-by: Anton Lundin <glance@acc.umu.se> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'qt-ui')
-rw-r--r--qt-ui/diveplanner.cpp13
-rw-r--r--qt-ui/diveplanner.h2
-rw-r--r--qt-ui/diveplanner.ui98
3 files changed, 84 insertions, 29 deletions
diff --git a/qt-ui/diveplanner.cpp b/qt-ui/diveplanner.cpp
index d825c6e84..b8d251c2c 100644
--- a/qt-ui/diveplanner.cpp
+++ b/qt-ui/diveplanner.cpp
@@ -297,6 +297,7 @@ DivePlannerWidget::DivePlannerWidget(QWidget *parent, Qt::WindowFlags f) : QWidg
connect(ui.dateEdit, SIGNAL(dateChanged(QDate)), plannerModel, SLOT(setStartDate(QDate)));
connect(ui.ATMPressure, SIGNAL(valueChanged(int)), this, SLOT(atmPressureChanged(int)));
connect(ui.atmHeight, SIGNAL(valueChanged(int)), this, SLOT(heightChanged(int)));
+ connect(ui.salinity, SIGNAL(valueChanged(double)), this, SLOT(salinityChanged(double)));
connect(DivePlannerPointsModel::instance(), SIGNAL(startTimeChanged(QDateTime)), this, SLOT(setupStartTime(QDateTime)));
// Creating (and canceling) the plan
@@ -367,6 +368,12 @@ void DivePlannerWidget::heightChanged(const int height)
plannerModel->setSurfacePressure(pressure);
}
+void DivePlannerWidget::salinityChanged(const double salinity)
+{
+ /* Salinity is expressed in weight in grams per 10l */
+ plannerModel->setSalinity(10000 * salinity);
+}
+
void PlannerSettingsWidget::bottomSacChanged(const double bottomSac)
{
plannerModel->setBottomSac(bottomSac);
@@ -786,6 +793,12 @@ void DivePlannerPointsModel::setSurfacePressure(int pressure)
emit dataChanged(createIndex(0, 0), createIndex(rowCount() - 1, COLUMNS - 1));
}
+void DivePlannerPointsModel::setSalinity(int salinity)
+{
+ diveplan.salinity = salinity;
+ emit dataChanged(createIndex(0, 0), createIndex(rowCount() - 1, COLUMNS - 1));
+}
+
int DivePlannerPointsModel::getSurfacePressure()
{
return diveplan.surface_pressure;
diff --git a/qt-ui/diveplanner.h b/qt-ui/diveplanner.h
index c613ae210..bca0deb78 100644
--- a/qt-ui/diveplanner.h
+++ b/qt-ui/diveplanner.h
@@ -70,6 +70,7 @@ slots:
void setGFLow(const int ghflow);
void triggerGFLow();
void setSurfacePressure(int pressure);
+ void setSalinity(int salinity);
int getSurfacePressure();
void setBottomSac(double sac);
void setDecoSac(double sac);
@@ -146,6 +147,7 @@ slots:
void settingsChanged();
void atmPressureChanged(const int pressure);
void heightChanged(const int height);
+ void salinityChanged(const double salinity);
void printDecoPlan();
private:
diff --git a/qt-ui/diveplanner.ui b/qt-ui/diveplanner.ui
index 54abcc35a..0edd742fa 100644
--- a/qt-ui/diveplanner.ui
+++ b/qt-ui/diveplanner.ui
@@ -65,7 +65,7 @@
<property name="spacing">
<number>2</number>
</property>
- <item row="6" column="0" colspan="2">
+ <item row="5" column="0" colspan="3">
<widget class="TableView" name="tableWidget" native="true">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="MinimumExpanding">
@@ -81,7 +81,7 @@
</property>
</widget>
</item>
- <item row="5" column="0" colspan="2">
+ <item row="4" column="0" colspan="3">
<widget class="TableView" name="cylinderTableWidget" native="true">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
@@ -110,7 +110,30 @@
</property>
</widget>
</item>
+ <item row="1" column="0">
+ <widget class="QDateEdit" name="dateEdit">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="calendarPopup">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
<item row="1" column="1">
+ <widget class="QTimeEdit" name="startTime">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="2">
<widget class="QDialogButtonBox" name="buttonBox">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
@@ -123,33 +146,6 @@
</property>
</widget>
</item>
- <item row="1" column="0">
- <layout class="QHBoxLayout" name="dateAndTime">
- <item>
- <widget class="QDateEdit" name="dateEdit">
- <property name="sizePolicy">
- <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="calendarPopup">
- <bool>true</bool>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QTimeEdit" name="startTime">
- <property name="sizePolicy">
- <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- </widget>
- </item>
- </layout>
- </item>
<item row="2" column="0">
<widget class="QLabel" name="label_7">
<property name="text">
@@ -164,8 +160,21 @@
</property>
</widget>
</item>
+ <item row="2" column="2">
+ <widget class="QLabel" name="label_3">
+ <property name="text">
+ <string>Salinity</string>
+ </property>
+ </widget>
+ </item>
<item row="3" column="1">
<widget class="QSpinBox" name="ATMPressure">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
<property name="suffix">
<string>mbar</string>
</property>
@@ -179,6 +188,12 @@
</item>
<item row="3" column="0">
<widget class="QSpinBox" name="atmHeight">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
<property name="suffix">
<string>m</string>
</property>
@@ -193,6 +208,31 @@
</property>
</widget>
</item>
+ <item row="3" column="2">
+ <widget class="QDoubleSpinBox" name="salinity">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="suffix">
+ <string> kg/ℓ</string>
+ </property>
+ <property name="minimum">
+ <double>1.000000000000000</double>
+ </property>
+ <property name="maximum">
+ <double>1.050000000000000</double>
+ </property>
+ <property name="singleStep">
+ <double>0.010000000000000</double>
+ </property>
+ <property name="value">
+ <double>1.030000000000000</double>
+ </property>
+ </widget>
+ </item>
</layout>
</widget>
</widget>