mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
Dive site: implement purge of unused dive sites
Add a "purge unused dive sites" button to the dive site list. Connect it to a new PurgeUnusedDiveSites command. Implementation was trivial: simply copy the DeleteDiveSites command. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
parent
fde80eeaa5
commit
8858bfa1f8
7 changed files with 59 additions and 0 deletions
|
@ -105,6 +105,31 @@ void DeleteDiveSites::undo()
|
|||
sitesToRemove = std::move(addDiveSites(sitesToAdd));
|
||||
}
|
||||
|
||||
PurgeUnusedDiveSites::PurgeUnusedDiveSites()
|
||||
{
|
||||
setText(tr("purge unused dive sites"));
|
||||
for (int i = 0; i < dive_site_table.nr; ++i) {
|
||||
dive_site *ds = dive_site_table.dive_sites[i];
|
||||
if (ds->dives.nr == 0)
|
||||
sitesToRemove.push_back(ds);
|
||||
}
|
||||
}
|
||||
|
||||
bool PurgeUnusedDiveSites::workToBeDone()
|
||||
{
|
||||
return !sitesToRemove.empty();
|
||||
}
|
||||
|
||||
void PurgeUnusedDiveSites::redo()
|
||||
{
|
||||
sitesToAdd = std::move(removeDiveSites(sitesToRemove));
|
||||
}
|
||||
|
||||
void PurgeUnusedDiveSites::undo()
|
||||
{
|
||||
sitesToRemove = std::move(addDiveSites(sitesToAdd));
|
||||
}
|
||||
|
||||
// Helper function: swap C and Qt string
|
||||
static void swap(char *&c, QString &q)
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue