// SPDX-License-Identifier: GPL-2.0 #ifndef DIVEPICTUREMODEL_H #define DIVEPICTUREMODEL_H #include #include #include struct PictureEntry { struct picture *picture; QString filename; QImage image; int offsetSeconds; }; class DivePictureModel : public QAbstractTableModel { Q_OBJECT public: static DivePictureModel *instance(); virtual int columnCount(const QModelIndex &parent = QModelIndex()) const; virtual QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const; virtual int rowCount(const QModelIndex &parent = QModelIndex()) const; virtual void updateDivePictures(); void updateDivePicturesWhenDone(QList>); void removePicture(const QString& fileUrl, bool last); int rowDDStart, rowDDEnd; public slots: void setZoomLevel(int level); void updateThumbnail(QString filename, QImage thumbnail); private: DivePictureModel(); QList pictures; double zoomLevel; // -1.0: minimum, 0.0: standard, 1.0: maximum int defaultSize; int size; void updateThumbnails(); void updateZoom(); }; #endif