Merge pull request #811 from kiwix/lessRefresh

Only refresh library if some book has been added/removed in monitor dir
This commit is contained in:
Kelson 2022-03-05 17:24:40 +01:00 committed by GitHub
commit 243dd66400
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -157,17 +157,20 @@ void Library::loadMonitorDir(QString monitorDir)
QSet<QString> oldDir = QSet<QString>::fromList(oldDirEntries);
QStringList addedZims = (newDir - oldDir).values();
QStringList removedZims = (oldDir - newDir).values();
setMonitorDirZims(newDir.values());
auto manipulator = LibraryManipulator(this);
auto manager = kiwix::Manager(&manipulator);
bool needsRefresh = !removedZims.empty();
for (auto book : addedZims) {
manager.addBookFromPath(book.toStdString());
needsRefresh |= manager.addBookFromPath(book.toStdString());
}
for (auto bookPath : removedZims) {
removeBookFromLibraryById(QString::fromStdString(m_library.getBookByPath(bookPath.toStdString()).getId()));
}
if (needsRefresh) {
setMonitorDirZims(newDir.values());
emit(booksChanged());
}
}
void Library::asyncLoadMonitorDir(QString dir)
{