summaryrefslogtreecommitdiffstats
path: root/qt-ui/divelistview.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'qt-ui/divelistview.cpp')
-rw-r--r--qt-ui/divelistview.cpp18
1 files changed, 18 insertions, 0 deletions
diff --git a/qt-ui/divelistview.cpp b/qt-ui/divelistview.cpp
index 639e988fd..a1436bf2d 100644
--- a/qt-ui/divelistview.cpp
+++ b/qt-ui/divelistview.cpp
@@ -290,6 +290,22 @@ void DiveListView::selectionChanged(const QItemSelection& selected, const QItemS
Q_EMIT currentDiveChanged(selected_dive);
}
+void DiveListView::mergeDives()
+{
+ int i;
+ struct dive *dive, *maindive = NULL;
+
+ for_each_dive(i, dive) {
+ if (dive->selected) {
+ if (!maindive)
+ maindive = dive;
+ else
+ maindive = merge_two_dives(maindive, dive);
+ }
+ }
+ mainWindow()->refreshDisplay();
+}
+
void DiveListView::merge_trip(const QModelIndex &a, int offset)
{
int i = a.row() + offset;
@@ -384,6 +400,8 @@ void DiveListView::contextMenuEvent(QContextMenuEvent *event)
}
if (d)
popup.addAction(tr("delete dive"), this, SLOT(deleteDive()));
+ if (selectionModel()->selection().indexes().count() > 14)
+ popup.addAction(tr("merge selected dives"), this, SLOT(mergeDives()));
// "collapse all" really closes all trips,
// "collapse" keeps the trip with the selected dive open
QAction * actionTaken = popup.exec(event->globalPos());