aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Berthold Stoeger <bstoeger@mail.tuwien.ac.at>2020-05-05 11:51:20 +0200
committerGravatar Dirk Hohndel <dirk@hohndel.org>2020-05-06 11:44:22 -0700
commit16a35a8bbe2bd16398667795fe3f5c4a41beaf3e (patch)
treece334102b3e5c4663918b160ee033537edb8e210
parent30133946e0354339078dacb18869ae09747f2caf (diff)
downloadsubsurface-16a35a8bbe2bd16398667795fe3f5c4a41beaf3e.tar.gz
desktop: update information tab when cylinders change
The SAC rate, etc were only updated when switching between dives. They should always be updated when an undo command changes (adds, edits, removes) the cylinders of a dive. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
-rw-r--r--desktop-widgets/tab-widgets/TabDiveInformation.cpp11
-rw-r--r--desktop-widgets/tab-widgets/TabDiveInformation.h1
2 files changed, 12 insertions, 0 deletions
diff --git a/desktop-widgets/tab-widgets/TabDiveInformation.cpp b/desktop-widgets/tab-widgets/TabDiveInformation.cpp
index a91151fed..e73de4148 100644
--- a/desktop-widgets/tab-widgets/TabDiveInformation.cpp
+++ b/desktop-widgets/tab-widgets/TabDiveInformation.cpp
@@ -21,6 +21,9 @@ TabDiveInformation::TabDiveInformation(QWidget *parent) : TabBase(parent), ui(ne
{
ui->setupUi(this);
connect(&diveListNotifier, &DiveListNotifier::divesChanged, this, &TabDiveInformation::divesChanged);
+ connect(&diveListNotifier, &DiveListNotifier::cylinderAdded, this, &TabDiveInformation::cylinderChanged);
+ connect(&diveListNotifier, &DiveListNotifier::cylinderRemoved, this, &TabDiveInformation::cylinderChanged);
+ connect(&diveListNotifier, &DiveListNotifier::cylinderEdited, this, &TabDiveInformation::cylinderChanged);
QStringList atmPressTypes { "mbar", get_depth_unit() ,tr("Use DC")};
ui->atmPressType->insertItems(0, atmPressTypes);
pressTypeIndex = 0;
@@ -292,6 +295,14 @@ void TabDiveInformation::on_waterTypeCombo_activated(int index) {
ui->salinityOverWrittenIcon->setVisible(true);
}
+void TabDiveInformation::cylinderChanged(dive *d)
+{
+ // If this isn't the current dive, do nothing
+ if (current_dive != d)
+ return;
+ updateProfile();
+}
+
// This function gets called if a field gets updated by an undo command.
// Refresh the corresponding UI field.
void TabDiveInformation::divesChanged(const QVector<dive *> &dives, DiveField field)
diff --git a/desktop-widgets/tab-widgets/TabDiveInformation.h b/desktop-widgets/tab-widgets/TabDiveInformation.h
index f7c9022c9..8efa71d44 100644
--- a/desktop-widgets/tab-widgets/TabDiveInformation.h
+++ b/desktop-widgets/tab-widgets/TabDiveInformation.h
@@ -18,6 +18,7 @@ public:
void clear() override;
private slots:
void divesChanged(const QVector<dive *> &dives, DiveField field);
+ void cylinderChanged(dive *d);
void diveModeChanged(int index);
void on_atmPressVal_editingFinished();
void on_atmPressType_currentIndexChanged(int index);