mirror of
https://github.com/subsurface/subsurface.git
synced 2024-11-28 05:00:20 +00:00
Planner: enforce minimal segement duration
You cannot be at two depths at the same time (and it confuses the planner). So give yourself at least 10 seconds. Signed-off-by: Robert C. Helling <helling@atdotde.de> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
6ad55cd63b
commit
e946ce98fe
1 changed files with 27 additions and 9 deletions
|
@ -339,16 +339,34 @@ bool DivePlannerPointsModel::setData(const QModelIndex &index, const QVariant &v
|
|||
}
|
||||
break;
|
||||
case RUNTIME:
|
||||
p.time = value.toInt() * 60;
|
||||
{
|
||||
int secs = value.toInt() * 60;
|
||||
i = index.row();
|
||||
int duration = secs;
|
||||
if (i)
|
||||
duration -= divepoints[i-1].time;
|
||||
// Make sure segments have a minimal duration
|
||||
if (duration <= 0)
|
||||
secs += 10 - duration;
|
||||
p.time = secs;
|
||||
while (++i < divepoints.size())
|
||||
if (divepoints[i].time < divepoints[i - 1].time + 10)
|
||||
divepoints[i].time = divepoints[i - 1].time + 10;
|
||||
}
|
||||
break;
|
||||
case DURATION:
|
||||
{
|
||||
int secs = value.toInt() * 60;
|
||||
if (!secs)
|
||||
secs = 10;
|
||||
i = index.row();
|
||||
if (i)
|
||||
shift = divepoints[i].time - divepoints[i - 1].time - value.toInt() * 60;
|
||||
shift = divepoints[i].time - divepoints[i - 1].time - secs;
|
||||
else
|
||||
shift = divepoints[i].time - value.toInt() * 60;
|
||||
shift = divepoints[i].time - secs;
|
||||
while (i < divepoints.size())
|
||||
divepoints[i++].time -= shift;
|
||||
}
|
||||
break;
|
||||
case CCSETPOINT: {
|
||||
int po2 = 0;
|
||||
|
|
Loading…
Reference in a new issue