aboutsummaryrefslogtreecommitdiffstats
path: root/desktop-widgets/preferences
diff options
context:
space:
mode:
Diffstat (limited to 'desktop-widgets/preferences')
-rw-r--r--desktop-widgets/preferences/CMakeLists.txt1
-rw-r--r--desktop-widgets/preferences/preferences_graph.cpp78
-rw-r--r--desktop-widgets/preferences/preferences_graph.h27
-rw-r--r--desktop-widgets/preferences/preferences_graph.ui268
-rw-r--r--desktop-widgets/preferences/preferencesdialog.cpp2
5 files changed, 376 insertions, 0 deletions
diff --git a/desktop-widgets/preferences/CMakeLists.txt b/desktop-widgets/preferences/CMakeLists.txt
index 8ea4bd79c..b3ef4e3d5 100644
--- a/desktop-widgets/preferences/CMakeLists.txt
+++ b/desktop-widgets/preferences/CMakeLists.txt
@@ -16,6 +16,7 @@ set(SUBSURFACE_PREFERENCES_LIB_SRCS
preferences_georeference.cpp
preferences_defaults.cpp
preferences_units.cpp
+ preferences_graph.cpp
)
source_group("Subsurface Preferences" FILES ${SUBSURFACE_PREFERENCES_LIB_SRCS})
diff --git a/desktop-widgets/preferences/preferences_graph.cpp b/desktop-widgets/preferences/preferences_graph.cpp
new file mode 100644
index 000000000..f671076f4
--- /dev/null
+++ b/desktop-widgets/preferences/preferences_graph.cpp
@@ -0,0 +1,78 @@
+#include "preferences_graph.h"
+#include "ui_preferences_graph.h"
+#include "subsurface-core/prefs-macros.h"
+
+#include <QSettings>
+#include <QMessageBox>
+
+#include "qt-models/models.h"
+
+PreferencesGraph::PreferencesGraph() : AbstractPreferencesWidget(tr("Graph"), QIcon(":graph"), 5)
+{
+ ui = new Ui::PreferencesGraph();
+ ui->setupUi(this);
+}
+
+PreferencesGraph::~PreferencesGraph()
+{
+ delete ui;
+}
+
+void PreferencesGraph::refreshSettings()
+{
+ ui->pheThreshold->setValue(prefs.pp_graphs.phe_threshold);
+ ui->po2Threshold->setValue(prefs.pp_graphs.po2_threshold);
+ ui->pn2Threshold->setValue(prefs.pp_graphs.pn2_threshold);
+ ui->maxpo2->setValue(prefs.modpO2);
+ ui->red_ceiling->setChecked(prefs.redceiling);
+
+ ui->gflow->setValue(prefs.gflow);
+ ui->gfhigh->setValue(prefs.gfhigh);
+ ui->gf_low_at_maxdepth->setChecked(prefs.gf_low_at_maxdepth);
+ ui->show_ccr_setpoint->setChecked(prefs.show_ccr_setpoint);
+ ui->show_ccr_sensors->setChecked(prefs.show_ccr_sensors);
+ ui->defaultSetpoint->setValue((double)prefs.defaultsetpoint / 1000.0);
+ ui->psro2rate->setValue(prefs.o2consumption / 1000.0);
+ ui->pscrfactor->setValue(rint(1000.0 / prefs.pscr_ratio));
+
+ ui->display_unused_tanks->setChecked(prefs.display_unused_tanks);
+ ui->show_average_depth->setChecked(prefs.show_average_depth);
+}
+
+void PreferencesGraph::syncSettings()
+{
+ QSettings s;
+
+ s.beginGroup("GeneralSettings");
+ s.setValue("defaultsetpoint", rint(ui->defaultSetpoint->value() * 1000.0));
+ s.setValue("o2consumption", rint(ui->psro2rate->value() *1000.0));
+ s.setValue("pscr_ratio", rint(1000.0 / ui->pscrfactor->value()));
+ s.endGroup();
+
+ // Graph
+ s.beginGroup("TecDetails");
+ SAVE_OR_REMOVE("phethreshold", default_prefs.pp_graphs.phe_threshold, ui->pheThreshold->value());
+ SAVE_OR_REMOVE("po2threshold", default_prefs.pp_graphs.po2_threshold, ui->po2Threshold->value());
+ SAVE_OR_REMOVE("pn2threshold", default_prefs.pp_graphs.pn2_threshold, ui->pn2Threshold->value());
+ SAVE_OR_REMOVE("modpO2", default_prefs.modpO2, ui->maxpo2->value());
+ SAVE_OR_REMOVE("redceiling", default_prefs.redceiling, ui->red_ceiling->isChecked());
+ SAVE_OR_REMOVE("gflow", default_prefs.gflow, ui->gflow->value());
+ SAVE_OR_REMOVE("gfhigh", default_prefs.gfhigh, ui->gfhigh->value());
+ SAVE_OR_REMOVE("gf_low_at_maxdepth", default_prefs.gf_low_at_maxdepth, ui->gf_low_at_maxdepth->isChecked());
+ SAVE_OR_REMOVE("show_ccr_setpoint", default_prefs.show_ccr_setpoint, ui->show_ccr_setpoint->isChecked());
+ SAVE_OR_REMOVE("show_ccr_sensors", default_prefs.show_ccr_sensors, ui->show_ccr_sensors->isChecked());
+ SAVE_OR_REMOVE("display_unused_tanks", default_prefs.display_unused_tanks, ui->display_unused_tanks->isChecked());
+ SAVE_OR_REMOVE("show_average_depth", default_prefs.show_average_depth, ui->show_average_depth->isChecked());
+ s.endGroup();
+}
+
+#define DANGER_GF (gf > 100) ? "* { color: red; }" : ""
+void PreferencesGraph::on_gflow_valueChanged(int gf)
+{
+ ui->gflow->setStyleSheet(DANGER_GF);
+}
+void PreferencesGraph::on_gfhigh_valueChanged(int gf)
+{
+ ui->gfhigh->setStyleSheet(DANGER_GF);
+}
+#undef DANGER_GF \ No newline at end of file
diff --git a/desktop-widgets/preferences/preferences_graph.h b/desktop-widgets/preferences/preferences_graph.h
new file mode 100644
index 000000000..ca40c0a92
--- /dev/null
+++ b/desktop-widgets/preferences/preferences_graph.h
@@ -0,0 +1,27 @@
+#ifndef PREFERENCES_GRAPH_H
+#define PREFERENCES_GRAPH_H
+
+#include "abstractpreferenceswidget.h"
+
+namespace Ui {
+ class PreferencesGraph;
+}
+
+class PreferencesGraph : public AbstractPreferencesWidget {
+ Q_OBJECT
+public:
+ PreferencesGraph();
+ virtual ~PreferencesGraph();
+ virtual void refreshSettings();
+ virtual void syncSettings();
+
+private slots:
+ void on_gflow_valueChanged(int gf);
+ void on_gfhigh_valueChanged(int gf);
+
+private:
+ Ui::PreferencesGraph *ui;
+
+};
+
+#endif \ No newline at end of file
diff --git a/desktop-widgets/preferences/preferences_graph.ui b/desktop-widgets/preferences/preferences_graph.ui
new file mode 100644
index 000000000..bdbbc75d3
--- /dev/null
+++ b/desktop-widgets/preferences/preferences_graph.ui
@@ -0,0 +1,268 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>PreferencesGraph</class>
+ <widget class="QWidget" name="PreferencesGraph">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>505</width>
+ <height>623</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>Form</string>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout">
+ <item>
+ <widget class="QGroupBox" name="groupBox_4">
+ <property name="title">
+ <string>Show</string>
+ </property>
+ <layout class="QGridLayout" name="gridLayout">
+ <item row="0" column="0">
+ <widget class="QLabel" name="label_12">
+ <property name="enabled">
+ <bool>true</bool>
+ </property>
+ <property name="text">
+ <string>Threshold when showing pO₂</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1">
+ <widget class="QDoubleSpinBox" name="po2Threshold">
+ <property name="enabled">
+ <bool>true</bool>
+ </property>
+ <property name="singleStep">
+ <double>0.100000000000000</double>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0">
+ <widget class="QLabel" name="label_13">
+ <property name="enabled">
+ <bool>true</bool>
+ </property>
+ <property name="text">
+ <string>Threshold when showing pN₂</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1">
+ <widget class="QDoubleSpinBox" name="pn2Threshold">
+ <property name="enabled">
+ <bool>true</bool>
+ </property>
+ <property name="singleStep">
+ <double>0.100000000000000</double>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="0">
+ <widget class="QLabel" name="label_17">
+ <property name="enabled">
+ <bool>true</bool>
+ </property>
+ <property name="text">
+ <string>Threshold when showing pHe</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="1">
+ <widget class="QDoubleSpinBox" name="pheThreshold">
+ <property name="enabled">
+ <bool>true</bool>
+ </property>
+ <property name="singleStep">
+ <double>0.100000000000000</double>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="0">
+ <widget class="QLabel" name="label_18">
+ <property name="enabled">
+ <bool>true</bool>
+ </property>
+ <property name="text">
+ <string>Max pO₂ when showing MOD</string>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="1">
+ <widget class="QDoubleSpinBox" name="maxpo2">
+ <property name="enabled">
+ <bool>true</bool>
+ </property>
+ <property name="singleStep">
+ <double>0.100000000000000</double>
+ </property>
+ </widget>
+ </item>
+ <item row="4" column="0" colspan="2">
+ <widget class="QCheckBox" name="red_ceiling">
+ <property name="enabled">
+ <bool>true</bool>
+ </property>
+ <property name="text">
+ <string>Draw dive computer reported ceiling red</string>
+ </property>
+ </widget>
+ </item>
+ <item row="5" column="0" colspan="2">
+ <widget class="QCheckBox" name="display_unused_tanks">
+ <property name="text">
+ <string>Show unused cylinders in Equipment tab</string>
+ </property>
+ </widget>
+ </item>
+ <item row="6" column="0" colspan="2">
+ <widget class="QCheckBox" name="show_average_depth">
+ <property name="text">
+ <string>Show average depth</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <widget class="QGroupBox" name="groupBox_5">
+ <property name="title">
+ <string>Misc</string>
+ </property>
+ <layout class="QGridLayout" name="gridLayout_2">
+ <item row="0" column="1">
+ <widget class="QSpinBox" name="gflow">
+ <property name="minimum">
+ <number>1</number>
+ </property>
+ <property name="maximum">
+ <number>150</number>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="1">
+ <widget class="QDoubleSpinBox" name="defaultSetpoint">
+ <property name="suffix">
+ <string>bar</string>
+ </property>
+ <property name="decimals">
+ <number>2</number>
+ </property>
+ <property name="maximum">
+ <double>10.000000000000000</double>
+ </property>
+ <property name="singleStep">
+ <double>0.100000000000000</double>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="0">
+ <widget class="QLabel" name="label_26">
+ <property name="text">
+ <string>Default CCR set-point for dive planning</string>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="0">
+ <widget class="QLabel" name="pSCR">
+ <property name="text">
+ <string>pSCR O₂ metabolism rate</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="0">
+ <widget class="QLabel" name="label_19">
+ <property name="text">
+ <string>GFLow</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0">
+ <widget class="QLabel" name="label_20">
+ <property name="text">
+ <string>GFHigh</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1">
+ <widget class="QSpinBox" name="gfhigh">
+ <property name="minimum">
+ <number>1</number>
+ </property>
+ <property name="maximum">
+ <number>150</number>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="1">
+ <widget class="QDoubleSpinBox" name="psro2rate">
+ <property name="suffix">
+ <string>ℓ/min</string>
+ </property>
+ <property name="decimals">
+ <number>3</number>
+ </property>
+ </widget>
+ </item>
+ <item row="4" column="0">
+ <widget class="QLabel" name="label_28">
+ <property name="text">
+ <string>pSCR ratio</string>
+ </property>
+ </widget>
+ </item>
+ <item row="4" column="1">
+ <widget class="QSpinBox" name="pscrfactor">
+ <property name="suffix">
+ <string/>
+ </property>
+ <property name="prefix">
+ <string>1:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="7" column="0" colspan="2">
+ <widget class="QCheckBox" name="show_ccr_sensors">
+ <property name="text">
+ <string>CCR: show individual O₂ sensor values when viewing pO₂</string>
+ </property>
+ </widget>
+ </item>
+ <item row="6" column="0" colspan="2">
+ <widget class="QCheckBox" name="show_ccr_setpoint">
+ <property name="text">
+ <string>CCR: show setpoints when viewing pO₂</string>
+ </property>
+ </widget>
+ </item>
+ <item row="5" column="0" colspan="2">
+ <widget class="QCheckBox" name="gf_low_at_maxdepth">
+ <property name="text">
+ <string>GFLow at max depth</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <spacer name="verticalSpacer">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>40</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </widget>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/desktop-widgets/preferences/preferencesdialog.cpp b/desktop-widgets/preferences/preferencesdialog.cpp
index 7d9e17d7e..db1d30113 100644
--- a/desktop-widgets/preferences/preferencesdialog.cpp
+++ b/desktop-widgets/preferences/preferencesdialog.cpp
@@ -5,6 +5,7 @@
#include "preferences_georeference.h"
#include "preferences_defaults.h"
#include "preferences_units.h"
+#include "preferences_graph.h"
#include <QVBoxLayout>
#include <QHBoxLayout>
@@ -39,6 +40,7 @@ PreferencesDialogV2::PreferencesDialogV2()
addPreferencePage(new PreferencesGeoreference());
addPreferencePage(new PreferencesDefaults());
addPreferencePage(new PreferencesUnits());
+ addPreferencePage(new PreferencesGraph());
refreshPages();
connect(pagesList, &QListWidget::currentRowChanged,