summaryrefslogtreecommitdiffstats
path: root/qt-ui/divepicturewidget.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'qt-ui/divepicturewidget.cpp')
-rw-r--r--qt-ui/divepicturewidget.cpp23
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;
}