diff options
author | Dirk Hohndel <dirk@hohndel.org> | 2014-02-23 08:35:06 -0800 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2014-02-23 08:35:06 -0800 |
commit | f5862201a86051191290887414c5ed05fd450853 (patch) | |
tree | ef3790b640fce6948e1ba26714b1cb9a79de552b /qt-ui/profile | |
parent | 48db63736b246a4731e8f907cd0990388862b8df (diff) | |
download | subsurface-f5862201a86051191290887414c5ed05fd450853.tar.gz |
Don't try to setup event if it is NULL
This also fixes the whitespace in a function that I instrumented to figure
out what's going on. I restored it to its original state, but I couldn't
leave the whitespace unfixed...
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'qt-ui/profile')
-rw-r--r-- | qt-ui/profile/diveeventitem.cpp | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/qt-ui/profile/diveeventitem.cpp b/qt-ui/profile/diveeventitem.cpp index 92aad1fc4..fc852da64 100644 --- a/qt-ui/profile/diveeventitem.cpp +++ b/qt-ui/profile/diveeventitem.cpp @@ -33,6 +33,8 @@ void DiveEventItem::setVerticalAxis(DiveCartesianAxis* axis) void DiveEventItem::setEvent(struct event* ev) { + if (!ev) + return; internalEvent = ev; setupPixmap(); setupToolTipString(); @@ -109,23 +111,23 @@ void DiveEventItem::eventVisibilityChanged(const QString& eventName, bool visibl void DiveEventItem::recalculatePos(bool instant) { - if (!vAxis || !hAxis || !internalEvent || !dataModel) { + if (!vAxis || !hAxis || !internalEvent || !dataModel) return; - } + QModelIndexList result = dataModel->match(dataModel->index(0,DivePlotDataModel::TIME), Qt::DisplayRole, internalEvent->time.seconds ); if (result.isEmpty()) { + Q_ASSERT("can't find a spot in the dataModel"); hide(); return; } - if (!isVisible()) { + if (!isVisible()) show(); - } + int depth = dataModel->data(dataModel->index(result.first().row(), DivePlotDataModel::DEPTH)).toInt(); qreal x = hAxis->posAtValue(internalEvent->time.seconds); qreal y = vAxis->posAtValue(depth); - if (!instant){ + if (!instant) Animations::moveTo(this, x, y, 500); - }else{ + else setPos(x,y); - } } |