mirror of
https://github.com/kiwix/kiwix-desktop.git
synced 2025-09-22 03:26:05 -04:00
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:
commit
243dd66400
@ -157,16 +157,19 @@ void Library::loadMonitorDir(QString monitorDir)
|
|||||||
QSet<QString> oldDir = QSet<QString>::fromList(oldDirEntries);
|
QSet<QString> oldDir = QSet<QString>::fromList(oldDirEntries);
|
||||||
QStringList addedZims = (newDir - oldDir).values();
|
QStringList addedZims = (newDir - oldDir).values();
|
||||||
QStringList removedZims = (oldDir - newDir).values();
|
QStringList removedZims = (oldDir - newDir).values();
|
||||||
setMonitorDirZims(newDir.values());
|
|
||||||
auto manipulator = LibraryManipulator(this);
|
auto manipulator = LibraryManipulator(this);
|
||||||
auto manager = kiwix::Manager(&manipulator);
|
auto manager = kiwix::Manager(&manipulator);
|
||||||
|
bool needsRefresh = !removedZims.empty();
|
||||||
for (auto book : addedZims) {
|
for (auto book : addedZims) {
|
||||||
manager.addBookFromPath(book.toStdString());
|
needsRefresh |= manager.addBookFromPath(book.toStdString());
|
||||||
}
|
}
|
||||||
for (auto bookPath : removedZims) {
|
for (auto bookPath : removedZims) {
|
||||||
removeBookFromLibraryById(QString::fromStdString(m_library.getBookByPath(bookPath.toStdString()).getId()));
|
removeBookFromLibraryById(QString::fromStdString(m_library.getBookByPath(bookPath.toStdString()).getId()));
|
||||||
}
|
}
|
||||||
emit(booksChanged());
|
if (needsRefresh) {
|
||||||
|
setMonitorDirZims(newDir.values());
|
||||||
|
emit(booksChanged());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void Library::asyncLoadMonitorDir(QString dir)
|
void Library::asyncLoadMonitorDir(QString dir)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user