Move the 'getSacColor' out of old profile and use it.

This patch makes the color of the cylinder pressure use the sac colors.

Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
Tomaz Canabrava 2014-01-27 16:17:08 -02:00 committed by Dirk Hohndel
parent 303badd5ce
commit fcc17c717d
3 changed files with 18 additions and 3 deletions

View file

@ -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);
}

View file

@ -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;

View file

@ -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]);
}