summaryrefslogtreecommitdiffstats
path: root/qt-ui/divelistview.cpp
diff options
context:
space:
mode:
authorGravatar Grace Karanja <gracie.karanja89@gmail.com>2015-04-10 09:39:51 +0300
committerGravatar Dirk Hohndel <dirk@hohndel.org>2015-04-14 10:29:15 -0700
commit193edd9f13b4a1a6cbddd494de6b7aa38709be95 (patch)
tree0e2c4a9cdc0289b09933746973ec5476aa404bc2 /qt-ui/divelistview.cpp
parent8e32faa866a144fc29a806a7e61a72e7eaf2a9e4 (diff)
downloadsubsurface-193edd9f13b4a1a6cbddd494de6b7aa38709be95.tar.gz
Add ability to undo removing of dives from trips
Add the functionality to undo/redo removing of dives from trips. The code calling remove_dive_from_trip has moved to the UndoCommands class. Signed-off-by: Grace Karanja <gracie.karanja89@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'qt-ui/divelistview.cpp')
-rw-r--r--qt-ui/divelistview.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/qt-ui/divelistview.cpp b/qt-ui/divelistview.cpp
index bacac71db..b65b88e3a 100644
--- a/qt-ui/divelistview.cpp
+++ b/qt-ui/divelistview.cpp
@@ -622,10 +622,14 @@ void DiveListView::removeFromTrip()
//TODO: move this to C-code.
int i;
struct dive *d;
+ QMap<struct dive*, dive_trip*> divesToRemove;
for_each_dive (i, d) {
if (d->selected)
- remove_dive_from_trip(d, false);
+ divesToRemove.insert(d, d->divetrip);
}
+ UndoRemoveDivesFromTrip *undoCommand = new UndoRemoveDivesFromTrip(divesToRemove);
+ MainWindow::instance()->undoStack->push(undoCommand);
+
rememberSelection();
reload(currentLayout, false);
fixMessyQtModelBehaviour();