diff options
author | Tomaz Canabrava <tomaz.canabrava@intel.com> | 2014-06-03 19:34:36 -0300 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2014-06-03 16:46:03 -0700 |
commit | b1847f9ebb45fcdeb4488f8acd7df2b9ee75906a (patch) | |
tree | 8073b53c87220315d1f603791367efa654417c63 /qt-ui/divepicturewidget.cpp | |
parent | 43cf9fdb7a5cc27357c9c111baa6a11b57366a7a (diff) | |
download | subsurface-b1847f9ebb45fcdeb4488f8acd7df2b9ee75906a.tar.gz |
Also hold a pointer to the struct picture on the model.
Changes to hold a pointer to the struct picture on the model, so we can
use it to determine the correct positioning of the image on the profile.
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'qt-ui/divepicturewidget.cpp')
-rw-r--r-- | qt-ui/divepicturewidget.cpp | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/qt-ui/divepicturewidget.cpp b/qt-ui/divepicturewidget.cpp index 5da7c73a4..97b7bd25e 100644 --- a/qt-ui/divepicturewidget.cpp +++ b/qt-ui/divepicturewidget.cpp @@ -43,15 +43,17 @@ void DivePictureModel::updateDivePictures(int divenr) return; } + stringPixmapCache.clear(); QStringList pictures; FOR_EACH_PICTURE( d ) { + stringPixmapCache[QString(picture->filename)].picture = picture; 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; + stringPixmapCache[pixmap.first].image = pixmap.second; beginInsertRows(QModelIndex(), 0, numberOfPictures-1); endInsertRows(); @@ -59,7 +61,7 @@ void DivePictureModel::updateDivePictures(int divenr) int DivePictureModel::columnCount(const QModelIndex &parent) const { - return 1; + return 2; } QVariant DivePictureModel::data(const QModelIndex &index, int role) const @@ -69,10 +71,17 @@ QVariant DivePictureModel::data(const QModelIndex &index, int role) const return ret; QString key = stringPixmapCache.keys().at(index.row()); - switch(role){ - case Qt::ToolTipRole : ret = key; break; - case Qt::DecorationRole : ret = stringPixmapCache[key]; break; - case Qt::DisplayRole : ret = QFileInfo(key).fileName(); + if(index.column() == 0){ + switch(role){ + case Qt::ToolTipRole : ret = key; break; + case Qt::DecorationRole : ret = stringPixmapCache[key].image; break; + case Qt::DisplayRole : ret = QFileInfo(key).fileName(); + } + } + else if (index.column() == 1){ + switch(role){ + case Qt::UserRole : ret = QVariant::fromValue( (void*) stringPixmapCache[key].picture); + } } return ret; } |