summaryrefslogtreecommitdiffstats
path: root/desktop-widgets/command_edit.cpp
diff options
context:
space:
mode:
authorGravatar Berthold Stoeger <bstoeger@mail.tuwien.ac.at>2019-02-10 17:37:06 +0100
committerGravatar Dirk Hohndel <dirk@hohndel.org>2019-04-12 18:19:07 +0300
commitc82f4487f985a2d3fd832a1acce60fa052f9f246 (patch)
tree56c573892c607ebf1feef3ca7b4c46158decfbb3 /desktop-widgets/command_edit.cpp
parent02d572226df82ccbdfff3c455c9e5b20a7992bc4 (diff)
downloadsubsurface-c82f4487f985a2d3fd832a1acce60fa052f9f246.tar.gz
Undo: implement undo of depth and duration editing
This was a bit different from the other editing commands: 1) Only the current dive is edited not all selected dives. Therefore, create a function that turns the current dive into a one-element list. 2) The profile has to be replot. Here, likewise, create a function to do that. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
Diffstat (limited to 'desktop-widgets/command_edit.cpp')
-rw-r--r--desktop-widgets/command_edit.cpp48
1 files changed, 48 insertions, 0 deletions
diff --git a/desktop-widgets/command_edit.cpp b/desktop-widgets/command_edit.cpp
index 8366db153..73080061b 100644
--- a/desktop-widgets/command_edit.cpp
+++ b/desktop-widgets/command_edit.cpp
@@ -215,6 +215,54 @@ DiveField EditWaterTemp::fieldId() const
return DiveField::WATER_TEMP;
}
+// ***** Duration *****
+void EditDuration::set(struct dive *d, int value) const
+{
+ d->dc.duration.seconds = value;
+ d->duration = d->dc.duration;
+ d->dc.meandepth.mm = 0;
+ d->dc.samples = 0;
+}
+
+int EditDuration::data(struct dive *d) const
+{
+ return d->duration.seconds;
+}
+
+QString EditDuration::fieldName() const
+{
+ return tr("duration");
+}
+
+DiveField EditDuration::fieldId() const
+{
+ return DiveField::DURATION;
+}
+
+// ***** Depth *****
+void EditDepth::set(struct dive *d, int value) const
+{
+ d->dc.maxdepth.mm = value;
+ d->maxdepth = d->dc.maxdepth;
+ d->dc.meandepth.mm = 0;
+ d->dc.samples = 0;
+}
+
+int EditDepth::data(struct dive *d) const
+{
+ return d->maxdepth.mm;
+}
+
+QString EditDepth::fieldName() const
+{
+ return tr("depth");
+}
+
+DiveField EditDepth::fieldId() const
+{
+ return DiveField::DEPTH;
+}
+
// ***** DiveSite *****
void EditDiveSite::set(struct dive *d, struct dive_site *dive_site) const
{