summaryrefslogtreecommitdiffstats
path: root/desktop-widgets
diff options
context:
space:
mode:
Diffstat (limited to 'desktop-widgets')
-rw-r--r--desktop-widgets/tab-widgets/TabDivePhotos.cpp25
-rw-r--r--desktop-widgets/tab-widgets/TabDivePhotos.h2
2 files changed, 20 insertions, 7 deletions
diff --git a/desktop-widgets/tab-widgets/TabDivePhotos.cpp b/desktop-widgets/tab-widgets/TabDivePhotos.cpp
index 1a5d233e5..c01820777 100644
--- a/desktop-widgets/tab-widgets/TabDivePhotos.cpp
+++ b/desktop-widgets/tab-widgets/TabDivePhotos.cpp
@@ -54,27 +54,38 @@ void TabDivePhotos::contextMenuEvent(QContextMenuEvent *event)
popup.addSeparator();
popup.addAction(tr("Delete selected images"), this, SLOT(removeSelectedPhotos()));
popup.addAction(tr("Delete all images"), this, SLOT(removeAllPhotos()));
+ popup.addAction(tr("Recalculate selected thumbnails"), this, SLOT(recalculateSelectedThumbnails()));
popup.exec(event->globalPos());
event->accept();
}
-void TabDivePhotos::removeSelectedPhotos()
+QVector<QString> TabDivePhotos::getSelectedFilenames() const
{
+ QVector<QString> selectedPhotos;
if (!ui->photosView->selectionModel()->hasSelection())
- return;
- QModelIndexList indexes = ui->photosView->selectionModel()->selectedRows();
+ return selectedPhotos;
+ QModelIndexList indexes = ui->photosView->selectionModel()->selectedRows();
if (indexes.count() == 0)
indexes = ui->photosView->selectionModel()->selectedIndexes();
- QVector<QString> photosToDelete;
- photosToDelete.reserve(indexes.count());
+ selectedPhotos.reserve(indexes.count());
for (const auto &photo: indexes) {
if (photo.isValid()) {
QString fileUrl = photo.data(Qt::DisplayPropertyRole).toString();
if (!fileUrl.isEmpty())
- photosToDelete.push_back(fileUrl);
+ selectedPhotos.push_back(fileUrl);
}
}
- DivePictureModel::instance()->removePictures(photosToDelete);
+ return selectedPhotos;
+}
+
+void TabDivePhotos::removeSelectedPhotos()
+{
+ DivePictureModel::instance()->removePictures(getSelectedFilenames());
+}
+
+void TabDivePhotos::recalculateSelectedThumbnails()
+{
+ Thumbnailer::instance()->calculateThumbnails(getSelectedFilenames());
}
//TODO: This looks overly wrong. We shouldn't call MainWindow to retrieve the DiveList to add Images.
diff --git a/desktop-widgets/tab-widgets/TabDivePhotos.h b/desktop-widgets/tab-widgets/TabDivePhotos.h
index e2e7aa05c..a752fef19 100644
--- a/desktop-widgets/tab-widgets/TabDivePhotos.h
+++ b/desktop-widgets/tab-widgets/TabDivePhotos.h
@@ -26,11 +26,13 @@ private slots:
void addPhotosFromURL();
void removeAllPhotos();
void removeSelectedPhotos();
+ void recalculateSelectedThumbnails();
void changeZoomLevel(int delta);
private:
Ui::TabDivePhotos *ui;
DivePictureModel *divePictureModel;
+ QVector<QString> getSelectedFilenames() const;
};
#endif