summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--qt-ui/graphicsview-common.cpp13
-rw-r--r--qt-ui/graphicsview-common.h2
-rw-r--r--qt-ui/profile/diveprofileitem.cpp6
3 files changed, 18 insertions, 3 deletions
diff --git a/qt-ui/graphicsview-common.cpp b/qt-ui/graphicsview-common.cpp
index 5415cfe1f..4d96aa8c6 100644
--- a/qt-ui/graphicsview-common.cpp
+++ b/qt-ui/graphicsview-common.cpp
@@ -62,3 +62,16 @@ QColor getColor(const color_indice_t i, bool isGrayscale = false)
return profile_color[i].at((isGrayscale) ? 1 : 0);
return QColor(Qt::black);
}
+
+QColor getSacColor(int sac, int avg_sac)
+{
+ int sac_index = 0;
+ int delta = sac - avg_sac + 7000;
+
+ sac_index = delta / 2000;
+ if (sac_index < 0)
+ sac_index = 0;
+ if (sac_index > SAC_COLORS - 1)
+ sac_index = SAC_COLORS - 1;
+ return getColor((color_indice_t)(SAC_COLORS_START_IDX + sac_index), false);
+} \ No newline at end of file
diff --git a/qt-ui/graphicsview-common.h b/qt-ui/graphicsview-common.h
index c00b2d69c..5f9dd19b7 100644
--- a/qt-ui/graphicsview-common.h
+++ b/qt-ui/graphicsview-common.h
@@ -35,7 +35,7 @@ typedef enum {
extern QMap<color_indice_t, QVector<QColor> > profile_color;
void fill_profile_color();
QColor getColor(const color_indice_t i);
-
+QColor getSacColor(int sac, int diveSac);
struct text_render_options {
double size;
color_indice_t color;
diff --git a/qt-ui/profile/diveprofileitem.cpp b/qt-ui/profile/diveprofileitem.cpp
index b7682f9df..23c41a708 100644
--- a/qt-ui/profile/diveprofileitem.cpp
+++ b/qt-ui/profile/diveprofileitem.cpp
@@ -359,9 +359,11 @@ void DiveGasPressureItem::paint(QPainter* painter, const QStyleOptionGraphicsIte
QPen pen;
pen.setCosmetic(true);
pen.setWidth(2);
+ struct dive *d = getDiveById(dataModel->id());
+ struct plot_data *entry = dataModel->data();
Q_FOREACH(const QPolygonF& poly, polygons) {
- for (int i = 1, count = poly.count(); i < count; i++) {
- pen.setBrush(QBrush(Qt::red)); // TODO: Fix the color.
+ for (int i = 1, count = poly.count(); i < count; i++, entry++) {
+ pen.setBrush(getSacColor(entry->sac, d->sac));
painter->setPen(pen);
painter->drawLine(poly[i-1],poly[i]);
}