diff options
Diffstat (limited to 'qt-models/divepicturemodel.h')
-rw-r--r-- | qt-models/divepicturemodel.h | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/qt-models/divepicturemodel.h b/qt-models/divepicturemodel.h new file mode 100644 index 000000000..edcddd7a2 --- /dev/null +++ b/qt-models/divepicturemodel.h @@ -0,0 +1,41 @@ +#ifndef DIVEPICTUREMODEL_H +#define DIVEPICTUREMODEL_H + +#include <QAbstractTableModel> +#include <QImage> +#include <QFuture> + +typedef QPair<QString, QByteArray> SHashedFilename; + +class SHashedImage : public QImage { +public: + SHashedImage(struct picture *picture); +}; + + +struct PhotoHelper { + 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; + void updateDivePictures(); + void updateDivePicturesWhenDone(QList<QFuture<void> >); + void removePicture(const QString& fileUrl); + +private: + DivePictureModel(); + int numberOfPictures; + // Currently, load the images on the fly + // Later, use a thread to load the images + // Later, save the thumbnails so we don't need to reopen every time. + QHash<QString, PhotoHelper> stringPixmapCache; +}; + +#endif
\ No newline at end of file |