mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
Update the picture model to use the new picture function calls.
Update the picture model to use the new picture function calls, wich made the code smaller and easyer to understand. AND as a plus, it doesn't use the magic 123 identifier for pictures. AND it correctly adds images without timestamp to the list. Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
d95d1735b5
commit
42f36d6315
1 changed files with 13 additions and 22 deletions
|
@ -15,7 +15,7 @@ DivePictureModel::DivePictureModel(QObject *parent): QAbstractTableModel(parent)
|
|||
typedef QPair<QString, QPixmap> SPixmap;
|
||||
typedef QList<SPixmap> SPixmapList;
|
||||
|
||||
SPixmap scaleImages(const QString& s){
|
||||
SPixmap scaleImages(const QString& s) {
|
||||
QPixmap p = QPixmap(s).scaled(128,128, Qt::KeepAspectRatio);
|
||||
SPixmap ret;
|
||||
ret.first = s;
|
||||
|
@ -25,39 +25,30 @@ SPixmap scaleImages(const QString& s){
|
|||
|
||||
void DivePictureModel::updateDivePictures(int divenr)
|
||||
{
|
||||
qDebug() << "Updating dive pictures.";
|
||||
beginRemoveRows(QModelIndex(), 0, numberOfPictures-1);
|
||||
numberOfPictures = 0;
|
||||
endRemoveRows();
|
||||
if (numberOfPictures != 0) {
|
||||
beginRemoveRows(QModelIndex(), 0, numberOfPictures-1);
|
||||
numberOfPictures = 0;
|
||||
endRemoveRows();
|
||||
}
|
||||
|
||||
QStringList pictures;
|
||||
struct dive *d = get_dive(divenr);
|
||||
if (!d){
|
||||
qDebug() << "Got no dive, exiting.";
|
||||
int numberOfPictures = dive_get_picture_count(d);
|
||||
if (!d || numberOfPictures == 0) {
|
||||
return;
|
||||
}
|
||||
// All pictures are set in *all* divecomputers. ( waste of memory if > 100 pictures? )
|
||||
// so just get from the first one.
|
||||
struct event *ev = d->dc.events;
|
||||
while(ev){
|
||||
if(ev->type == 123){ // 123 means PICTURE.
|
||||
numberOfPictures++;
|
||||
pictures.push_back(QString(ev->name));
|
||||
}
|
||||
ev = ev->next;
|
||||
|
||||
QStringList pictures;
|
||||
FOR_EACH_PICTURE( d ) {
|
||||
pictures.push_back(QString(picture->filename));
|
||||
}
|
||||
|
||||
stringPixmapCache.clear();
|
||||
SPixmapList retList = QtConcurrent::blockingMapped<SPixmapList>( pictures, scaleImages);
|
||||
Q_FOREACH(const SPixmap & pixmap, retList)
|
||||
stringPixmapCache[pixmap.first] = pixmap.second;
|
||||
|
||||
if (numberOfPictures == 0){
|
||||
qDebug() << "Got no pictures, exiting.";
|
||||
return;
|
||||
}
|
||||
beginInsertRows(QModelIndex(), 0, numberOfPictures-1);
|
||||
endInsertRows();
|
||||
qDebug() << "Everything Ok.";
|
||||
}
|
||||
|
||||
int DivePictureModel::columnCount(const QModelIndex &parent) const
|
||||
|
|
Loading…
Add table
Reference in a new issue