From 728a8a44bbd1039c64d38fef474d17cb8a25d853 Mon Sep 17 00:00:00 2001 From: Veloman Yunkan Date: Fri, 1 Mar 2024 19:18:24 +0400 Subject: [PATCH] Reduced the in-use API of ContentManagerModel::Downloads ... in preparation for converting `ContentManagerModel::Downloads` into a thread-safe class. --- src/contentmanager.cpp | 8 ++++++-- src/contentmanagermodel.cpp | 5 +---- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/contentmanager.cpp b/src/contentmanager.cpp index 2e1eeee..2a9ed7b 100644 --- a/src/contentmanager.cpp +++ b/src/contentmanager.cpp @@ -674,7 +674,9 @@ void ContentManager::pauseBook(const QString& id, QModelIndex index) auto download = mp_downloader->getDownload(b.getDownloadId()); if (download->getStatus() == kiwix::Download::K_ACTIVE) { download->pauseDownload(); - m_downloads[id]->pause(); + if ( const auto downloadState = m_downloads.value(id) ) { + downloadState->pause(); + } } managerModel->triggerDataUpdateAt(index); } @@ -685,7 +687,9 @@ void ContentManager::resumeBook(const QString& id, QModelIndex index) auto download = mp_downloader->getDownload(b.getDownloadId()); if (download->getStatus() == kiwix::Download::K_PAUSED) { download->resumeDownload(); - m_downloads[id]->resume(); + if ( const auto downloadState = m_downloads.value(id) ) { + downloadState->resume(); + } } managerModel->triggerDataUpdateAt(index); } diff --git a/src/contentmanagermodel.cpp b/src/contentmanagermodel.cpp index d37ab34..b309f66 100644 --- a/src/contentmanagermodel.cpp +++ b/src/contentmanagermodel.cpp @@ -123,10 +123,7 @@ void ContentManagerModel::setBooksData(const BookInfoList& data, const Downloads const auto rowNode = createNode(bookItem); // Restore download state during model updates (filtering, etc) - const auto downloadIter = downloads.constFind(rowNode->getBookId()); - if ( downloadIter != downloads.constEnd() ) { - rowNode->setDownloadState(downloadIter.value()); - } + rowNode->setDownloadState(downloads.value(rowNode->getBookId())); bookIdToRowMap[bookItem["id"].toString()] = rootNode->childCount(); rootNode->appendChild(rowNode);