aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--qt-ui/divepicturewidget.cpp35
1 files changed, 13 insertions, 22 deletions
diff --git a/qt-ui/divepicturewidget.cpp b/qt-ui/divepicturewidget.cpp
index eda4ff68c..d0155bd0f 100644
--- a/qt-ui/divepicturewidget.cpp
+++ b/qt-ui/divepicturewidget.cpp
@@ -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