Removes circle in plan

Remove circle in plan by starting the first line at the first point
rather than the last.

In addition marks all entered points as entered and not just the first and
sets line color accordingly.

Makes plan_add_segment return the added data point.

Signed-off-by: Robert C. Helling <helling@atdotde.de>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
Robert Helling 2013-06-27 10:56:46 +02:00 committed by Dirk Hohndel
parent 1ec8bc5de0
commit 8eb2dc3d65
3 changed files with 17 additions and 18 deletions

View file

@ -118,7 +118,8 @@ void DivePlannerGraphics::createDecoStops()
int po2 = 0;
int deltaT = lastH ? h->sec - lastH->sec : h->sec;
lastH = h;
plan_add_segment(&diveplan, deltaT, h->mm, o2, he, po2);
dp = plan_add_segment(&diveplan, deltaT, h->mm, o2, he, po2);
dp->entered = TRUE;
qDebug("time %d, depth %d", h->sec, h->mm);
}
#if DEBUG_PLAN
@ -165,21 +166,18 @@ void DivePlannerGraphics::createDecoStops()
// }
// Create all 'deco' GraphicsLineItems and put it on the canvas.
double lastx = handles.last()->x();
double lasty = handles.last()->y();
double lastx = handles.first()->x();
double lasty = handles.first()->y();
for (dp = diveplan.dp; dp != NULL; dp = dp->next) {
if (!dp->entered) {
// these are the nodes created by the deco
double xpos = timeLine->posAtValue(dp->time / 60.0);
double ypos = depthLine->posAtValue(dp->depth / 1000.0);
qDebug("time/depth %f/%f", dp->time / 60.0, dp->depth / 1000.0);
QGraphicsLineItem *item = new QGraphicsLineItem(lastx, lasty, xpos, ypos);
item->setPen(QPen(QBrush(Qt::red),0));
lastx = xpos;
lasty = ypos;
scene()->addItem(item);
lines << item;
}
double xpos = timeLine->posAtValue(dp->time / 60.0);
double ypos = depthLine->posAtValue(dp->depth / 1000.0);
qDebug("Not entered: time/depth %f/%f", dp->time / 60.0, dp->depth / 1000.0);
QGraphicsLineItem *item = new QGraphicsLineItem(lastx, lasty, xpos, ypos);
item->setPen(QPen(QBrush(dp->entered ? Qt::black : Qt::red),0));
lastx = xpos;
lasty = ypos;
scene()->addItem(item);
lines << item;
}
}
@ -250,7 +248,7 @@ void DivePlannerGraphics::moveActiveHandler(const QPointF& pos)
} else {
activeDraggedHandler->setPos(newPos);
}
qqDeleteAll(lines);
qDeleteAll(lines);
lines.clear();
}