mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
Recalculate the decompression if the date / time of a dive changes
The pre-existing tissue load going into a dive can change if the start time of a dive changes. Therefore we need to recalculate the ceiling when editing start time (or date) of a dive. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
e1db94ea0c
commit
71d21c375c
4 changed files with 15 additions and 1 deletions
|
@ -978,6 +978,7 @@ void MainTab::on_dateEdit_dateChanged(const QDate &date)
|
||||||
dateTime.setTimeSpec(Qt::UTC);
|
dateTime.setTimeSpec(Qt::UTC);
|
||||||
dateTime.setDate(date);
|
dateTime.setDate(date);
|
||||||
DivePlannerPointsModel::instance()->getDiveplan().when = displayed_dive.when = dateTime.toTime_t();
|
DivePlannerPointsModel::instance()->getDiveplan().when = displayed_dive.when = dateTime.toTime_t();
|
||||||
|
emit dateTimeChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainTab::on_timeEdit_timeChanged(const QTime &time)
|
void MainTab::on_timeEdit_timeChanged(const QTime &time)
|
||||||
|
@ -989,6 +990,7 @@ void MainTab::on_timeEdit_timeChanged(const QTime &time)
|
||||||
dateTime.setTimeSpec(Qt::UTC);
|
dateTime.setTimeSpec(Qt::UTC);
|
||||||
dateTime.setTime(time);
|
dateTime.setTime(time);
|
||||||
DivePlannerPointsModel::instance()->getDiveplan().when = displayed_dive.when = dateTime.toTime_t();
|
DivePlannerPointsModel::instance()->getDiveplan().when = displayed_dive.when = dateTime.toTime_t();
|
||||||
|
emit dateTimeChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
// changing the tags on multiple dives is semantically strange - what's the right thing to do?
|
// changing the tags on multiple dives is semantically strange - what's the right thing to do?
|
||||||
|
|
|
@ -53,6 +53,7 @@ public:
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void addDiveFinished();
|
void addDiveFinished();
|
||||||
|
void dateTimeChanged();
|
||||||
|
|
||||||
public
|
public
|
||||||
slots:
|
slots:
|
||||||
|
|
|
@ -11,6 +11,7 @@
|
||||||
#include "helpers.h"
|
#include "helpers.h"
|
||||||
#include "diveplanner.h"
|
#include "diveplanner.h"
|
||||||
#include "libdivecomputer/parser.h"
|
#include "libdivecomputer/parser.h"
|
||||||
|
#include "mainwindow.h"
|
||||||
|
|
||||||
#include <QPen>
|
#include <QPen>
|
||||||
#include <QPainter>
|
#include <QPainter>
|
||||||
|
@ -675,6 +676,7 @@ DiveCalculatedCeiling::DiveCalculatedCeiling() : is3mIncrement(false), gradientF
|
||||||
gradientFactor->setY(0);
|
gradientFactor->setY(0);
|
||||||
gradientFactor->setBrush(getColor(PRESSURE_TEXT));
|
gradientFactor->setBrush(getColor(PRESSURE_TEXT));
|
||||||
gradientFactor->setAlignment(Qt::AlignHCenter | Qt::AlignBottom);
|
gradientFactor->setAlignment(Qt::AlignHCenter | Qt::AlignBottom);
|
||||||
|
connect(MainWindow::instance()->information(), SIGNAL(dateTimeChanged()), this, SLOT(recalc()));
|
||||||
settingsChanged();
|
settingsChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -757,11 +759,16 @@ void DiveReportedCeiling::modelDataChanged(const QModelIndex &topLeft, const QMo
|
||||||
setBrush(pat);
|
setBrush(pat);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void DiveCalculatedCeiling::recalc()
|
||||||
|
{
|
||||||
|
dataModel->calculateDecompression();
|
||||||
|
}
|
||||||
|
|
||||||
void DiveCalculatedCeiling::settingsChanged()
|
void DiveCalculatedCeiling::settingsChanged()
|
||||||
{
|
{
|
||||||
if (dataModel && is3mIncrement != prefs.calcceiling3m) {
|
if (dataModel && is3mIncrement != prefs.calcceiling3m) {
|
||||||
// recalculate that part.
|
// recalculate that part.
|
||||||
dataModel->calculateDecompression();
|
recalc();
|
||||||
}
|
}
|
||||||
is3mIncrement = prefs.calcceiling3m;
|
is3mIncrement = prefs.calcceiling3m;
|
||||||
setVisible(prefs.calcceiling);
|
setVisible(prefs.calcceiling);
|
||||||
|
|
|
@ -162,6 +162,10 @@ public:
|
||||||
virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0);
|
virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0);
|
||||||
virtual void settingsChanged();
|
virtual void settingsChanged();
|
||||||
|
|
||||||
|
public
|
||||||
|
slots:
|
||||||
|
void recalc();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
bool is3mIncrement;
|
bool is3mIncrement;
|
||||||
DiveTextItem *gradientFactor;
|
DiveTextItem *gradientFactor;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue