summaryrefslogtreecommitdiffstats
path: root/qt-models
diff options
context:
space:
mode:
Diffstat (limited to 'qt-models')
-rw-r--r--qt-models/divepicturemodel.cpp26
-rw-r--r--qt-models/divepicturemodel.h2
2 files changed, 19 insertions, 9 deletions
diff --git a/qt-models/divepicturemodel.cpp b/qt-models/divepicturemodel.cpp
index 9b993cb5a..3fa1a07f4 100644
--- a/qt-models/divepicturemodel.cpp
+++ b/qt-models/divepicturemodel.cpp
@@ -127,19 +127,29 @@ QVariant DivePictureModel::data(const QModelIndex &index, int role) const
return ret;
}
-void DivePictureModel::removePicture(const QString &fileUrl, bool last)
+// Return true if we actually removed a picture
+static bool removePictureFromSelectedDive(const char *fileUrl)
{
int i;
struct dive *dive;
for_each_dive (i, dive) {
- if (dive->selected && dive_remove_picture(dive, qPrintable(fileUrl)))
- break;
- }
- if (last) {
- copy_dive(current_dive, &displayed_dive);
- updateDivePictures();
- mark_divelist_changed(true);
+ if (dive->selected && dive_remove_picture(dive, fileUrl))
+ return true;
}
+ return false;
+}
+
+void DivePictureModel::removePictures(const QVector<QString> &fileUrls)
+{
+ bool removed = false;
+ for (const QString &fileUrl: fileUrls)
+ removed |= removePictureFromSelectedDive(qPrintable(fileUrl));
+ if (!removed)
+ return;
+ copy_dive(current_dive, &displayed_dive);
+ mark_divelist_changed(true);
+
+ updateDivePictures();
}
int DivePictureModel::rowCount(const QModelIndex &parent) const
diff --git a/qt-models/divepicturemodel.h b/qt-models/divepicturemodel.h
index 7f2cde6d0..61eb1d984 100644
--- a/qt-models/divepicturemodel.h
+++ b/qt-models/divepicturemodel.h
@@ -22,7 +22,7 @@ public:
virtual int rowCount(const QModelIndex &parent = QModelIndex()) const;
virtual void updateDivePictures();
void updateDivePicturesWhenDone(QList<QFuture<void>>);
- void removePicture(const QString& fileUrl, bool last);
+ void removePictures(const QVector<QString> &fileUrls);
int rowDDStart, rowDDEnd;
void updateDivePictureOffset(const QString &filename, int offsetSeconds);
public slots: