mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
Fix gaschange tooltip information
The code tried to look up the cylinder index from the Qt data models, which was not only horribly confusing, but was also buggy. I think the index ends up being off by one when the first cylinder change is hidden (because it's at the beginning of the dive), but I can't make heads or tails of that crazy code, so there might be something else going on. Just remove all the crazy code, and use the event data directly. Which gas the gasmix and the (potential) explicit cylinder index already. It's much more straightforward, and it just automatically gets the right end result whether some other event is hidden or not. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
c2b076548d
commit
9a4cafd0f1
1 changed files with 5 additions and 8 deletions
|
@ -101,15 +101,12 @@ void DiveEventItem::setupToolTipString()
|
|||
int type = internalEvent->type;
|
||||
if (value) {
|
||||
if (event_is_gaschange(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(&displayed_dive.cylinder[cylinder_idx].gasmix);
|
||||
name += gasname(&internalEvent->gas.mix);
|
||||
|
||||
/* Do we have an explicit cylinder index? Show it. */
|
||||
if (internalEvent->gas.index >= 0)
|
||||
name += QString(" (cyl %1)").arg(internalEvent->gas.index);
|
||||
} else if (type == SAMPLE_EVENT_PO2 && name == "SP change") {
|
||||
name += QString(":%1").arg((double)value / 1000);
|
||||
} else {
|
||||
|
|
Loading…
Add table
Reference in a new issue