summaryrefslogtreecommitdiffstats
path: root/desktop-widgets
diff options
context:
space:
mode:
authorGravatar Berthold Stoeger <bstoeger@mail.tuwien.ac.at>2019-11-03 15:04:48 +0100
committerGravatar Dirk Hohndel <dirk@hohndel.org>2019-12-05 10:14:25 -0800
commitb3f530bfb9d099414d833e7b0eb8c71cb3780eca (patch)
tree879112df23e236e93e80cf4a726504fb7dccf09c /desktop-widgets
parentb3253304a59b85c76f8a70f20ada4139e715a5b3 (diff)
downloadsubsurface-b3f530bfb9d099414d833e7b0eb8c71cb3780eca.tar.gz
Undo: make weight-deletion an undoable action
This one is a bit more complicated than weight adding, because the multiple-dive case is not well defined. If multiple dives are selected, this implementation will search for weights that are identical to the weight deleted in the currently shown dive. The position of the weight in the list is ignored. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
Diffstat (limited to 'desktop-widgets')
-rw-r--r--desktop-widgets/tab-widgets/TabDiveEquipment.cpp10
1 files changed, 7 insertions, 3 deletions
diff --git a/desktop-widgets/tab-widgets/TabDiveEquipment.cpp b/desktop-widgets/tab-widgets/TabDiveEquipment.cpp
index cb7182e02..4baca44b2 100644
--- a/desktop-widgets/tab-widgets/TabDiveEquipment.cpp
+++ b/desktop-widgets/tab-widgets/TabDiveEquipment.cpp
@@ -35,7 +35,6 @@ TabDiveEquipment::TabDiveEquipment(QWidget *parent) : TabBase(parent),
connect(&diveListNotifier, &DiveListNotifier::divesChanged, this, &TabDiveEquipment::divesChanged);
connect(ui.cylinders, &TableView::itemClicked, cylindersModel, &CylindersModel::remove);
connect(ui.cylinders, &TableView::itemClicked, this, &TabDiveEquipment::editCylinderWidget);
- connect(ui.weights, &TableView::itemClicked, weightModel, &WeightModel::remove);
connect(ui.weights, &TableView::itemClicked, this, &TabDiveEquipment::editWeightWidget);
// Current display of things on Gnome3 looks like shit, so
@@ -177,10 +176,15 @@ void TabDiveEquipment::editCylinderWidget(const QModelIndex &index)
void TabDiveEquipment::editWeightWidget(const QModelIndex &index)
{
- MainWindow::instance()->mainTab->enableEdition();
+ if (!index.isValid())
+ return;
- if (index.isValid() && index.column() != WeightModel::REMOVE)
+ if (index.column() == WeightModel::REMOVE) {
+ divesEdited(Command::removeWeight(index.row(), false));
+ } else {
+ MainWindow::instance()->mainTab->enableEdition();
ui.weights->edit(index);
+ }
}
// tricky little macro to edit all the selected dives