summaryrefslogtreecommitdiffstats
path: root/desktop-widgets/command_divesite.h
diff options
context:
space:
mode:
authorGravatar Berthold Stoeger <bstoeger@mail.tuwien.ac.at>2019-03-13 20:58:25 +0100
committerGravatar Dirk Hohndel <dirk@hohndel.org>2019-04-12 18:19:07 +0300
commit56dcbd9588fa3b7d70a4b639b71cb18e1c462067 (patch)
tree7a82e3bcc5e56d8c755f1e0244b5ef296bebaa39 /desktop-widgets/command_divesite.h
parent2dcc0a7d1ebf6435060168f343df2adb5f0abb3c (diff)
downloadsubsurface-56dcbd9588fa3b7d70a4b639b71cb18e1c462067.tar.gz
Undo: implement undo of dive site addition
Implement a dive site addition undo command and connect it to the add dive site button. The added dive site has a default name ("new dive site"). Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
Diffstat (limited to 'desktop-widgets/command_divesite.h')
-rw-r--r--desktop-widgets/command_divesite.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/desktop-widgets/command_divesite.h b/desktop-widgets/command_divesite.h
index 78622862e..f436a84b4 100644
--- a/desktop-widgets/command_divesite.h
+++ b/desktop-widgets/command_divesite.h
@@ -11,6 +11,23 @@
// We put everything in a namespace, so that we can shorten names without polluting the global namespace
namespace Command {
+class AddDiveSite : public Base {
+public:
+ AddDiveSite(const QString &name);
+private:
+ bool workToBeDone() override;
+ void undo() override;
+ void redo() override;
+
+ // Note: we only add one dive site. Nevertheless, we use vectors so that we
+ // can reuse the dive site deletion code.
+ // For redo
+ std::vector<dive_site *> sitesToRemove;
+
+ // For undo
+ std::vector<OwningDiveSitePtr> sitesToAdd;
+};
+
class DeleteDiveSites : public Base {
public:
DeleteDiveSites(const QVector<dive_site *> &sites);