aboutsummaryrefslogtreecommitdiffstats
path: root/qt-ui
diff options
context:
space:
mode:
authorGravatar Tomaz Canabrava <tcanabrava@kde.org>2013-05-09 15:37:43 -0300
committerGravatar Dirk Hohndel <dirk@hohndel.org>2013-05-09 17:50:06 -0700
commitd6d1a10195e1d14bafb5987d5f7b8e776a82b4be (patch)
treed26ba4425b4accbcee0ed1def76bc87c857dd6a6 /qt-ui
parentc62e8e5baa647bfa2e4773bc611eaef7985a7bb7 (diff)
downloadsubsurface-d6d1a10195e1d14bafb5987d5f7b8e776a82b4be.tar.gz
Plotting depth text.
Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
Diffstat (limited to 'qt-ui')
-rw-r--r--qt-ui/profilegraphics.cpp57
-rw-r--r--qt-ui/profilegraphics.h4
2 files changed, 60 insertions, 1 deletions
diff --git a/qt-ui/profilegraphics.cpp b/qt-ui/profilegraphics.cpp
index 53d943e09..158cec286 100644
--- a/qt-ui/profilegraphics.cpp
+++ b/qt-ui/profilegraphics.cpp
@@ -246,7 +246,7 @@ void ProfileGraphicsView::plot(struct dive *dive)
/* Text on top of all graphs.. */
plot_temperature_text();
- plot_depth_text(gc, pi);
+ plot_depth_text();
#if 0
plot_cylinder_pressure_text(gc, pi);
@@ -292,6 +292,61 @@ void ProfileGraphicsView::plot(struct dive *dive)
#endif
}
+void ProfileGraphicsView::plot_depth_text()
+{
+ int maxtime, maxdepth;
+
+ /* Get plot scaling limits */
+ maxtime = get_maxtime(&gc.pi);
+ maxdepth = get_maxdepth(&gc.pi);
+
+ gc.leftx = 0; gc.rightx = maxtime;
+ gc.topy = 0; gc.bottomy = maxdepth;
+
+ plot_text_samples();
+}
+
+void ProfileGraphicsView::plot_text_samples()
+{
+ static text_render_options_t deep = {14, SAMPLE_DEEP, CENTER, TOP};
+ static text_render_options_t shallow = {14, SAMPLE_SHALLOW, CENTER, BOTTOM};
+ int i;
+ int last = -1;
+
+ struct plot_info* pi = &gc.pi;
+
+ for (i = 0; i < pi->nr; i++) {
+ struct plot_data *entry = pi->entry + i;
+
+ if (entry->depth < 2000)
+ continue;
+
+ if ((entry == entry->max[2]) && entry->depth != last) {
+ plot_depth_sample(entry, &deep);
+ last = entry->depth;
+ }
+
+ if ((entry == entry->min[2]) && entry->depth != last) {
+ plot_depth_sample(entry, &shallow);
+ last = entry->depth;
+ }
+
+ if (entry->depth != last)
+ last = -1;
+ }
+}
+
+void ProfileGraphicsView::plot_depth_sample(struct plot_data *entry,text_render_options_t *tro)
+{
+ int sec = entry->sec, decimals;
+ double d;
+
+ d = get_depth_units(entry->depth, &decimals, NULL);
+
+ plot_text(tro, sec, entry->depth, QString("%1").arg(d)); // , decimals, d);
+}
+
+
void ProfileGraphicsView::plot_temperature_text()
{
int i;
diff --git a/qt-ui/profilegraphics.h b/qt-ui/profilegraphics.h
index d6c30dda2..c1c3c2837 100644
--- a/qt-ui/profilegraphics.h
+++ b/qt-ui/profilegraphics.h
@@ -99,6 +99,10 @@ private:
void plot_cylinder_pressure(struct dive *dive, struct divecomputer *dc);
void plot_temperature_text();
void plot_single_temp_text(int sec, int mkelvin);
+ void plot_depth_text();
+ void plot_text_samples();
+ void plot_depth_sample(struct plot_data *entry, text_render_options_t *tro);
+
QColor get_sac_color(int sac, int avg_sac);
QPen defaultPen;