mirror of
https://github.com/kiwix/kiwix-desktop.git
synced 2025-09-26 22:31:49 -04:00
Download paused state in UI set by updater thread
Now the downloader paused/active state in UI is set by the updater thread. This will make it easier to restore downloads after closing and re-opening kiwix-desktop.
This commit is contained in:
parent
840ca4c2c3
commit
550604b442
@ -501,7 +501,7 @@ DownloadInfo ContentManager::getDownloadInfo(QString bookId) const
|
||||
void ContentManager::updateDownload(QString bookId, const DownloadInfo& downloadInfo)
|
||||
{
|
||||
const auto downloadState = m_downloads.value(bookId);
|
||||
if ( downloadState && !downloadState->paused ) {
|
||||
if ( downloadState ) {
|
||||
if ( downloadInfo["status"].toString() == "completed" ) {
|
||||
downloadCompleted(bookId, downloadInfo["path"].toString());
|
||||
} else {
|
||||
@ -684,9 +684,6 @@ void ContentManager::pauseBook(const QString& id, QModelIndex index)
|
||||
if (download->getStatus() == kiwix::Download::K_ACTIVE) {
|
||||
try {
|
||||
download->pauseDownload();
|
||||
if ( const auto downloadState = m_downloads.value(id) ) {
|
||||
downloadState->pause();
|
||||
}
|
||||
} catch (const kiwix::AriaError&) {
|
||||
// Download has completed before the pause request was handled.
|
||||
// Most likely the download was already complete at the time
|
||||
@ -704,9 +701,6 @@ void ContentManager::resumeBook(const QString& id, QModelIndex index)
|
||||
auto download = mp_downloader->getDownload(b.getDownloadId());
|
||||
if (download->getStatus() == kiwix::Download::K_PAUSED) {
|
||||
download->resumeDownload();
|
||||
if ( const auto downloadState = m_downloads.value(id) ) {
|
||||
downloadState->resume();
|
||||
}
|
||||
}
|
||||
managerModel->triggerDataUpdateAt(index);
|
||||
}
|
||||
|
@ -32,17 +32,8 @@ void DownloadState::update(const DownloadInfo& downloadInfos)
|
||||
percent = QString::number(percent, 'g', 3).toDouble();
|
||||
auto completedLength = convertToUnits(downloadInfos["completedLength"].toDouble());
|
||||
auto downloadSpeed = convertToUnits(downloadInfos["downloadSpeed"].toDouble()) + "/s";
|
||||
*this = {percent, completedLength, downloadSpeed, false};
|
||||
}
|
||||
|
||||
void DownloadState::pause()
|
||||
{
|
||||
this->paused = true;
|
||||
}
|
||||
|
||||
void DownloadState::resume()
|
||||
{
|
||||
this->paused = false;
|
||||
const bool paused = downloadInfos["status"] == "paused";
|
||||
*this = {percent, completedLength, downloadSpeed, paused};
|
||||
}
|
||||
|
||||
|
||||
|
@ -17,8 +17,6 @@ public:
|
||||
bool paused = false;
|
||||
|
||||
public:
|
||||
void pause();
|
||||
void resume();
|
||||
void update(const DownloadInfo& info);
|
||||
};
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user