diff options
author | Tomaz Canabrava <tomaz.canabrava@intel.com> | 2015-05-29 14:42:57 -0300 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2015-05-29 14:14:27 -0700 |
commit | ffc0c8ee993ce6301b8f6c0992b6e1652d2b08d7 (patch) | |
tree | 46b2584896a04437ec8d61d4ecc8dc41b3d6259a /qt-models/divepicturemodel.h | |
parent | 37bd82f623ae2fc89a53d8193e7a308b7a2910c3 (diff) | |
download | subsurface-ffc0c8ee993ce6301b8f6c0992b6e1652d2b08d7.tar.gz |
Move DivePictureModel to qt-models
This class will surely be used on the mobile version, and it was very
tangled inside divepicturewidget.
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
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 |