mirror of https://github.com/kiwix/libkiwix.git
Manager::reload() also removes books from Library
This commit is contained in:
parent
262e13845c
commit
7161db8e2a
|
@ -45,10 +45,12 @@ class LibraryManipulator
|
||||||
|
|
||||||
bool addBookToLibrary(const Book& book);
|
bool addBookToLibrary(const Book& book);
|
||||||
void addBookmarkToLibrary(const Bookmark& bookmark);
|
void addBookmarkToLibrary(const Bookmark& bookmark);
|
||||||
|
uint32_t removeBooksNotUpdatedSince(Library::Revision rev);
|
||||||
|
|
||||||
protected: // overrides
|
protected: // overrides
|
||||||
virtual void bookWasAddedToLibrary(const Book& book);
|
virtual void bookWasAddedToLibrary(const Book& book);
|
||||||
virtual void bookmarkWasAddedToLibrary(const Bookmark& bookmark);
|
virtual void bookmarkWasAddedToLibrary(const Bookmark& bookmark);
|
||||||
|
virtual void booksWereRemovedFromLibrary();
|
||||||
|
|
||||||
private: // data
|
private: // data
|
||||||
kiwix::Library& library;
|
kiwix::Library& library;
|
||||||
|
@ -81,6 +83,8 @@ class Manager
|
||||||
* Sync the contents of the library with one or more `library.xml` files.
|
* Sync the contents of the library with one or more `library.xml` files.
|
||||||
*
|
*
|
||||||
* The metadata of the library files is trusted unconditionally.
|
* The metadata of the library files is trusted unconditionally.
|
||||||
|
* Any books not present in the input library.xml files are removed
|
||||||
|
* from the library.
|
||||||
*
|
*
|
||||||
* @param paths The (utf8) paths to the `library.xml` files.
|
* @param paths The (utf8) paths to the `library.xml` files.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -63,6 +63,15 @@ void LibraryManipulator::addBookmarkToLibrary(const Bookmark& bookmark)
|
||||||
bookmarkWasAddedToLibrary(bookmark);
|
bookmarkWasAddedToLibrary(bookmark);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
uint32_t LibraryManipulator::removeBooksNotUpdatedSince(Library::Revision rev)
|
||||||
|
{
|
||||||
|
const auto n = library.removeBooksNotUpdatedSince(rev);
|
||||||
|
if ( n != 0 ) {
|
||||||
|
booksWereRemovedFromLibrary();
|
||||||
|
}
|
||||||
|
return n;
|
||||||
|
}
|
||||||
|
|
||||||
void LibraryManipulator::bookWasAddedToLibrary(const Book& book)
|
void LibraryManipulator::bookWasAddedToLibrary(const Book& book)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
@ -71,6 +80,10 @@ void LibraryManipulator::bookmarkWasAddedToLibrary(const Bookmark& bookmark)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void LibraryManipulator::booksWereRemovedFromLibrary()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
// Manager
|
// Manager
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
@ -291,6 +304,7 @@ bool Manager::readBookmarkFile(const std::string& path)
|
||||||
|
|
||||||
void Manager::reload(const Paths& paths)
|
void Manager::reload(const Paths& paths)
|
||||||
{
|
{
|
||||||
|
const auto libRevision = manipulator->getLibrary().getRevision();
|
||||||
for (std::string path : paths) {
|
for (std::string path : paths) {
|
||||||
if (!path.empty()) {
|
if (!path.empty()) {
|
||||||
if ( kiwix::isRelativePath(path) )
|
if ( kiwix::isRelativePath(path) )
|
||||||
|
@ -301,6 +315,8 @@ void Manager::reload(const Paths& paths)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
manipulator->removeBooksNotUpdatedSince(libRevision);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue