1 /* 2 This file is part of Lokalize 3 4 SPDX-FileCopyrightText: 2007-2009 Nick Shaforostoff <shafff@ukr.net> 5 SPDX-FileCopyrightText: 2018-2019 Simon Depiets <sdepiets@gmail.com> 6 7 SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 8 */ 9 10 11 #ifndef SCANAPI_H 12 #define SCANAPI_H 13 14 #include <QDir> 15 #include <QElapsedTimer> 16 #include <QUrl> 17 #include <QVector> 18 19 #include <kjob.h> 20 21 bool dragIsAcceptable(const QList<QUrl>& urls); 22 QString shorterFilePath(const QString path); 23 24 25 namespace TM 26 { 27 class ScanJob; 28 class ScanJobFeedingBack; 29 30 void purgeMissingFilesFromTM(const QStringList& urls, const QString& dbName); 31 32 ///wrapper. returns gross number of jobs started 33 int scanRecursive(const QStringList& urls, const QString& dbName); 34 35 class RecursiveScanJob: public KJob 36 { 37 Q_OBJECT 38 public: 39 explicit RecursiveScanJob(const QString& dbName, QObject* parent = nullptr); 40 void setJobs(const QVector<ScanJob*>& jobs); 41 void start() override; 42 43 public Q_SLOTS: 44 void scanJobFinished(ScanJobFeedingBack*); 45 void scanJobDestroyed(); 46 protected: 47 bool doKill() override; 48 49 private: 50 QString m_dbName; 51 QElapsedTimer m_time; 52 QVector<ScanJob*> m_jobs; 53 qulonglong m_destroyedJobs = 0; 54 }; 55 } 56 57 #endif 58