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.setDate(date);
|
||||
DivePlannerPointsModel::instance()->getDiveplan().when = displayed_dive.when = dateTime.toTime_t();
|
||||
emit dateTimeChanged();
|
||||
}
|
||||
|
||||
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.setTime(time);
|
||||
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?
|
||||
|
|
|
@ -53,6 +53,7 @@ public:
|
|||
|
||||
signals:
|
||||
void addDiveFinished();
|
||||
void dateTimeChanged();
|
||||
|
||||
public
|
||||
slots:
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
#include "helpers.h"
|
||||
#include "diveplanner.h"
|
||||
#include "libdivecomputer/parser.h"
|
||||
#include "mainwindow.h"
|
||||
|
||||
#include <QPen>
|
||||
#include <QPainter>
|
||||
|
@ -675,6 +676,7 @@ DiveCalculatedCeiling::DiveCalculatedCeiling() : is3mIncrement(false), gradientF
|
|||
gradientFactor->setY(0);
|
||||
gradientFactor->setBrush(getColor(PRESSURE_TEXT));
|
||||
gradientFactor->setAlignment(Qt::AlignHCenter | Qt::AlignBottom);
|
||||
connect(MainWindow::instance()->information(), SIGNAL(dateTimeChanged()), this, SLOT(recalc()));
|
||||
settingsChanged();
|
||||
}
|
||||
|
||||
|
@ -757,11 +759,16 @@ void DiveReportedCeiling::modelDataChanged(const QModelIndex &topLeft, const QMo
|
|||
setBrush(pat);
|
||||
}
|
||||
|
||||
void DiveCalculatedCeiling::recalc()
|
||||
{
|
||||
dataModel->calculateDecompression();
|
||||
}
|
||||
|
||||
void DiveCalculatedCeiling::settingsChanged()
|
||||
{
|
||||
if (dataModel && is3mIncrement != prefs.calcceiling3m) {
|
||||
// recalculate that part.
|
||||
dataModel->calculateDecompression();
|
||||
recalc();
|
||||
}
|
||||
is3mIncrement = prefs.calcceiling3m;
|
||||
setVisible(prefs.calcceiling);
|
||||
|
|
|
@ -162,6 +162,10 @@ public:
|
|||
virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0);
|
||||
virtual void settingsChanged();
|
||||
|
||||
public
|
||||
slots:
|
||||
void recalc();
|
||||
|
||||
private:
|
||||
bool is3mIncrement;
|
||||
DiveTextItem *gradientFactor;
|
||||
|
|
Loading…
Add table
Reference in a new issue