From a67d3f0e30dab59a7b9fc3160b4d3a3462bc0397 Mon Sep 17 00:00:00 2001 From: Rick Walsh Date: Sun, 16 Oct 2016 19:24:38 +1100 Subject: [PATCH] Heatmap: Draw lines between data points rather than big dots By drawing oversize dots for each data point, dots were overlapping such that the change in tissue presssure wasn't displayed at the right time - typically out by 1-2 minutes, depending on dive duration. Drawing a line between discrete points, the data points don't overlap and change in tissue pressure is displayed at the right time. Signed-off-by: Rick Walsh Signed-off-by: Dirk Hohndel --- profile-widget/diveprofileitem.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/profile-widget/diveprofileitem.cpp b/profile-widget/diveprofileitem.cpp index b44586f7f..896174185 100644 --- a/profile-widget/diveprofileitem.cpp +++ b/profile-widget/diveprofileitem.cpp @@ -415,15 +415,15 @@ void DivePercentageItem::paint(QPainter *painter, const QStyleOptionGraphicsItem return; painter->save(); QPen mypen; + mypen.setWidthF(vAxis->posAtValue(0) - vAxis->posAtValue(4)); mypen.setCosmetic(false); - mypen.setWidth(5); QPolygonF poly = polygon(); - for (int i = 0, modelDataCount = dataModel->rowCount(); i < modelDataCount; i++) { + for (int i = 1, modelDataCount = dataModel->rowCount(); i < modelDataCount; i++) { if (i < poly.count()) { double value = dataModel->index(i, vDataColumn).data().toDouble(); mypen.setBrush(QBrush(ColorScale(value))); painter->setPen(mypen); - painter->drawPoint(poly[i]); + painter->drawLine(poly[i - 1], poly[i]); } } painter->restore();