From 14d3c8ff0459dda283f087a43c68788419183f47 Mon Sep 17 00:00:00 2001 From: Veloman Yunkan Date: Sun, 18 Feb 2024 17:25:58 +0400 Subject: [PATCH] ContentManager::updateModel() `ContentManager::getBooksList()` was replaced by `ContentManager::updateModel()` (which combines the now removed `ContentManager::getBooksList()` and `ContentManagerModel::setBooksData()` into a single operation). Notes: - The call to `ContentManagerModel::refreshIcons()` could not be included in `ContentManager::updateModel()`. A few attempts to do so failed for various reasons, but the outcome of those efforts is that a better design for thumbnail loading was identified which enables dropping the `ContentManagerModel::refreshIcons()` operation. That redesign is pursued in the next few commits. --- src/contentmanager.cpp | 10 ++++------ src/contentmanager.h | 2 +- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/src/contentmanager.cpp b/src/contentmanager.cpp index 492af2f..ea330b8 100644 --- a/src/contentmanager.cpp +++ b/src/contentmanager.cpp @@ -91,8 +91,7 @@ ContentManager::ContentManager(Library* library, kiwix::Downloader* downloader, // so, we don't need to delete it. mp_view = new ContentManagerView(); managerModel = new ContentManagerModel(&m_downloads, this); - const auto booksList = getBooksList(); - managerModel->setBooksData(booksList); + updateModel(); auto treeView = mp_view->getView(); treeView->setModel(managerModel); treeView->show(); @@ -120,8 +119,7 @@ ContentManager::ContentManager(Library* library, kiwix::Downloader* downloader, connect(mp_library, &Library::booksChanged, this, [=]() {emit(this->booksChanged());}); connect(this, &ContentManager::filterParamsChanged, this, &ContentManager::updateLibrary); connect(this, &ContentManager::booksChanged, this, [=]() { - const auto nBookList = getBooksList(); - managerModel->setBooksData(nBookList); + updateModel(); managerModel->refreshIcons(); }); connect(&m_remoteLibraryManager, &OpdsRequestManager::requestReceived, this, &ContentManager::updateRemoteLibrary); @@ -138,7 +136,7 @@ ContentManager::ContentManager(Library* library, kiwix::Downloader* downloader, this, &ContentManager::updateDownloads); } -ContentManager::BookInfoList ContentManager::getBooksList() +void ContentManager::updateModel() { const auto bookIds = getBookIds(); BookInfoList bookList; @@ -148,7 +146,7 @@ ContentManager::BookInfoList ContentManager::getBooksList() auto mp = getBookInfos(bookId, keys); bookList.append(mp); } - return bookList; + managerModel->setBooksData(bookList); } void ContentManager::onCustomContextMenu(const QPoint &point) diff --git a/src/contentmanager.h b/src/contentmanager.h index f68fe0a..ed8a1fd 100644 --- a/src/contentmanager.h +++ b/src/contentmanager.h @@ -74,7 +74,7 @@ private: // functions // reallyEraseBook() doesn't ask for confirmation (unlike eraseBook()) void reallyEraseBook(const QString& id, bool moveToTrash); void eraseBookFilesFromComputer(const QString dirPath, const QString filename, const bool moveToTrash); - BookInfoList getBooksList(); + void updateModel(); void setCategories(); void setLanguages();