mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
Undo: make adding of weights an undoable action
Introduce an AddWeight undo command. This is modelled after the numerous dive-edit undo commands. The redo and undo actions are connected to the WeightModel via two new signals, weightAdded and weightRemoved. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
parent
76a5a38f5e
commit
147a36647c
8 changed files with 76 additions and 14 deletions
|
@ -953,4 +953,36 @@ void ReplanDive::redo()
|
|||
undo();
|
||||
}
|
||||
|
||||
// ***** Add Weight *****
|
||||
AddWeight::AddWeight(bool currentDiveOnly) :
|
||||
EditDivesBase(currentDiveOnly)
|
||||
{
|
||||
//: remove the part in parentheses for %n = 1
|
||||
setText(tr("Add weight (%n dive(s))", "", dives.size()));
|
||||
}
|
||||
|
||||
bool AddWeight::workToBeDone()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
void AddWeight::undo()
|
||||
{
|
||||
for (dive *d: dives) {
|
||||
if (d->weightsystems.nr <= 0)
|
||||
continue;
|
||||
remove_weightsystem(d, d->weightsystems.nr - 1);
|
||||
emit diveListNotifier.weightRemoved(d, d->weightsystems.nr);
|
||||
}
|
||||
}
|
||||
|
||||
void AddWeight::redo()
|
||||
{
|
||||
weightsystem_t ws { {0}, "" };
|
||||
for (dive *d: dives) {
|
||||
add_cloned_weightsystem(&d->weightsystems, ws);
|
||||
emit diveListNotifier.weightAdded(d, d->weightsystems.nr - 1);
|
||||
}
|
||||
}
|
||||
|
||||
} // namespace Command
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue