3 #include <QFileInfoList>
5 #include "bookfinder.h"
8 BookFinder::BookFinder(QObject *parent): QObject(parent)
12 void BookFinder::find(const QStringList &directories, const QStringList &books)
14 Trace t("BookFinder::find");
15 QStringList booksFound;
19 foreach (QString path, directories) {
20 QStringList filters(QString("*.epub"));
21 QFileInfoList entries =
22 QDir(path).entryInfoList(filters, QDir::Files | QDir::Readable);
23 foreach (QFileInfo entry, entries) {
24 booksFound.append(entry.absoluteFilePath());
28 foreach (QString found, booksFound) {
29 if (!books.contains(found)) {
30 t.trace(QString("New book ") + found);
36 foreach (QString book, books) {
37 QFileInfo bookInfo = QFileInfo(book);
38 QString bookDir = bookInfo.absolutePath();
39 QString bookPath = bookInfo.absoluteFilePath();
40 foreach (QString dirName, directories) {
41 t.trace(bookDir + " vs. " + QDir(dirName).absolutePath());
42 if (bookDir == QDir(dirName).absolutePath()) {
43 if (!booksFound.contains(bookPath)) {
44 t.trace(QString("Deleted book ") + bookPath);
46 emit remove(bookPath);
53 emit done(added, removed);