diff options
-rw-r--r-- | core/color.cpp | 11 | ||||
-rw-r--r-- | core/color.h | 1 | ||||
-rw-r--r-- | profile-widget/diveprofileitem.cpp | 12 |
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]); } |