summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Tomaz Canabrava <tcanabrava@kde.org>2013-05-04 19:36:40 -0300
committerGravatar Tomaz Canabrava <tcanabrava@kde.org>2013-05-04 19:36:40 -0300
commit09597cd2d8729ab368f2e423dbb1ef5235745f58 (patch)
treeac14919e187f12904fc4feeeefc0a408bbedd241
parent1b1ea35fac63ef7a6909f28e92bc2b4c24c2b7f4 (diff)
downloadsubsurface-09597cd2d8729ab368f2e423dbb1ef5235745f58.tar.gz
Plot of the Mean Deph
The mean depth now is plotted correctly. I wanted to do more stuff on this commit, but since it required that a few things on profile.c got moved to profile.h, commited to not have a huge blob for review. Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
-rw-r--r--profile.c27
-rw-r--r--profile.h28
-rw-r--r--qt-ui/profilegraphics.cpp13
3 files changed, 36 insertions, 32 deletions
diff --git a/profile.c b/profile.c
index be6efa1e6..161415e88 100644
--- a/profile.c
+++ b/profile.c
@@ -11,6 +11,7 @@
#endif
#include "divelist.h"
+#include "profile.h"
#include "libdivecomputer/parser.h"
#include "libdivecomputer/version.h"
@@ -24,31 +25,7 @@ static struct plot_data *last_pi_entry = NULL;
#define cairo_set_line_width_scaled(cr, w) \
cairo_set_line_width((cr), (w) * plot_scale);
-typedef enum { STABLE, SLOW, MODERATE, FAST, CRAZY } velocity_t;
-
-struct plot_data {
- unsigned int in_deco:1;
- unsigned int cylinderindex;
- int sec;
- /* pressure[0] is sensor pressure
- * pressure[1] is interpolated pressure */
- int pressure[2];
- int temperature;
- /* Depth info */
- int depth;
- int ceiling;
- int ndl;
- int stoptime;
- int stopdepth;
- int cns;
- int smoothed;
- double po2, pn2, phe;
- double mod, ead, end, eadd;
- velocity_t velocity;
- struct plot_data *min[3];
- struct plot_data *max[3];
- int avg[3];
-};
+
#define SENSOR_PR 0
#define INTERPOLATED_PR 1
diff --git a/profile.h b/profile.h
index 1ad6625db..2c293fa7d 100644
--- a/profile.h
+++ b/profile.h
@@ -11,10 +11,36 @@ typedef int bool;
#endif
#endif
-struct dive;
+#include "dive.h"
+
+typedef enum { STABLE, SLOW, MODERATE, FAST, CRAZY } velocity_t;
+
struct divecomputer;
struct graphics_context;
struct plot_info;
+struct plot_data {
+ unsigned int in_deco:1;
+ unsigned int cylinderindex;
+ int sec;
+ /* pressure[0] is sensor pressure
+ * pressure[1] is interpolated pressure */
+ int pressure[2];
+ int temperature;
+ /* Depth info */
+ int depth;
+ int ceiling;
+ int ndl;
+ int stoptime;
+ int stopdepth;
+ int cns;
+ int smoothed;
+ double po2, pn2, phe;
+ double mod, ead, end, eadd;
+ velocity_t velocity;
+ struct plot_data *min[3];
+ struct plot_data *max[3];
+ int avg[3];
+};
void calculate_max_limits(struct dive *dive, struct divecomputer *dc, struct graphics_context *gc);
struct plot_info *create_plot_info(struct dive *dive, struct divecomputer *dc, struct graphics_context *gc);
diff --git a/qt-ui/profilegraphics.cpp b/qt-ui/profilegraphics.cpp
index 01ad5ab45..891cd81bf 100644
--- a/qt-ui/profilegraphics.cpp
+++ b/qt-ui/profilegraphics.cpp
@@ -309,7 +309,7 @@ void ProfileGraphicsView::plot_depth_profile(struct graphics_context *gc, struct
}
maxline = MAX(pi->maxdepth + marker, maxdepth * 2 / 3);
- color = profile_color[TIME_GRID].at(0);
+ color = profile_color[DEPTH_GRID].at(0);
for (i = marker; i < maxline; i += marker) {
QGraphicsLineItem *line = new QGraphicsLineItem(SCALE(gc, 0, i), SCALE(gc, 1, i));
@@ -317,17 +317,18 @@ void ProfileGraphicsView::plot_depth_profile(struct graphics_context *gc, struct
scene()->addItem(line);
}
-#if 0
+
gc->leftx = 0; gc->rightx = maxtime;
+ color = profile_color[MEAN_DEPTH].at(0);
/* Show mean depth */
if (! gc->printer) {
- set_source_rgba(gc, MEAN_DEPTH);
- move_to(gc, 0, pi->meandepth);
- line_to(gc, pi->entry[pi->nr - 1].sec, pi->meandepth);
- cairo_stroke(cr);
+ QGraphicsLineItem *line = new QGraphicsLineItem(SCALE(gc, 0, pi->meandepth), SCALE(gc, pi->entry[pi->nr - 1].sec, pi->meandepth));
+ line->setPen(QPen(color));
+ scene()->addItem(line);
}
+#if 0
/*
* These are good for debugging text placement etc,
* but not for actual display..