mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
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>
This commit is contained in:
parent
2dcc0a7d1e
commit
56dcbd9588
6 changed files with 55 additions and 0 deletions
|
@ -62,6 +62,28 @@ static std::vector<OwningDiveSitePtr> removeDiveSites(std::vector<dive_site *> &
|
|||
return res;
|
||||
}
|
||||
|
||||
AddDiveSite::AddDiveSite(const QString &name)
|
||||
{
|
||||
setText(tr("add dive site"));
|
||||
sitesToAdd.emplace_back(alloc_dive_site());
|
||||
sitesToAdd.back()->name = copy_qstring(name);
|
||||
}
|
||||
|
||||
bool AddDiveSite::workToBeDone()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
void AddDiveSite::redo()
|
||||
{
|
||||
sitesToRemove = std::move(addDiveSites(sitesToAdd));
|
||||
}
|
||||
|
||||
void AddDiveSite::undo()
|
||||
{
|
||||
sitesToAdd = std::move(removeDiveSites(sitesToRemove));
|
||||
}
|
||||
|
||||
DeleteDiveSites::DeleteDiveSites(const QVector<dive_site *> &sites) : sitesToRemove(sites.toStdVector())
|
||||
{
|
||||
setText(tr("delete %n dive site(s)", "", sites.size()));
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue