mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
Undo: return number of changed dives from undo commands
To enable a "multiple dives edited" message, return the number of edited dives from dive edit undo commands. Since there are two kinds of these commands, viz. normal fields and tag fields, and the former use templates, create a common base class that can return the number of dives. Yes, the class hierarchy is getting scarily deep! At least, this gives a tiny bit of code-reuse. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
parent
1641147e7b
commit
03d5e641e1
5 changed files with 87 additions and 67 deletions
|
@ -25,15 +25,25 @@ static std::vector<dive *> getDives(bool currentDiveOnly)
|
|||
return res;
|
||||
}
|
||||
|
||||
template<typename T>
|
||||
EditBase<T>::EditBase(T newValue, bool currentDiveOnly) :
|
||||
value(std::move(newValue)),
|
||||
EditDivesBase::EditDivesBase(bool currentDiveOnly) :
|
||||
dives(getDives(currentDiveOnly)),
|
||||
selectedDives(getDiveSelection()),
|
||||
current(current_dive)
|
||||
{
|
||||
}
|
||||
|
||||
int EditDivesBase::numDives() const
|
||||
{
|
||||
return dives.size();
|
||||
}
|
||||
|
||||
template<typename T>
|
||||
EditBase<T>::EditBase(T newValue, bool currentDiveOnly) :
|
||||
EditDivesBase(currentDiveOnly),
|
||||
value(std::move(newValue))
|
||||
{
|
||||
}
|
||||
|
||||
// This is quite hackish: we can't use virtual functions in the constructor and
|
||||
// therefore can't initialize the list of dives [the values of the dives are
|
||||
// accessed by virtual functions]. Therefore, we (mis)use the fact that workToBeDone()
|
||||
|
@ -439,9 +449,7 @@ DiveField EditMode::fieldId() const
|
|||
|
||||
// ***** Tag based commands *****
|
||||
EditTagsBase::EditTagsBase(const QStringList &newListIn, bool currentDiveOnly) :
|
||||
dives(getDives(currentDiveOnly)),
|
||||
selectedDives(getDiveSelection()),
|
||||
current(current_dive),
|
||||
EditDivesBase(currentDiveOnly),
|
||||
newList(newListIn)
|
||||
{
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue