summaryrefslogtreecommitdiffstats
path: root/qt-ui
diff options
context:
space:
mode:
authorGravatar Dirk Hohndel <dirk@hohndel.org>2014-01-15 16:40:40 +0700
committerGravatar Dirk Hohndel <dirk@hohndel.org>2014-01-15 16:40:40 +0700
commit630eece8b23daa0668c649efadf45b420c948e70 (patch)
tree40d1bcc1e82d51ee124b827e97dcc7a2c7929d97 /qt-ui
parent781b99170ce407bf64fe97c2c2e96149b774880a (diff)
downloadsubsurface-630eece8b23daa0668c649efadf45b420c948e70.tar.gz
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 <dirk@hohndel.org>
Diffstat (limited to 'qt-ui')
-rw-r--r--qt-ui/models.cpp2
-rw-r--r--qt-ui/profilegraphics.cpp3
2 files changed, 5 insertions, 0 deletions
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(&current->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);
}