core: turn C dive-table into an owning table

This is a humongous commit, because it touches all parts of the
code. It removes the last user of our horrible TABLE macros, which
simulate std::vector<> in a very clumsy way.

Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
Berthold Stoeger 2024-06-07 10:25:09 +02:00 committed by bstoeger
parent f00c30ad4a
commit b95ac3f79c
73 changed files with 1030 additions and 1230 deletions

View file

@ -1,5 +1,7 @@
// SPDX-License-Identifier: GPL-2.0
#include "findmovedimagesdialog.h"
#include "core/divelog.h"
#include "core/divelist.h"
#include "core/picture.h"
#include "core/qthelper.h"
#include "desktop-widgets/divelistview.h" // TODO: used for lastUsedImageDir()
@ -184,12 +186,12 @@ void FindMovedImagesDialog::on_scanButton_clicked()
// We have to collect the names of the image filenames in the main thread
bool onlySelected = ui.onlySelectedDives->isChecked();
QVector<QString> imagePaths;
int i;
struct dive *dive;
for_each_dive (i, dive)
if (!onlySelected || dive->selected)
for (auto &dive: divelog.dives) {
if (!onlySelected || dive->selected) {
for (auto &picture: dive->pictures)
imagePaths.append(QString::fromStdString(picture.filename));
}
}
stopScanning = 0;
QFuture<QVector<Match>> future = QtConcurrent::run(
// Note that we capture everything but "this" by copy to avoid dangling references.