diff options
author | Berthold Stoeger <bstoeger@mail.tuwien.ac.at> | 2019-11-13 15:08:40 +0100 |
---|---|---|
committer | bstoeger <32835590+bstoeger@users.noreply.github.com> | 2019-11-14 21:02:07 +0100 |
commit | 5e29245e689fe9401ee1c33ebb07c601ce25e8c6 (patch) | |
tree | a656bcb0e9357b8cab78c5ad196fc6e5a4da4c31 /commands/command.cpp | |
parent | 685b92b9c2ddd6575ae5df7c95b928e60fcd7005 (diff) | |
download | subsurface-5e29245e689fe9401ee1c33ebb07c601ce25e8c6.tar.gz |
Refactoring: move undo commands to top level
In the future we might want to use undo-commands for mobile as
well (even if not implementing undo).
Therefore, move the undo-command source from desktop-widgets
to their own commands top-level folder.
Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
Diffstat (limited to 'commands/command.cpp')
-rw-r--r-- | commands/command.cpp | 257 |
1 files changed, 257 insertions, 0 deletions
diff --git a/commands/command.cpp b/commands/command.cpp new file mode 100644 index 000000000..4257324ec --- /dev/null +++ b/commands/command.cpp @@ -0,0 +1,257 @@ +// SPDX-License-Identifier: GPL-2.0 + +#include "command.h" +#include "command_divelist.h" +#include "command_divesite.h" +#include "command_edit.h" +#include "command_edit_trip.h" + +namespace Command { + +// Dive-list related commands +void addDive(dive *d, bool autogroup, bool newNumber) +{ + execute(new AddDive(d, autogroup, newNumber)); +} + +void importDives(struct dive_table *dives, struct trip_table *trips, struct dive_site_table *sites, int flags, const QString &source) +{ + execute(new ImportDives(dives, trips, sites, flags, source)); +} + +void deleteDive(const QVector<struct dive*> &divesToDelete) +{ + execute(new DeleteDive(divesToDelete)); +} + +void shiftTime(const QVector<dive *> &changedDives, int amount) +{ + execute(new ShiftTime(changedDives, amount)); +} + +void renumberDives(const QVector<QPair<dive *, int>> &divesToRenumber) +{ + execute(new RenumberDives(divesToRenumber)); +} + +void removeDivesFromTrip(const QVector<dive *> &divesToRemove) +{ + execute(new RemoveDivesFromTrip(divesToRemove)); +} + +void removeAutogenTrips() +{ + execute(new RemoveAutogenTrips); +} + +void addDivesToTrip(const QVector<dive *> &divesToAddIn, dive_trip *trip) +{ + execute(new AddDivesToTrip(divesToAddIn, trip)); +} + +void createTrip(const QVector<dive *> &divesToAddIn) +{ + execute(new CreateTrip(divesToAddIn)); +} + +void autogroupDives() +{ + execute(new AutogroupDives); +} + +void mergeTrips(dive_trip *trip1, dive_trip *trip2) +{ + execute(new MergeTrips(trip1, trip2)); +} + +void splitDives(dive *d, duration_t time) +{ + execute(new SplitDives(d, time)); +} + +void splitDiveComputer(dive *d, int dc_num) +{ + execute(new SplitDiveComputer(d, dc_num)); +} + +void moveDiveComputerToFront(dive *d, int dc_num) +{ + execute(new MoveDiveComputerToFront(d, dc_num)); +} + +void deleteDiveComputer(dive *d, int dc_num) +{ + execute(new DeleteDiveComputer(d, dc_num)); +} + +void mergeDives(const QVector <dive *> &dives) +{ + execute(new MergeDives(dives)); +} + +// Dive site related commands +void deleteDiveSites(const QVector <dive_site *> &sites) +{ + execute(new DeleteDiveSites(sites)); +} + +void editDiveSiteName(dive_site *ds, const QString &value) +{ + execute(new EditDiveSiteName(ds, value)); +} + +void editDiveSiteDescription(dive_site *ds, const QString &value) +{ + execute(new EditDiveSiteDescription(ds, value)); +} + +void editDiveSiteNotes(dive_site *ds, const QString &value) +{ + execute(new EditDiveSiteNotes(ds, value)); +} + +void editDiveSiteCountry(dive_site *ds, const QString &value) +{ + execute(new EditDiveSiteCountry(ds, value)); +} + +void editDiveSiteLocation(dive_site *ds, location_t value) +{ + execute(new EditDiveSiteLocation(ds, value)); +} + +void editDiveSiteTaxonomy(dive_site *ds, taxonomy_data &value) +{ + execute(new EditDiveSiteTaxonomy(ds, value)); +} + +void addDiveSite(const QString &name) +{ + execute(new AddDiveSite(name)); +} + +void importDiveSites(struct dive_site_table *sites, const QString &source) +{ + execute(new ImportDiveSites(sites, source)); +} + +void mergeDiveSites(dive_site *ds, const QVector<dive_site *> &sites) +{ + execute(new MergeDiveSites(ds, sites)); +} + +void purgeUnusedDiveSites() +{ + execute(new PurgeUnusedDiveSites); +} + +// Execute an edit-command and return number of edited dives +static int execute_edit(EditDivesBase *cmd) +{ + int count = cmd->numDives(); + return execute(cmd) ? count : 0; +} + +// Dive editing related commands +int editNotes(const QString &newValue, bool currentDiveOnly) +{ + return execute_edit(new EditNotes(newValue, currentDiveOnly)); +} + +int editMode(int index, int newValue, bool currentDiveOnly) +{ + return execute_edit(new EditMode(index, newValue, currentDiveOnly)); +} + +int editNumber(int newValue, bool currentDiveOnly) +{ + return execute_edit(new EditNumber(newValue, currentDiveOnly)); +} + +int editSuit(const QString &newValue, bool currentDiveOnly) +{ + return execute_edit(new EditSuit(newValue, currentDiveOnly)); +} + +int editRating(int newValue, bool currentDiveOnly) +{ + return execute_edit(new EditRating(newValue, currentDiveOnly)); +} + +int editVisibility(int newValue, bool currentDiveOnly) +{ + return execute_edit(new EditVisibility(newValue, currentDiveOnly)); +} + +int editAirTemp(int newValue, bool currentDiveOnly) +{ + return execute_edit(new EditAirTemp(newValue, currentDiveOnly)); +} + +int editWaterTemp(int newValue, bool currentDiveOnly) +{ + return execute_edit(new EditWaterTemp(newValue, currentDiveOnly)); +} + +int editAtmPress(int newValue, bool currentDiveOnly) +{ + return execute_edit(new EditAtmPress(newValue, currentDiveOnly)); +} + +int editDepth(int newValue, bool currentDiveOnly) +{ + return execute_edit(new EditDepth(newValue, currentDiveOnly)); +} + +int editDuration(int newValue, bool currentDiveOnly) +{ + return execute_edit(new EditDuration(newValue, currentDiveOnly)); +} + +int editDiveSite(struct dive_site *newValue, bool currentDiveOnly) +{ + return execute_edit(new EditDiveSite(newValue, currentDiveOnly)); +} + +int editDiveSiteNew(const QString &newName, bool currentDiveOnly) +{ + return execute_edit(new EditDiveSiteNew(newName, currentDiveOnly)); +} + +int editTags(const QStringList &newList, bool currentDiveOnly) +{ + return execute_edit(new EditTags(newList, currentDiveOnly)); +} + +int editBuddies(const QStringList &newList, bool currentDiveOnly) +{ + return execute_edit(new EditBuddies(newList, currentDiveOnly)); +} + +int editDiveMaster(const QStringList &newList, bool currentDiveOnly) +{ + return execute_edit(new EditDiveMaster(newList, currentDiveOnly)); +} + +void pasteDives(const dive *d, dive_components what) +{ + execute(new PasteDives(d, what)); +} + +void replanDive(dive *d) +{ + execute(new ReplanDive(d)); +} + +// Trip editing related commands +void editTripLocation(dive_trip *trip, const QString &s) +{ + execute(new EditTripLocation(trip, s)); +} + +void editTripNotes(dive_trip *trip, const QString &s) +{ + execute(new EditTripNotes(trip, s)); +} + +} // namespace Command |