mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
Dive pictures: implement FindMovedImagesDialog
Move the find-moved-images functions into a new translation unit and present the user with the identified matches before applying them. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
parent
f3ef38ca0d
commit
09fd5c40d1
9 changed files with 535 additions and 125 deletions
49
desktop-widgets/findmovedimagesdialog.h
Normal file
49
desktop-widgets/findmovedimagesdialog.h
Normal file
|
@ -0,0 +1,49 @@
|
|||
// SPDX-License-Identifier: GPL-2.0
|
||||
#ifndef FINDMOVEDIMAGES_H
|
||||
#define FINDMOVEDIMAGES_H
|
||||
|
||||
#include "ui_findmovedimagesdialog.h"
|
||||
#include <QFutureWatcher>
|
||||
#include <QVector>
|
||||
#include <QMap>
|
||||
#include <QAtomicInteger>
|
||||
|
||||
class FindMovedImagesDialog : public QDialog {
|
||||
Q_OBJECT
|
||||
public:
|
||||
FindMovedImagesDialog(QWidget *parent = 0);
|
||||
private
|
||||
slots:
|
||||
void on_scanButton_clicked();
|
||||
void apply();
|
||||
void on_buttonBox_rejected();
|
||||
void setProgress(double progress, QString path);
|
||||
void searchDone();
|
||||
private:
|
||||
struct Match {
|
||||
QString originalFilename;
|
||||
QString localFilename;
|
||||
int matchingPathItems;
|
||||
};
|
||||
struct ImageMatch {
|
||||
QString localFilename;
|
||||
int score;
|
||||
};
|
||||
struct ImagePath {
|
||||
QString fullPath;
|
||||
QString filenameUpperCase;
|
||||
ImagePath() = default; // For some reason QVector<...>::reserve() needs a default constructor!?
|
||||
ImagePath(const QString &path);
|
||||
inline bool operator<(const ImagePath &path2) const;
|
||||
};
|
||||
Ui::FindMovedImagesDialog ui;
|
||||
QFutureWatcher<QVector<Match>> watcher;
|
||||
QVector<Match> matches;
|
||||
QAtomicInt stopScanning;
|
||||
QScopedPointer<QFontMetrics> fontMetrics; // Needed to format elided paths
|
||||
|
||||
void learnImage(const QString &filename, QMap<QString, ImageMatch> &matches, const QVector<ImagePath> &imagePaths);
|
||||
QVector<Match> learnImages(const QString &dir, int maxRecursions, QVector<QString> imagePaths);
|
||||
};
|
||||
|
||||
#endif
|
Loading…
Add table
Add a link
Reference in a new issue