mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
Add DiveSitePicturesModel
This model should be used inside the Edit Dive Site mode. It should display all photos from all dives that are part of this dive site, ignoring trips. Signed-off-by: Tomaz Canabrava <tomaz.canabrava@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
342479586d
commit
ed30059183
6 changed files with 75 additions and 12 deletions
45
qt-models/divesitepicturesmodel.cpp
Normal file
45
qt-models/divesitepicturesmodel.cpp
Normal file
|
@ -0,0 +1,45 @@
|
|||
#include "divesitepicturesmodel.h"
|
||||
#include "dive.h"
|
||||
#include "stdint.h"
|
||||
|
||||
#include <QtConcurrent>
|
||||
#include <QPixmap>
|
||||
|
||||
DiveSitePicturesModel* DiveSitePicturesModel::instance() {
|
||||
static DiveSitePicturesModel *self = new DiveSitePicturesModel();
|
||||
return self;
|
||||
}
|
||||
|
||||
DiveSitePicturesModel::DiveSitePicturesModel() {
|
||||
|
||||
}
|
||||
|
||||
void DiveSitePicturesModel::updateDivePictures() {
|
||||
beginResetModel();
|
||||
numberOfPictures = 0;
|
||||
endResetModel();
|
||||
|
||||
const uint32_t ds_uuid = displayed_dive_site.uuid;
|
||||
struct dive *d;
|
||||
int i;
|
||||
|
||||
stringPixmapCache.clear();
|
||||
SPictureList pictures;
|
||||
|
||||
for_each_dive (i, d) {
|
||||
if (d->dive_site_uuid == ds_uuid && dive_get_picture_count(d)) {
|
||||
FOR_EACH_PICTURE(d) {
|
||||
stringPixmapCache[QString(picture->filename)].offsetSeconds = picture->offset.seconds;
|
||||
pictures.push_back(picture);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
QList<SPixmap> list = QtConcurrent::blockingMapped(pictures, scaleImages);
|
||||
Q_FOREACH (const SPixmap &pixmap, list)
|
||||
stringPixmapCache[pixmap.first->filename].image = pixmap.second;
|
||||
|
||||
numberOfPictures = list.count();
|
||||
beginInsertRows(QModelIndex(), 0, numberOfPictures - 1);
|
||||
endInsertRows();
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue