summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Robert Helling <helling@atdotde.de>2013-06-27 10:56:46 +0200
committerGravatar Dirk Hohndel <dirk@hohndel.org>2013-06-27 19:51:04 +0800
commit8eb2dc3d65f2364379e82deac8f91d3a8f380015 (patch)
treecdcdaefe63dd257931cf64ac75d642481ad55f07
parent1ec8bc5de0518f9859fe7c44a55b3bdd14dd8b7e (diff)
downloadsubsurface-8eb2dc3d65f2364379e82deac8f91d3a8f380015.tar.gz
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>
-rw-r--r--dive.h2
-rw-r--r--planner.c3
-rw-r--r--qt-ui/diveplanner.cpp30
3 files changed, 17 insertions, 18 deletions
diff --git a/dive.h b/dive.h
index 8152496ce..1c1d49640 100644
--- a/dive.h
+++ b/dive.h
@@ -718,7 +718,7 @@ struct diveplan {
struct divedatapoint *dp;
};
-void plan_add_segment(struct diveplan *diveplan, int duration, int depth, int o2, int he, int po2);
+struct divedatapoint *plan_add_segment(struct diveplan *diveplan, int duration, int depth, int o2, int he, int po2);
void add_depth_to_nth_dp(struct diveplan *diveplan, int idx, int depth);
void add_gas_to_nth_dp(struct diveplan *diveplan, int idx, int o2, int he);
void free_dps(struct divedatapoint *dp);
diff --git a/planner.c b/planner.c
index 8345d160e..56fc0ac46 100644
--- a/planner.c
+++ b/planner.c
@@ -391,10 +391,11 @@ void add_to_end_of_diveplan(struct diveplan *diveplan, struct divedatapoint *dp)
dp->time += lasttime;
}
-void plan_add_segment(struct diveplan *diveplan, int duration, int depth, int o2, int he, int po2)
+struct divedatapoint * plan_add_segment(struct diveplan *diveplan, int duration, int depth, int o2, int he, int po2)
{
struct divedatapoint *dp = create_dp(duration, depth, o2, he, po2);
add_to_end_of_diveplan(diveplan, dp);
+ return(dp);
}
struct gaschanges {
diff --git a/qt-ui/diveplanner.cpp b/qt-ui/diveplanner.cpp
index 8cd389777..182a75226 100644
--- a/qt-ui/diveplanner.cpp
+++ b/qt-ui/diveplanner.cpp
@@ -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();
}