summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Robert C. Helling <helling@atdotde.de>2017-05-14 09:26:36 +0200
committerGravatar Dirk Hohndel <dirk@hohndel.org>2017-05-26 15:52:04 -0700
commit98a65b7157933ec7b9c63da70b44d6450f32c38c (patch)
treee3af42d0f316e7114a0eef6cbd1a3e64e245936d
parentbb6ceba4ac0310c504f931674a71e9e77c0afa1c (diff)
downloadsubsurface-98a65b7157933ec7b9c63da70b44d6450f32c38c.tar.gz
Display gas density instead of SAC in planner
In the planner, the SAC is prescribed, so there is little use in plotting it (as the color of the cylinder pressure line). Rather use the color to show the density of breathing gas. Signed-off-by: Robert C. Helling <helling@atdotde.de>
-rw-r--r--core/color.cpp11
-rw-r--r--core/color.h1
-rw-r--r--profile-widget/diveprofileitem.cpp12
3 files changed, 20 insertions, 4 deletions
diff --git a/core/color.cpp b/core/color.cpp
index e63f6e569..e86b9f62b 100644
--- a/core/color.cpp
+++ b/core/color.cpp
@@ -87,3 +87,14 @@ QColor getSacColor(int sac, int avg_sac)
sac_index = SAC_COLORS - 1;
return getColor((color_indice_t)(SAC_COLORS_START_IDX + sac_index), false);
}
+
+QColor getPressureColor(double density)
+{
+ QColor color;
+
+ int h = ((int) (180.0 - 180.0 * density / 8.0));
+ while (h < 0)
+ h += 360;
+ color.setHsv(h , 255, 255);
+ return color;
+}
diff --git a/core/color.h b/core/color.h
index bd0dbad3a..ef60d17d3 100644
--- a/core/color.h
+++ b/core/color.h
@@ -142,6 +142,7 @@ extern QMap<color_indice_t, QVector<QColor> > profile_color;
void fill_profile_color();
QColor getColor(const color_indice_t i, bool isGrayscale = false);
QColor getSacColor(int sac, int diveSac);
+QColor getPressureColor(double density);
struct text_render_options {
double size;
color_indice_t color;
diff --git a/profile-widget/diveprofileitem.cpp b/profile-widget/diveprofileitem.cpp
index 71a965ad8..ee03e9e6e 100644
--- a/profile-widget/diveprofileitem.cpp
+++ b/profile-widget/diveprofileitem.cpp
@@ -831,10 +831,14 @@ void DiveGasPressureItem::paint(QPainter *painter, const QStyleOptionGraphicsIte
Q_FOREACH (const QPolygonF &poly, polygons) {
entry = dataModel->data().entry;
for (int i = 1, count = poly.count(); i < count; i++, entry++) {
- if (entry->sac)
- pen.setBrush(getSacColor(entry->sac, displayed_dive.sac));
- else
- pen.setBrush(MED_GRAY_HIGH_TRANS);
+ if (!in_planner()) {
+ if (entry->sac)
+ pen.setBrush(getSacColor(entry->sac, displayed_dive.sac));
+ else
+ pen.setBrush(MED_GRAY_HIGH_TRANS);
+ } else {
+ pen.setBrush(getPressureColor(entry->density));
+ }
painter->setPen(pen);
painter->drawLine(poly[i - 1], poly[i]);
}