mirror of
				https://github.com/subsurface/subsurface.git
				synced 2025-02-19 22:16:15 +00:00 
			
		
		
		
	
		
			
	
	
		
			50 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			50 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
|  | // 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
 |