mirror of
https://github.com/kiwix/kiwix-desktop.git
synced 2025-09-22 11:37:56 -04:00
Got rid of faviconUrl in ContentManager::BookInfo
Merged "faviconUrl" entry of `ContentManager::BookInfo` into "favicon". Now the latter represents either the illustration data (and then it is of QByteArray type) or the url (in which case it is a QString).
This commit is contained in:
parent
cf0f408f23
commit
4af4923faa
@ -140,7 +140,7 @@ void ContentManager::updateModel()
|
||||
{
|
||||
const auto bookIds = getBookIds();
|
||||
BookInfoList bookList;
|
||||
QStringList keys = {"title", "tags", "date", "id", "size", "description", "faviconUrl", "favicon"};
|
||||
QStringList keys = {"title", "tags", "date", "id", "size", "description", "favicon"};
|
||||
QIcon bookIcon;
|
||||
for (auto bookId : bookIds) {
|
||||
auto mp = getBookInfos(bookId, keys);
|
||||
@ -316,6 +316,12 @@ QByteArray getFaviconData(const kiwix::Book& b)
|
||||
return qdata;
|
||||
}
|
||||
|
||||
QVariant getFaviconDataOrUrl(const kiwix::Book& b)
|
||||
{
|
||||
const QByteArray data = getFaviconData(b);
|
||||
return !data.isNull() ? QVariant(data) : QVariant(getFaviconUrl(b));
|
||||
}
|
||||
|
||||
QVariant getBookAttribute(const kiwix::Book& b, const QString& a)
|
||||
{
|
||||
if ( a == "id" ) return QString::fromStdString(b.getId());
|
||||
@ -326,8 +332,7 @@ QVariant getBookAttribute(const kiwix::Book& b, const QString& a)
|
||||
if ( a == "url" ) return QString::fromStdString(b.getUrl());
|
||||
if ( a == "name" ) return QString::fromStdString(b.getName());
|
||||
if ( a == "downloadId" ) return QString::fromStdString(b.getDownloadId());
|
||||
if ( a == "favicon") return getFaviconData(b);
|
||||
if ( a == "faviconUrl") return getFaviconUrl(b);
|
||||
if ( a == "favicon") return getFaviconDataOrUrl(b);
|
||||
if ( a == "size" ) return QString::number(b.getSize());
|
||||
if ( a == "tags" ) return getBookTags(b);
|
||||
|
||||
|
@ -113,14 +113,14 @@ void ContentManagerModel::setBooksData(const BookInfoList& data)
|
||||
|
||||
QByteArray ContentManagerModel::getThumbnail(const BookInfo& bookItem) const
|
||||
{
|
||||
QByteArray bookIcon = bookItem["favicon"].toByteArray();
|
||||
if ( bookIcon.isNull() ) {
|
||||
const auto faviconUrl = bookItem["faviconUrl"].toString();
|
||||
if (m_iconMap.contains(faviconUrl)) {
|
||||
bookIcon = m_iconMap[faviconUrl];
|
||||
}
|
||||
}
|
||||
return bookIcon;
|
||||
const QVariant faviconEntry = bookItem["favicon"];
|
||||
if ( faviconEntry.type() == QVariant::ByteArray )
|
||||
return faviconEntry.toByteArray();
|
||||
|
||||
const auto faviconUrl = faviconEntry.toString();
|
||||
return m_iconMap.contains(faviconUrl)
|
||||
? m_iconMap[faviconUrl]
|
||||
: QByteArray();
|
||||
}
|
||||
|
||||
std::shared_ptr<RowNode> ContentManagerModel::createNode(BookInfo bookItem) const
|
||||
@ -167,8 +167,8 @@ void ContentManagerModel::refreshIcons()
|
||||
td.clearQueue();
|
||||
for (auto i = 0; i < rowCount() && i < m_data.size(); i++) {
|
||||
const auto& bookItem = m_data[i];
|
||||
if ( bookItem["favicon"].toByteArray().isNull() ) {
|
||||
const auto faviconUrl = bookItem["faviconUrl"].toString();
|
||||
if ( bookItem["favicon"].type() == QVariant::String ) {
|
||||
const auto faviconUrl = bookItem["favicon"].toString();
|
||||
if (faviconUrl != "" && !m_iconMap.contains(faviconUrl)) {
|
||||
td.addDownload(faviconUrl, bookItem["id"].toString());
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user