diff options
-rw-r--r-- | profile-widget/profilewidget2.cpp | 2 | ||||
-rw-r--r-- | qt-models/divepicturemodel.cpp | 21 | ||||
-rw-r--r-- | qt-models/divepicturemodel.h | 1 |
3 files changed, 17 insertions, 7 deletions
diff --git a/profile-widget/profilewidget2.cpp b/profile-widget/profilewidget2.cpp index 6ca5334d4..d6a5f3343 100644 --- a/profile-widget/profilewidget2.cpp +++ b/profile-widget/profilewidget2.cpp @@ -2000,7 +2000,7 @@ void ProfileWidget2::plotPictures() double x, y, lastX = -1.0, lastY = -1.0; DivePictureModel *m = DivePictureModel::instance(); - for (int i = 0; i < m->rowCount(); i++) { + for (int i = m->rowDDStart; i <= m->rowDDEnd; i++) { int offsetSeconds = m->index(i, 1).data(Qt::UserRole).value<int>(); // it's a correct picture, but doesn't have a timestamp: only show on the widget near the // information area. diff --git a/qt-models/divepicturemodel.cpp b/qt-models/divepicturemodel.cpp index 41035aba2..894cd3db6 100644 --- a/qt-models/divepicturemodel.cpp +++ b/qt-models/divepicturemodel.cpp @@ -36,7 +36,7 @@ DivePictureModel *DivePictureModel::instance() return self; } -DivePictureModel::DivePictureModel() +DivePictureModel::DivePictureModel() : rowDDStart(0), rowDDEnd(0) { } @@ -56,13 +56,22 @@ void DivePictureModel::updateDivePictures() endRemoveRows(); } - // if the dive_table is empty, ignore the displayed_dive - if (dive_table.nr == 0 || dive_get_picture_count(&displayed_dive) == 0) + // if the dive_table is empty, quit + if (dive_table.nr == 0) return; - FOR_EACH_PICTURE_NON_PTR(displayed_dive) - pictures.push_back({picture, picture->filename, QImage(), picture->offset.seconds}); - + int i; + struct dive *dive; + for_each_dive (i, dive) { + if (dive->selected) { + if (dive->id == displayed_dive.id) + rowDDStart = pictures.count(); + FOR_EACH_PICTURE(dive) + pictures.push_back({picture, picture->filename, QImage(), picture->offset.seconds}); + if (dive->id == displayed_dive.id) + rowDDEnd = pictures.count() - 1; + } + } QtConcurrent::blockingMap(pictures, scaleImages); beginInsertRows(QModelIndex(), 0, pictures.count() - 1); diff --git a/qt-models/divepicturemodel.h b/qt-models/divepicturemodel.h index 2ae3c3798..9602d84bc 100644 --- a/qt-models/divepicturemodel.h +++ b/qt-models/divepicturemodel.h @@ -26,6 +26,7 @@ public: virtual void updateDivePictures(); void updateDivePicturesWhenDone(QList<QFuture<void>>); void removePicture(const QString& fileUrl, bool last); + int rowDDStart, rowDDEnd; protected: DivePictureModel(); |