diff options
author | Dirk Hohndel <dirk@hohndel.org> | 2015-12-01 15:20:32 -0800 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2015-12-01 15:20:32 -0800 |
commit | 9dd26a00e86eb0c7e5f0f9650f021b24e73d67df (patch) | |
tree | bc92795fcb411d6240c609ecbca7a3c93e4f987f /profile-widget/diveprofileitem.cpp | |
parent | dcce7358ff982f01764a7f373a531092e868ca81 (diff) | |
download | subsurface-9dd26a00e86eb0c7e5f0f9650f021b24e73d67df.tar.gz |
Profile: avoid potential crash
If things go as planned, then the length of the polygon is the same as the
number of rows in the model. Turns out when running Subsurface-mobile on
Android that simple truth doesn't seem to be correct. Most of the time
the polygon seems to have twice as many elements as the model. But a few
times I ended up in here with a polygon that had fewer elements than the
model. And then things crash.
This simply avoids the crash.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'profile-widget/diveprofileitem.cpp')
-rw-r--r-- | profile-widget/diveprofileitem.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/profile-widget/diveprofileitem.cpp b/profile-widget/diveprofileitem.cpp index ca87f4ed0..849a9d3de 100644 --- a/profile-widget/diveprofileitem.cpp +++ b/profile-widget/diveprofileitem.cpp @@ -135,7 +135,8 @@ void DiveProfileItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *o QModelIndex colorIndex = dataModel->index(i, DivePlotDataModel::COLOR); pen.setBrush(QBrush(colorIndex.data(Qt::BackgroundRole).value<QColor>())); painter->setPen(pen); - painter->drawLine(poly[i - 1], poly[i]); + if (i < poly.count()) + painter->drawLine(poly[i - 1], poly[i]); } painter->restore(); } |