From 6d7a9b946634542dfa6b8649850ed87ba20c5db6 Mon Sep 17 00:00:00 2001 From: Anton Lundin Date: Thu, 17 Jul 2014 00:26:46 +0200 Subject: Use plot_data cylinderindex instead of event data For the info box, we can't use the event data, because its not 1:1 mapped to whats in the cylinder and what we actually switched to. Use the plot_data here we already calculated what we are switching to. Signed-off-by: Anton Lundin Signed-off-by: Dirk Hohndel --- qt-ui/profile/diveeventitem.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'qt-ui/profile') diff --git a/qt-ui/profile/diveeventitem.cpp b/qt-ui/profile/diveeventitem.cpp index 55408dfdc..201b4890a 100644 --- a/qt-ui/profile/diveeventitem.cpp +++ b/qt-ui/profile/diveeventitem.cpp @@ -87,9 +87,15 @@ void DiveEventItem::setupToolTipString() int type = internalEvent->type; if (value) { if (type == SAMPLE_EVENT_GASCHANGE || type == SAMPLE_EVENT_GASCHANGE2) { - struct gasmix *g = get_gasmix_from_event(internalEvent); + 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"); + return; + } + // We need to look at row + 1, where the new gas is active to find what we are switching to. + int cylinder_idx = dataModel->data(dataModel->index(result.first().row() + 1, DivePlotDataModel::CYLINDERINDEX)).toInt(); name += ": "; - name += gasname(g); + name += gasname(¤t_dive->cylinder[cylinder_idx].gasmix); } else if (type == SAMPLE_EVENT_PO2 && name == "SP change") { name += QString(":%1").arg((double)value / 1000); } else { -- cgit v1.2.3-70-g09d2