summaryrefslogtreecommitdiffstats
path: root/qt-models/weightmodel.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'qt-models/weightmodel.cpp')
-rw-r--r--qt-models/weightmodel.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/qt-models/weightmodel.cpp b/qt-models/weightmodel.cpp
index b8e9ffa5d..6f913c63b 100644
--- a/qt-models/weightmodel.cpp
+++ b/qt-models/weightmodel.cpp
@@ -4,6 +4,7 @@
#include "core/gettextfromc.h"
#include "core/metrics.h"
#include "core/qthelper.h"
+#include "core/subsurface-qt/DiveListNotifier.h"
#include "qt-models/weightsysteminfomodel.h"
WeightModel::WeightModel(QObject *parent) : CleanerTableModel(parent),
@@ -12,6 +13,7 @@ WeightModel::WeightModel(QObject *parent) : CleanerTableModel(parent),
{
//enum Column {REMOVE, TYPE, WEIGHT};
setHeaderDataStrings(QStringList() << tr("") << tr("Type") << tr("Weight"));
+ connect(&diveListNotifier, &DiveListNotifier::weightsystemsReset, this, &WeightModel::weightsystemsReset);
}
weightsystem_t *WeightModel::weightSystemAt(const QModelIndex &index)
@@ -173,3 +175,17 @@ void WeightModel::updateDive()
endInsertRows();
}
}
+
+void WeightModel::weightsystemsReset(dive_trip *trip, const QVector<dive *> &dives)
+{
+ // This model only concerns the currently displayed dive. If this is not among the
+ // dives that had their cylinders reset, exit.
+ if (!current_dive || std::find(dives.begin(), dives.end(), current_dive) == dives.end())
+ return;
+
+ // Copy the cylinders from the current dive to the displayed dive.
+ copy_weights(current_dive, &displayed_dive);
+
+ // And update the model..
+ updateDive();
+}