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());
29 foreach (QString found, booksFound) {
30 if (!books.contains(found)) {
36 foreach (QString found, booksFound) {
37 if (!books.contains(found)) {
38 t.trace(QString("New book ") + found);
44 foreach (QString book, books) {
45 QFileInfo bookInfo = QFileInfo(book);
46 QString bookDir = bookInfo.absolutePath();
47 QString bookPath = bookInfo.absoluteFilePath();
48 foreach (QString dirName, directories) {
49 t.trace(bookDir + " vs. " + QDir(dirName).absolutePath());
50 if (bookDir == QDir(dirName).absolutePath()) {
51 if (!booksFound.contains(bookPath)) {
52 t.trace(QString("Deleted book ") + bookPath);
54 emit remove(bookPath);
61 emit done(added, removed);