diff options
author | Tomaz Canabrava <tcanabrava@kde.org> | 2013-05-09 15:37:43 -0300 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2013-05-09 17:50:06 -0700 |
commit | d6d1a10195e1d14bafb5987d5f7b8e776a82b4be (patch) | |
tree | d26ba4425b4accbcee0ed1def76bc87c857dd6a6 /qt-ui | |
parent | c62e8e5baa647bfa2e4773bc611eaef7985a7bb7 (diff) | |
download | subsurface-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.cpp | 57 | ||||
-rw-r--r-- | qt-ui/profilegraphics.h | 4 |
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; |