summaryrefslogtreecommitdiffstats
path: root/qt-models/divepicturemodel.h
diff options
context:
space:
mode:
authorGravatar Berthold Stoeger <bstoeger@mail.tuwien.ac.at>2020-04-17 23:18:58 +0200
committerGravatar Dirk Hohndel <dirk@hohndel.org>2020-05-06 13:58:09 -0700
commit434644b381cb1dc8d2080b19a9725bfe2660a217 (patch)
tree5c3ff5833d701e8528b79fb59e1a2e650925767a /qt-models/divepicturemodel.h
parent9962d47b56eb15aba9339b22845566535c168483 (diff)
downloadsubsurface-434644b381cb1dc8d2080b19a9725bfe2660a217.tar.gz
undo: make picture (media) deletion undoable
The code is rather complex. Firstly, we have different representations of pictures throughout the code. Secondly, this tries to do add the pictures in batches to the divepicture model and that is always rather tricky. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
Diffstat (limited to 'qt-models/divepicturemodel.h')
-rw-r--r--qt-models/divepicturemodel.h10
1 files changed, 7 insertions, 3 deletions
diff --git a/qt-models/divepicturemodel.h b/qt-models/divepicturemodel.h
index 395dbedd1..d7b043d44 100644
--- a/qt-models/divepicturemodel.h
+++ b/qt-models/divepicturemodel.h
@@ -3,6 +3,7 @@
#define DIVEPICTUREMODEL_H
#include "core/units.h"
+#include "core/pictureobj.h"
#include <QAbstractTableModel>
#include <QImage>
@@ -16,6 +17,9 @@ struct PictureEntry {
QImage image;
int offsetSeconds;
duration_t length;
+ PictureEntry(dive *, const PictureObj &);
+ PictureEntry(dive *, const picture &);
+ bool operator<(const PictureEntry &) const;
};
class DivePictureModel : public QAbstractTableModel {
@@ -26,13 +30,13 @@ public:
QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override;
int rowCount(const QModelIndex &parent = QModelIndex()) const override;
void updateDivePictures();
- void removePictures(const QVector<QString> &fileUrls);
-signals:
- void picturesRemoved(const QVector<QString> &fileUrls);
+ void removePictures(const QModelIndexList &);
public slots:
void setZoomLevel(int level);
void updateThumbnail(QString filename, QImage thumbnail, duration_t duration);
void pictureOffsetChanged(dive *d, const QString filename, offset_t offset);
+ void picturesRemoved(dive *d, QVector<QString> filenames);
+ void picturesAdded(dive *d, QVector<PictureObj> pics);
private:
DivePictureModel();
std::vector<PictureEntry> pictures;