1 /* ============================================================ 2 * 3 * This file is a part of digiKam project 4 * https://www.digikam.org 5 * 6 * Date : 2008-05-16 7 * Description : finger-prints generator 8 * 9 * Copyright (C) 2008-2021 by Gilles Caulier <caulier dot gilles at gmail dot com> 10 * 11 * This program is free software; you can redistribute it 12 * and/or modify it under the terms of the GNU General 13 * Public License as published by the Free Software Foundation; 14 * either version 2, or (at your option) 15 * any later version. 16 * 17 * This program is distributed in the hope that it will be useful, 18 * but WITHOUT ANY WARRANTY; without even the implied warranty of 19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 20 * GNU General Public License for more details. 21 * 22 * ============================================================ */ 23 24 #ifndef DIGIKAM_FINGERPRINTS_GENERATOR_H 25 #define DIGIKAM_FINGERPRINTS_GENERATOR_H 26 27 // Qt includes 28 29 #include <QObject> 30 31 // Local includes 32 33 #include "album.h" 34 #include "maintenancetool.h" 35 36 class QImage; 37 38 namespace Digikam 39 { 40 41 class FingerPrintsGenerator : public MaintenanceTool 42 { 43 Q_OBJECT 44 45 public: 46 47 /** Constructor using AlbumList as argument. If list is empty, whole Albums collection is processed. 48 */ 49 explicit FingerPrintsGenerator(const bool rebuildAll, const AlbumList& list=AlbumList(), ProgressItem* const parent = nullptr); 50 ~FingerPrintsGenerator() override; 51 52 void setUseMultiCoreCPU(bool b) override; 53 54 private: 55 56 void processOne(); 57 58 private Q_SLOTS: 59 60 void slotStart() override; 61 void slotDone() override; 62 void slotCancel() override; 63 void slotAdvance(const QImage&); 64 65 private: 66 67 class Private; 68 Private* const d; 69 }; 70 71 } // namespace Digikam 72 73 #endif // DIGIKAM_FINGERPRINTS_GENERATOR_H 74