File indexing completed on 2024-05-12 15:54:49

0001 /*
0002  * SPDX-FileCopyrightText: (C) 2015 Vishesh Handa <vhanda@kde.org>
0003  *
0004  * SPDX-License-Identifier: LGPL-2.1-or-later
0005  */
0006 
0007 #include "filesystemimagefetcher.h"
0008 
0009 #include <QDirIterator>
0010 #include <QMimeDatabase>
0011 #include <QTimer>
0012 
0013 FileSystemImageFetcher::FileSystemImageFetcher(const QString &folder, QObject *parent)
0014     : QObject(parent)
0015     , m_folder(folder)
0016 {
0017 }
0018 
0019 void FileSystemImageFetcher::fetch()
0020 {
0021     QTimer::singleShot(0, this, SLOT(slotProcess()));
0022 }
0023 
0024 void FileSystemImageFetcher::slotProcess()
0025 {
0026     QMimeDatabase mimeDb;
0027 
0028     QDirIterator it(m_folder, QDirIterator::Subdirectories);
0029     while (it.hasNext()) {
0030         QString filePath = it.next();
0031 
0032         QString mimetype = mimeDb.mimeTypeForFile(filePath, QMimeDatabase::MatchExtension).name();
0033         if (!mimetype.startsWith("image/") && !mimetype.startsWith("video/"))
0034             continue;
0035 
0036         Q_EMIT imageResult(filePath);
0037     }
0038 
0039     Q_EMIT finished();
0040 }