mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
Simplify DivePictureModel
The code of DivePictureModel used a QHash to keep track of thumbnails. Not only was the code rather complex - it also had the consequence that pictures are sorted according to the hash function, i.e. seemingly random. This commit replaces the QHash by a simple QList which keeps track of thumbnails and some meta-data. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
parent
a07d3b7bfe
commit
c73828d605
3 changed files with 35 additions and 59 deletions
|
|
@ -6,17 +6,15 @@
|
|||
#include <QImage>
|
||||
#include <QFuture>
|
||||
|
||||
struct PhotoHelper {
|
||||
struct PictureEntry {
|
||||
struct picture *picture;
|
||||
QString filename;
|
||||
QImage image;
|
||||
int offsetSeconds;
|
||||
};
|
||||
|
||||
typedef QList<struct picture *> SPictureList;
|
||||
typedef struct picture *picturepointer;
|
||||
typedef QPair<picturepointer, QImage> SPixmap;
|
||||
|
||||
// function that will scale the pixmap, used inside the QtConcurrent thread.
|
||||
SPixmap scaleImages(picturepointer picture);
|
||||
void scaleImages(PictureEntry &entry);
|
||||
|
||||
class DivePictureModel : public QAbstractTableModel {
|
||||
Q_OBJECT
|
||||
|
|
@ -31,11 +29,10 @@ public:
|
|||
|
||||
protected:
|
||||
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;
|
||||
QList<PictureEntry> pictures;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue