aboutsummaryrefslogtreecommitdiffstats
path: root/commands/command_pictures.h
diff options
context:
space:
mode:
Diffstat (limited to 'commands/command_pictures.h')
-rw-r--r--commands/command_pictures.h26
1 files changed, 26 insertions, 0 deletions
diff --git a/commands/command_pictures.h b/commands/command_pictures.h
index 802c63c6c..472a92565 100644
--- a/commands/command_pictures.h
+++ b/commands/command_pictures.h
@@ -35,5 +35,31 @@ private:
bool workToBeDone() override;
};
+class AddPictures final : public Base {
+public:
+ AddPictures(const std::vector<PictureListForAddition> &pictures);
+private:
+ struct DiveSiteEntry {
+ dive *d;
+ dive_site *ds;
+ };
+ struct DiveSiteEditEntry {
+ dive_site *ds;
+ location_t location;
+ };
+ std::vector<PictureListForAddition> picturesToAdd; // for redo
+ std::vector<OwningDiveSitePtr> sitesToAdd; //for redo
+ std::vector<PictureListForDeletion> picturesToRemove; // for undo
+ std::vector<dive_site *> sitesToRemove; // for undo
+ std::vector<DiveSiteEntry> sitesToSet; // for redo and undo
+ std::vector<DiveSiteEditEntry> sitesToEdit; // for redo and undo
+
+ void swapDiveSites();
+
+ void undo() override;
+ void redo() override;
+ bool workToBeDone() override;
+};
+
} // namespace Command
#endif