summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Rick Walsh <rickmwalsh@gmail.com>2016-07-06 22:40:37 +1000
committerGravatar Dirk Hohndel <dirk@hohndel.org>2016-07-09 12:08:48 -0700
commitbb3151795188fc5ef53053ce004dc1d1f2de63a1 (patch)
tree03e4fce2ec15be5af9f405a82b12c404d4af0e75
parentffca5674bf62381e6ebb05715b71ed3d801d6ca7 (diff)
downloadsubsurface-bb3151795188fc5ef53053ce004dc1d1f2de63a1.tar.gz
Planner: update cylinder mixes and MND and MOD when prefs are changed
Signed-off-by: Rick Walsh <rickmwalsh@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
-rw-r--r--desktop-widgets/diveplanner.cpp3
-rw-r--r--qt-models/cylindermodel.cpp2
-rw-r--r--qt-models/cylindermodel.h2
3 files changed, 6 insertions, 1 deletions
diff --git a/desktop-widgets/diveplanner.cpp b/desktop-widgets/diveplanner.cpp
index 31dd4bb93..4c740af07 100644
--- a/desktop-widgets/diveplanner.cpp
+++ b/desktop-widgets/diveplanner.cpp
@@ -21,6 +21,7 @@
#define UNIT_FACTOR ((prefs.units.length == units::METERS) ? 1000.0 / 60.0 : feet_to_mm(1.0) / 60.0)
static DivePlannerPointsModel* plannerModel = DivePlannerPointsModel::instance();
+static CylindersModel* cylinderModel = CylindersModel::instance();
DiveHandler::DiveHandler() : QGraphicsEllipseItem()
{
@@ -354,8 +355,10 @@ PlannerSettingsWidget::PlannerSettingsWidget(QWidget *parent, Qt::WindowFlags f)
connect(ui.descRate, SIGNAL(valueChanged(int)), this, SLOT(setDescRate(int)));
connect(ui.descRate, SIGNAL(valueChanged(int)), plannerModel, SLOT(emitDataChanged()));
connect(ui.bottompo2, SIGNAL(valueChanged(double)), this, SLOT(setBottomPo2(double)));
+ connect(ui.bottompo2, SIGNAL(valueChanged(double)), cylinderModel, SLOT(updateBestMixes()));
connect(ui.decopo2, SIGNAL(valueChanged(double)), this, SLOT(setDecoPo2(double)));
connect(ui.bestmixEND, SIGNAL(valueChanged(int)), this, SLOT(setBestmixEND(int)));
+ connect(ui.bestmixEND, SIGNAL(valueChanged(int)), cylinderModel, SLOT(updateBestMixes()));
connect(ui.drop_stone_mode, SIGNAL(toggled(bool)), plannerModel, SLOT(setDropStoneMode(bool)));
connect(ui.bottomSAC, SIGNAL(valueChanged(double)), this, SLOT(bottomSacChanged(double)));
connect(ui.decoStopSAC, SIGNAL(valueChanged(double)), this, SLOT(decoSacChanged(double)));
diff --git a/qt-models/cylindermodel.cpp b/qt-models/cylindermodel.cpp
index 9d85cb661..4d9fe9beb 100644
--- a/qt-models/cylindermodel.cpp
+++ b/qt-models/cylindermodel.cpp
@@ -506,6 +506,8 @@ bool CylindersModel::updateBestMixes()
gasUpdated = true;
}
}
+ /* This slot is called when the bottom pO2 and END preferences are updated, we want to
+ * emit dataChanged so MOD and MND are refreshed, even if the gas mix hasn't been changed */
emit dataChanged(createIndex(0, 0), createIndex(MAX_CYLINDERS - 1, COLUMNS - 1));
return gasUpdated;
}
diff --git a/qt-models/cylindermodel.h b/qt-models/cylindermodel.h
index d4ef8dc41..ce2c87e69 100644
--- a/qt-models/cylindermodel.h
+++ b/qt-models/cylindermodel.h
@@ -38,13 +38,13 @@ public:
void updateDive();
void copyFromDive(struct dive *d);
void updateDecoDepths(pressure_t olddecopo2);
- bool updateBestMixes();
cylinder_t *cylinderAt(const QModelIndex &index);
bool changed;
public
slots:
void remove(const QModelIndex &index);
+ bool updateBestMixes();
private:
int rows;