// SPDX-License-Identifier: GPL-2.0 // Note: this header file is used by the undo-machinery and should not be included elsewhere. #ifndef COMMAND_DIVESITE_H #define COMMAND_DIVESITE_H #include "command_base.h" #include // 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 sitesToRemove; // For undo std::vector sitesToAdd; }; class DeleteDiveSites : public Base { public: DeleteDiveSites(const QVector &sites); private: bool workToBeDone() override; void undo() override; void redo() override; // For redo std::vector sitesToRemove; // For undo std::vector sitesToAdd; }; class EditDiveSiteName : public Base { public: EditDiveSiteName(dive_site *ds, const QString &name); private: bool workToBeDone() override; void undo() override; void redo() override; dive_site *ds; QString value; // Value to be set }; class EditDiveSiteDescription : public Base { public: EditDiveSiteDescription(dive_site *ds, const QString &description); private: bool workToBeDone() override; void undo() override; void redo() override; dive_site *ds; QString value; // Value to be set }; } // namespace Command #endif // COMMAND_DIVESITE_H