Skip to content

Commit

Permalink
Merge pull request #811 from kiwix/lessRefresh
Browse files Browse the repository at this point in the history
Only refresh library if some book has been added/removed in monitor dir
  • Loading branch information
kelson42 authored Mar 5, 2022
2 parents 52a96cd + 2370019 commit 243dd66
Showing 1 changed file with 6 additions and 3 deletions.
9 changes: 6 additions & 3 deletions src/library.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -157,16 +157,19 @@ 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()));
}
emit(booksChanged());
if (needsRefresh) {
setMonitorDirZims(newDir.values());
emit(booksChanged());
}
}

void Library::asyncLoadMonitorDir(QString dir)
Expand Down

0 comments on commit 243dd66

Please sign in to comment.