2017-04-27 20:25:32 +02:00
|
|
|
// SPDX-License-Identifier: GPL-2.0
|
2016-04-04 22:02:03 -07:00
|
|
|
#include "qt-models/divesitepicturesmodel.h"
|
|
|
|
#include "core/dive.h"
|
|
|
|
#include <stdint.h>
|
2015-08-06 10:14:18 -03:00
|
|
|
|
|
|
|
#include <QtConcurrent>
|
|
|
|
#include <QPixmap>
|
|
|
|
|
|
|
|
DiveSitePicturesModel* DiveSitePicturesModel::instance() {
|
|
|
|
static DiveSitePicturesModel *self = new DiveSitePicturesModel();
|
|
|
|
return self;
|
|
|
|
}
|
|
|
|
|
|
|
|
DiveSitePicturesModel::DiveSitePicturesModel() {
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
void DiveSitePicturesModel::updateDivePictures() {
|
|
|
|
beginResetModel();
|
2017-12-10 00:07:46 +01:00
|
|
|
pictures.clear();
|
2015-08-06 10:14:18 -03:00
|
|
|
endResetModel();
|
|
|
|
|
|
|
|
const uint32_t ds_uuid = displayed_dive_site.uuid;
|
|
|
|
struct dive *d;
|
|
|
|
int i;
|
|
|
|
|
2017-12-10 00:07:46 +01:00
|
|
|
for_each_dive (i, d)
|
|
|
|
if (d->dive_site_uuid == ds_uuid && dive_get_picture_count(d))
|
|
|
|
FOR_EACH_PICTURE(d)
|
|
|
|
pictures.push_back({picture, picture->filename, QImage(), picture->offset.seconds});
|
2015-08-06 10:14:18 -03:00
|
|
|
|
2017-12-10 00:07:46 +01:00
|
|
|
QtConcurrent::blockingMap(pictures, scaleImages);
|
2015-08-06 10:14:18 -03:00
|
|
|
|
2017-12-10 00:07:46 +01:00
|
|
|
beginInsertRows(QModelIndex(), 0, pictures.count() - 1);
|
2015-08-06 10:14:18 -03:00
|
|
|
endInsertRows();
|
|
|
|
}
|