Dive media: add media to closest dive

Currently, when selecting "Load media files even if time does not
match the dive time", the media are added to *all* selected dives.
Instead add it to the closest dive.

This seems like the less surprising behavior. Of course now if the
user really wants to add a media file to multiple dives, they will
have to do it manually.

To avoid a messy interface, this is solved by moving the iterate-
over-selected-dives loop to the core. Thus, a helper-function can
be made local to its translation unit.

Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
Berthold Stoeger 2018-12-11 22:30:57 +01:00 committed by Robert C. Helling
parent 09a9fa1ae5
commit 3cdc2661d2
4 changed files with 57 additions and 24 deletions

View file

@ -969,15 +969,8 @@ void DiveListView::matchImagesToDives(QStringList fileNames)
return;
updateLastImageTimeOffset(shiftDialog.amount());
Q_FOREACH (const QString &fileName, fileNames) {
int j = 0;
struct dive *dive;
for_each_dive (j, dive) {
if (!dive->selected)
continue;
dive_create_picture(dive, qPrintable(fileName), shiftDialog.amount(), shiftDialog.matchAll());
}
}
for (const QString &fileName: fileNames)
create_picture(qPrintable(fileName), shiftDialog.amount(), shiftDialog.matchAll());
mark_divelist_changed(true);
copy_dive(current_dive, &displayed_dive);