mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
Add "merge selected dives" to dive list popup menu
This is fairly straight forward. What I dislike is the check for the magic number of "14 indeces". I'm sure there's a better way to tell if more than one dive is selected... Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
c6140c6e21
commit
be418458db
4 changed files with 30 additions and 9 deletions
|
@ -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());
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue