From 630eece8b23daa0668c649efadf45b420c948e70 Mon Sep 17 00:00:00 2001 From: Dirk Hohndel Date: Wed, 15 Jan 2014 16:40:40 +0700 Subject: Fix "hide unused cylinder" behavior There are at least two scenarios where our old code was flat out wrong. If you manually add a cylinder (because you may want to switch to it in the profile), then at least until the next time you restart Subsurface this cylinder should be shown. Also, when you switch to a cylinder by adding a gas switch event on the profile, that change should then make that cylinder visible. Signed-off-by: Dirk Hohndel --- qt-ui/models.cpp | 2 ++ qt-ui/profilegraphics.cpp | 3 +++ 2 files changed, 5 insertions(+) diff --git a/qt-ui/models.cpp b/qt-ui/models.cpp index 63b97ad19..80f4073f7 100644 --- a/qt-ui/models.cpp +++ b/qt-ui/models.cpp @@ -274,6 +274,8 @@ void CylindersModel::add() int row = rows; fill_default_cylinder(¤t->cylinder[row]); + // mark the cylinder as 'used' since it was manually added + current->cylinder[row].used = true; beginInsertRows(QModelIndex(), row, row); rows++; changed = true; diff --git a/qt-ui/profilegraphics.cpp b/qt-ui/profilegraphics.cpp index 5334d4565..310d96f78 100644 --- a/qt-ui/profilegraphics.cpp +++ b/qt-ui/profilegraphics.cpp @@ -198,6 +198,9 @@ void ProfileGraphicsView::changeGas() validate_gas(gas.toUtf8().constData(), &o2, &he); int seconds = scenePos.x() / gc.maxx * (gc.rightx - gc.leftx) + gc.leftx; add_gas_switch_event(current_dive, current_dc, seconds, get_gasidx(current_dive, o2, he)); + // this means we potentially have a new tank that is being used and needs to be shown + fixup_dive(current_dive); + mainWindow()->information()->updateDiveInfo(selected_dive); mark_divelist_changed(true); plot(current_dive, true); } -- cgit v1.2.3-70-g09d2