Book::update() reads illustrations from ZIM file

This commit is contained in:
Veloman Yunkan 2021-10-31 17:28:55 +04:00
parent f4bc3c8ced
commit 537ba7e6b9
1 changed files with 10 additions and 3 deletions

View File

@ -108,9 +108,16 @@ void Book::update(const zim::Archive& archive) {
m_mediaCount = getArchiveMediaCount(archive);
m_size = static_cast<uint64_t>(getArchiveFileSize(archive)) << 10;
Illustration& favicon = getMutableDefaultIllustration();
getArchiveFavicon(archive, 48, favicon.data, favicon.mimeType);
// XXX: isn't favicon.url neglected here?
m_illustrations.clear();
for ( const auto illustrationSize : archive.getIllustrationSizes() ) {
const auto illustration = std::make_shared<Illustration>();
const zim::Item illustrationItem = archive.getIllustrationItem(illustrationSize);
illustration->width = illustration->height = illustrationSize;
illustration->mimeType = illustrationItem.getMimetype();
illustration->data = illustrationItem.getData();
// NOTE: illustration->url is left uninitialized
m_illustrations.push_back(illustration);
}
}
#define ATTR(name) node.attribute(name).value()