mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
profile: properly update lastgasmix when populating events
When populating the events of a profile, a pointer to the current gasmix was passed around to properly calculate isobaric_counterdiffusion. The DiveEventItem::setupToolTipString() function updated this gasmix when processing gas change events. I inadvertently broke the code when replacing gasmix-pointers by values. We could of course simply revert this part of the commit. However, the data flow was horrible anyway: for example is supposed that the setup functions were called in the correct order (i.e. DiveEventItem::setupToolTipString() is called after all other functions using the gasmix). Not exactly easy to follow. Therefore, keep passing around the gasmix as value to make it clear that the functions don't modify it. Keep the gasmix up-to-date at the caller's site in ProfileWidget2::plotDive(). Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
parent
9c70261c0e
commit
f4b948e80d
2 changed files with 2 additions and 1 deletions
|
@ -195,7 +195,6 @@ void DiveEventItem::setupToolTipString(struct gasmix lastgasmix)
|
|||
name += QString::fromUtf8(mb.buffer, mb.len);
|
||||
free_buffer(&mb);
|
||||
}
|
||||
lastgasmix = mix;
|
||||
} else if (same_string(internalEvent->name, "modechange")) {
|
||||
name += QString(": %1").arg(gettextFromC::tr(divemode_text_ui[internalEvent->value]));
|
||||
} else if (value) {
|
||||
|
|
|
@ -802,6 +802,8 @@ void ProfileWidget2::plotDive(const struct dive *d, bool force, bool doClearPict
|
|||
item->setZValue(2);
|
||||
scene()->addItem(item);
|
||||
eventItems.push_back(item);
|
||||
if (event_is_gaschange(event))
|
||||
lastgasmix = get_gasmix_from_event(&displayed_dive, event);
|
||||
event = event->next;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue