File indexing completed on 2024-04-28 15:39:59
0001 // SPDX-FileCopyrightText: 2003-2012 Jesper K. Pedersen <jesper.pedersen@kdab.com> 0002 // SPDX-FileCopyrightText: 2007 Dirk Mueller <mueller@kde.org> 0003 // SPDX-FileCopyrightText: 2007-2008 Jan Kundrát <jkt@flaska.net> 0004 // SPDX-FileCopyrightText: 2007-2010 Tuomas Suutari <tuomas@nepnep.net> 0005 // SPDX-FileCopyrightText: 2008 Henner Zeller <h.zeller@acm.org> 0006 // SPDX-FileCopyrightText: 2011 Andreas Neustifter <andreas.neustifter@gmail.com> 0007 // SPDX-FileCopyrightText: 2013-2023 Johannes Zarl-Zierl <johannes@zarl-zierl.at> 0008 // SPDX-FileCopyrightText: 2017-2018 Robert Krawitz <rlk@alum.mit.edu> 0009 // 0010 // SPDX-License-Identifier: GPL-2.0-or-later 0011 0012 #ifndef NEWIMAGEFINDER_H 0013 #define NEWIMAGEFINDER_H 0014 #include "ImageInfo.h" 0015 #include "ImageInfoPtr.h" 0016 0017 #include <QMutex> 0018 0019 namespace DB 0020 { 0021 class MD5Map; 0022 class FileNameList; 0023 0024 class NewImageFinder 0025 { 0026 public: 0027 bool findImages(); 0028 bool calculateMD5sums(const DB::FileNameList &list, DB::MD5Map *map, bool *wasCanceled = nullptr); 0029 0030 protected: 0031 void searchForNewFiles(const DB::FileNameSet &loadedFiles, QString directory); 0032 void setupFileVersionDetection(); 0033 void loadExtraFiles(); 0034 void loadExtraFile(const DB::FileName &name, DB::MediaType type); 0035 void markUnTagged(ImageInfoPtr info); 0036 bool handleIfImageHasBeenMoved(const DB::FileName &newFileName, const MD5 &sum); 0037 0038 private: 0039 typedef QList<QPair<DB::FileName, DB::MediaType>> LoadList; 0040 LoadList m_pendingLoad; 0041 0042 QString m_modifiedFileCompString; 0043 QRegExp m_modifiedFileComponent; 0044 QStringList m_originalFileComponents; 0045 static QMutex s_imageFinderLock; ///< Only one NewImageFinder can accesss the database at any time! 0046 }; 0047 } 0048 0049 #endif /* NEWIMAGEFINDER_H */ 0050 0051 // vi:expandtab:tabstop=4 shiftwidth=4: