mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
desktop: allow moving dives to arbitrary trips
The UI only allowed adding dives to trips above or below the current dive (and even that is buggy). This is a strange restriction, since trips are designed to be non-contiguous. Allow adding dives to any trip using the new trip selection dialog. The undo-command is already there, so only little code to write. This feature was requested on the mailing list. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
parent
f5fe6839c7
commit
7b196a5ef9
3 changed files with 14 additions and 0 deletions
|
@ -1,3 +1,4 @@
|
||||||
|
- desktop: allow adding dives to arbitrary trips
|
||||||
- desktop: respect page-up, page-down, home and end keys for selection change [#2957]
|
- desktop: respect page-up, page-down, home and end keys for selection change [#2957]
|
||||||
- Use pO2 from prefernces for MOD display in equipment tab
|
- Use pO2 from prefernces for MOD display in equipment tab
|
||||||
- filter: more flexible filtering system based on individual constraints
|
- filter: more flexible filtering system based on individual constraints
|
||||||
|
|
|
@ -24,6 +24,7 @@
|
||||||
#include "core/metrics.h"
|
#include "core/metrics.h"
|
||||||
#include "desktop-widgets/simplewidgets.h"
|
#include "desktop-widgets/simplewidgets.h"
|
||||||
#include "desktop-widgets/mapwidget.h"
|
#include "desktop-widgets/mapwidget.h"
|
||||||
|
#include "desktop-widgets/tripselectiondialog.h"
|
||||||
|
|
||||||
DiveListView::DiveListView(QWidget *parent) : QTreeView(parent),
|
DiveListView::DiveListView(QWidget *parent) : QTreeView(parent),
|
||||||
currentLayout(DiveTripModelBase::TREE),
|
currentLayout(DiveTripModelBase::TREE),
|
||||||
|
@ -650,6 +651,16 @@ void DiveListView::splitDives()
|
||||||
Command::splitDives(d, duration_t{-1});
|
Command::splitDives(d, duration_t{-1});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void DiveListView::addDivesToTrip()
|
||||||
|
{
|
||||||
|
TripSelectionDialog dialog(MainWindow::instance());
|
||||||
|
dive_trip *t = dialog.getTrip();
|
||||||
|
std::vector<dive *> dives = getDiveSelection();
|
||||||
|
if (!t || dives.empty())
|
||||||
|
return;
|
||||||
|
Command::addDivesToTrip(QVector<dive *>::fromStdVector(dives), t);
|
||||||
|
}
|
||||||
|
|
||||||
void DiveListView::renumberDives()
|
void DiveListView::renumberDives()
|
||||||
{
|
{
|
||||||
RenumberDialog dialog(true, MainWindow::instance());
|
RenumberDialog dialog(true, MainWindow::instance());
|
||||||
|
@ -845,6 +856,7 @@ void DiveListView::contextMenuEvent(QContextMenuEvent *event)
|
||||||
if (amount_selected > 1 && consecutive_selected())
|
if (amount_selected > 1 && consecutive_selected())
|
||||||
popup.addAction(tr("Merge selected dives"), this, &DiveListView::mergeDives);
|
popup.addAction(tr("Merge selected dives"), this, &DiveListView::mergeDives);
|
||||||
if (amount_selected >= 1) {
|
if (amount_selected >= 1) {
|
||||||
|
popup.addAction(tr("Add dive(s) to arbitrary trip"), this, &DiveListView::addDivesToTrip);
|
||||||
popup.addAction(tr("Renumber dive(s)"), this, &DiveListView::renumberDives);
|
popup.addAction(tr("Renumber dive(s)"), this, &DiveListView::renumberDives);
|
||||||
popup.addAction(tr("Shift dive times"), this, &DiveListView::shiftTimes);
|
popup.addAction(tr("Shift dive times"), this, &DiveListView::shiftTimes);
|
||||||
popup.addAction(tr("Split selected dives"), this, &DiveListView::splitDives);
|
popup.addAction(tr("Split selected dives"), this, &DiveListView::splitDives);
|
||||||
|
|
|
@ -50,6 +50,7 @@ slots:
|
||||||
void mergeDives();
|
void mergeDives();
|
||||||
void splitDives();
|
void splitDives();
|
||||||
void renumberDives();
|
void renumberDives();
|
||||||
|
void addDivesToTrip();
|
||||||
void shiftTimes();
|
void shiftTimes();
|
||||||
void diveSelectionChanged(const QVector<QModelIndex> &indices);
|
void diveSelectionChanged(const QVector<QModelIndex> &indices);
|
||||||
void currentDiveChanged(QModelIndex index);
|
void currentDiveChanged(QModelIndex index);
|
||||||
|
|
Loading…
Add table
Reference in a new issue