summaryrefslogtreecommitdiffstats
path: root/qt-models/divelocationmodel.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'qt-models/divelocationmodel.cpp')
-rw-r--r--qt-models/divelocationmodel.cpp25
1 files changed, 24 insertions, 1 deletions
diff --git a/qt-models/divelocationmodel.cpp b/qt-models/divelocationmodel.cpp
index 383de43ca..ebdffc185 100644
--- a/qt-models/divelocationmodel.cpp
+++ b/qt-models/divelocationmodel.cpp
@@ -5,8 +5,12 @@
#include "core/qthelper.h"
#include "core/divesite.h"
#include "core/metrics.h"
+#ifndef SUBSURFACE_MOBILE
#include "cleanertablemodel.h" // for trashIcon();
-#include <QDebug>
+#include "desktop-widgets/mainwindow.h" // to place message box
+#include "desktop-widgets/command.h"
+#include <QMessageBox>
+#endif
#include <QLineEdit>
#include <QIcon>
#include <core/gettextfromc.h>
@@ -219,6 +223,25 @@ QStringList DiveSiteSortedModel::allSiteNames() const
return locationNames;
}
+#ifndef SUBSURFACE_MOBILE
+// TODO: Remove from model. It doesn't make sense to call the model here, which calls the undo command,
+// which in turn calls the model.
+void DiveSiteSortedModel::remove(const QModelIndex &index)
+{
+ if (index.column() != LocationInformationModel::REMOVE)
+ return;
+ struct dive_site *ds = get_dive_site(mapToSource(index).row(), &dive_site_table);
+ if (!ds)
+ return;
+ if (ds->dives.nr > 0 &&
+ QMessageBox::warning(MainWindow::instance(), tr("Delete dive site?"),
+ tr("This dive site has %n dive(s). Do you really want to delete it?\n", "", ds->dives.nr),
+ QMessageBox::Yes|QMessageBox::No) == QMessageBox::No)
+ return;
+ Command::deleteDiveSites(QVector<dive_site *>{ds});
+}
+#endif
+
GeoReferencingOptionsModel *GeoReferencingOptionsModel::instance()
{
static GeoReferencingOptionsModel *self = new GeoReferencingOptionsModel();