summaryrefslogtreecommitdiffstats
path: root/qt-models/cylindermodel.cpp
diff options
context:
space:
mode:
authorGravatar Berthold Stoeger <bstoeger@mail.tuwien.ac.at>2020-03-27 21:49:19 +0100
committerGravatar Berthold Stoeger <bstoeger@mail.tuwien.ac.at>2020-04-07 00:13:35 +0200
commit63414fc82394031a9ce9c25d635430107fde19e0 (patch)
treef785302452d549c391fde14d22464625d6007494 /qt-models/cylindermodel.cpp
parent2eeb5f4fc2d6da8a8c8950f0b479b7cb2055af07 (diff)
downloadsubsurface-63414fc82394031a9ce9c25d635430107fde19e0.tar.gz
undo: show multiple dive warning when editing equipment
When editing cylinders or weights directly in the table widgets, no warning was shown if multiple dives were affected. To solve this, emit signals from the respective models and catch them in dive equipment tab. Not very nice, but it works for now. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
Diffstat (limited to 'qt-models/cylindermodel.cpp')
-rw-r--r--qt-models/cylindermodel.cpp11
1 files changed, 7 insertions, 4 deletions
diff --git a/qt-models/cylindermodel.cpp b/qt-models/cylindermodel.cpp
index c7e1b186d..e519d347b 100644
--- a/qt-models/cylindermodel.cpp
+++ b/qt-models/cylindermodel.cpp
@@ -473,7 +473,8 @@ bool CylindersModel::setData(const QModelIndex &index, const QVariant &value, in
} else {
#ifndef SUBSURFACE_MOBILE
// On the EquipmentTab - place an editCylinder command.
- Command::editCylinder(index.row(), cyl, type, false);
+ int count = Command::editCylinder(index.row(), cyl, type, false);
+ emit divesEdited(count);
#endif
}
return true;
@@ -718,10 +719,12 @@ void CylindersModel::commitTempCyl(int row)
return;
// Only submit a command if the type changed
if (!same_string(cyl->type.description, tempCyl.type.description) || gettextFromC::tr(cyl->type.description) != QString(tempCyl.type.description)) {
- if (inPlanner)
+ if (inPlanner) {
std::swap(*cyl, tempCyl);
- else
- Command::editCylinder(tempRow, tempCyl, Command::EditCylinderType::TYPE, false);
+ } else {
+ int count = Command::editCylinder(tempRow, tempCyl, Command::EditCylinderType::TYPE, false);
+ emit divesEdited(count);
+ }
}
free_cylinder(tempCyl);
tempRow = -1;