From 432110ac8faa3775feab35d53a9cdbeecfa7fe27 Mon Sep 17 00:00:00 2001 From: "Robert C. Helling" Date: Wed, 18 Oct 2017 06:33:37 +0200 Subject: Find current gasmix for heatmap To compute the heatmap value, we need the current gasmix but the current cylinderindex is no longer available. Fixes #562 Suggested-by: Linus Torvalds Signed-off-by: Robert C. Helling --- profile-widget/diveprofileitem.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'profile-widget') diff --git a/profile-widget/diveprofileitem.cpp b/profile-widget/diveprofileitem.cpp index 02a0745e7..1cd8fae4f 100644 --- a/profile-widget/diveprofileitem.cpp +++ b/profile-widget/diveprofileitem.cpp @@ -11,6 +11,7 @@ #endif #include "qt-models/diveplannermodel.h" #include "core/helpers.h" +#include "core/dive.h" #include "core/subsurface-qt/SettingsObjectWrapper.h" #include "libdivecomputer/parser.h" #include "profile-widget/profilewidget2.h" @@ -424,8 +425,11 @@ void DivePercentageItem::paint(QPainter *painter, const QStyleOptionGraphicsItem for (int i = 1, modelDataCount = dataModel->rowCount(); i < modelDataCount; i++) { if (i < poly.count()) { double value = dataModel->index(i, vDataColumn).data().toDouble(); - int cyl = dataModel->index(i, DivePlotDataModel::CYLINDERINDEX).data().toInt(); - int inert = 1000 - get_o2(&displayed_dive.cylinder[cyl].gasmix); + struct gasmix *gasmix = NULL; + struct event *ev = NULL; + int sec = dataModel->index(i, DivePlotDataModel::TIME).data().toInt(); + gasmix = get_gasmix(&displayed_dive, current_dc, sec, &ev, gasmix); + int inert = 1000 - get_o2(gasmix); mypen.setBrush(QBrush(ColorScale(value, inert))); painter->setPen(mypen); painter->drawLine(poly[i - 1], poly[i]); -- cgit v1.2.3-70-g09d2