On Thu, Jul 17, 2014 at 12:26:46AM +0200, Anton Lundin wrote:
> 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.

I'm curious - is this fixing a bug? Why the change?

/D

> diff --git a/qt-ui/profile/diveeventitem.cpp b/qt-ui/profile/diveeventitem.cpp
> index 55408df..201b489 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(&current_dive->cylinder[cylinder_idx].gasmix);
>               } else if (type == SAMPLE_EVENT_PO2 && name == "SP change") {
>                       name += QString(":%1").arg((double)value / 1000);
>               } else {
_______________________________________________
subsurface mailing list
[email protected]
http://lists.hohndel.org/cgi-bin/mailman/listinfo/subsurface

Reply via email to