From f5862201a86051191290887414c5ed05fd450853 Mon Sep 17 00:00:00 2001 From: Dirk Hohndel Date: Sun, 23 Feb 2014 08:35:06 -0800 Subject: [PATCH] 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 --- qt-ui/profile/diveeventitem.cpp | 16 +++++++++------- 1 file 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); - } }