summaryrefslogtreecommitdiffstats
path: root/commands/command_pictures.h
diff options
context:
space:
mode:
authorGravatar Berthold Stoeger <bstoeger@mail.tuwien.ac.at>2020-04-17 23:18:58 +0200
committerGravatar Dirk Hohndel <dirk@hohndel.org>2020-05-06 13:58:09 -0700
commit434644b381cb1dc8d2080b19a9725bfe2660a217 (patch)
tree5c3ff5833d701e8528b79fb59e1a2e650925767a /commands/command_pictures.h
parent9962d47b56eb15aba9339b22845566535c168483 (diff)
downloadsubsurface-434644b381cb1dc8d2080b19a9725bfe2660a217.tar.gz
undo: make picture (media) deletion undoable
The code is rather complex. Firstly, we have different representations of pictures throughout the code. Secondly, this tries to do add the pictures in batches to the divepicture model and that is always rather tricky. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
Diffstat (limited to 'commands/command_pictures.h')
-rw-r--r--commands/command_pictures.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/commands/command_pictures.h b/commands/command_pictures.h
index f2381d111..802c63c6c 100644
--- a/commands/command_pictures.h
+++ b/commands/command_pictures.h
@@ -5,6 +5,7 @@
#define COMMAND_PICTURES_H
#include "command_base.h"
+#include "command.h" // for PictureListForDeletion/Addition
// We put everything in a namespace, so that we can shorten names without polluting the global namespace
namespace Command {
@@ -22,5 +23,17 @@ private:
bool workToBeDone() override;
};
+class RemovePictures final : public Base {
+public:
+ RemovePictures(const std::vector<PictureListForDeletion> &pictures);
+private:
+ std::vector<PictureListForDeletion> picturesToRemove; // for redo
+ std::vector<PictureListForAddition> picturesToAdd; // for undo
+
+ void undo() override;
+ void redo() override;
+ bool workToBeDone() override;
+};
+
} // namespace Command
#endif